Free Screenshot API for Domains
No API key. No signup. No credit card. Get high-quality website screenshots for any domain instantly with LinkDR's free Screenshot API. Unlike other screenshot APIs that require registration and API keys, ours works immediately - just make a request and get your screenshot.
Perfect for domain directories, link building tools, competitor analysis dashboards, and SEO tools. 100% free with automatic screenshot generation and smart caching.
π Quick Start
GET https://linkdr.com/api/screenshot/{domain}The API returns a 302 Redirect to the screenshot URL. Browsers automatically follow the redirect, making it perfect for hot-linking:
curl https://linkdr.com/api/screenshot/example.comWhy Choose Our Free Screenshot API?
- β No API key required - Unlike ScreenshotOne, ScreenshotAPI.net, and others that require signup and API keys, ours works instantly
- β No signup or credit card - Start using immediately, no registration needed
- β 100% free - No monthly limits or hidden costs
- β Automatic generation - Screenshots captured automatically if they don't exist (1350x900px WebP)
- β Smart caching - 7 days CDN cache + 30 days stale-while-revalidate for instant responses
- β Domain-specific - Optimized for domain screenshots with automatic normalization (handles www, protocols)
- β Ad & tracker blocking - Clean screenshots without ads, cookie banners, or tracking scripts
π API Reference
Method: GET
URL: /api/screenshot/{domain}
Response Codes:
| Status | Meaning | Response |
|---|---|---|
302 | Success | Redirects to screenshot URL |
202 | Processing | { message: string, domain: string, status: "processing" } |
400 | Invalid domain | { error: string } |
404 | Not available | { error: string, domain: string, reason?: string } |
429 | Rate limit | { error: string, message: string, resetAt: string } |
π‘ Usage Examples
Direct Hot-Linking
<img src="https://linkdr.com/api/screenshot/example.com" alt="Screenshot" />JavaScript/TypeScript
async function getScreenshot(domain: string) {
const response = await fetch(`https://linkdr.com/api/screenshot/${domain}`)
if (response.status === 302 || response.ok) {
return `https://linkdr.com/api/screenshot/${domain}` // Use API URL directly
} else if (response.status === 202) {
// Poll again in a few seconds
return null
} else {
const data = await response.json()
throw new Error(data.error)
}
}React Component
function DomainScreenshot({ domain }: { domain: string }) {
const screenshotUrl = `https://linkdr.com/api/screenshot/${domain}`
return (
<img
src={screenshotUrl}
alt={`Screenshot of ${domain}`}
className="rounded-lg shadow-md"
/>
)
}π How It Works
- Request: API normalizes domain and checks for existing screenshot
- Response: Returns
302redirect to cached screenshot, or202if generating - Generation: Background task captures screenshot (10-30 seconds), stores in S3
- Caching: Future requests return cached screenshot immediately
Screenshot specs: 1350x900px WebP, 95% quality, ad/tracker blocking enabled.
βοΈ Best Practices
Handle processing states:
302: Screenshot ready - use API URL directly in<img>tags202: Screenshot generating - poll endpoint every 3-5 seconds429: Rate limit exceeded - checkRetry-Afterheader
Polling example:
async function getScreenshotWithPolling(domain: string, maxAttempts = 5) {
for (let i = 0; i < maxAttempts; i++) {
const response = await fetch(`https://linkdr.com/api/screenshot/${domain}`)
if (response.status === 302 || response.ok) {
return `https://linkdr.com/api/screenshot/${domain}`
} else if (response.status === 202) {
await new Promise(resolve => setTimeout(resolve, 3000))
continue
} else {
const data = await response.json()
throw new Error(data.error)
}
}
throw new Error('Screenshot generation timed out')
}π Rate Limits & Caching
Rate Limits:
- 60 requests per hour per IP (no monthly caps)
- Headers:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset
Caching:
- CDN: 7 days
- Browser: 7 days
- Stale-while-revalidate: 30 days
π Comparison with Other Screenshot APIs
| Feature | LinkDR API | ScreenshotOne | ScreenshotAPI.net | Thum.io |
|---|---|---|---|---|
| API Key Required | β No | β Yes | β Yes | β Yes |
| Signup Required | β No | β Yes | β Yes | β Yes |
| Free Tier | β 60/hour (no monthly limit) | β 100/month | β 100/month | β 1,000/month |
| Domain-Specific | β Yes | β No | β No | β No |
| Hot-Linking | β Yes | β No | β No | β Yes |
| Ad Blocking | β Yes | β Yes | β Yes | β No |
Best for:
- LinkDR API: Domain directories, SEO tools, quick domain previews (no setup needed)
- ScreenshotOne: Custom viewports, full-page screenshots, advanced features
- ScreenshotAPI.net: Enterprise use cases, bulk screenshots
- Thum.io: Real-time streaming screenshots, animated previews
π― Use Cases
Domain Directories
Build visual directories of domains with instant screenshot previews. Perfect for backlink databases, domain marketplaces, and SEO tools.
Link Building Tools
Show visual previews of potential link targets without requiring users to sign up or configure API keys.
Competitor Analysis
Quickly visualize competitor websites in your analysis dashboard. No API key management needed.
SEO Tools
Display domain screenshots in keyword analysis, backlink checkers, and domain research tools.
π Resources
- LinkDR Domain Explorer
- LinkDR API Documentation
- Questions? DM @illyism on X


