Screenshot API

Development / API Key Intermediate HTTPS CORS
Varies by plan (check documentation)

Overview

AbstractAPI's Website Screenshot API lets developers programmatically capture full-page or viewport screenshots of any website URL and receive the image directly in the response. It handles headless browser rendering so you don't need to set up Puppeteer or Selenium. A free plan is available with 100 screenshots per month.

💡

Beginner Tip

The API returns the screenshot image directly in the response body (not a URL), so save the binary response to a file. In curl, use the -o flag to write the output to a .png file.

Available Data

Screenshot data via REST API
JSON-formatted response data
Requires API key authentication

Example Response

JSON Response
{
  "id": "Dwu85P9SOIk",
  "urls": {
    "full": "https://images.unsplash.com/photo-...",
    "regular": "https://images.unsplash.com/photo-...?w=1080",
    "thumb": "https://images.unsplash.com/photo-...?w=200"
  },
  "width": 4000,
  "height": 3000,
  "user": {
    "name": "John Doe",
    "username": "johndoe"
  }
}

Field Reference

response body Raw PNG or JPEG image data of the captured screenshot returned as the response body.
Content-Type MIME type of the returned image (e.g., image/png).
X-Quota-Remaining Number of API calls remaining in your current billing period.

Implementation Example

const url = "https://www.abstractapi.com/website-screenshot-api";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
  headers: {
  "X-API-Key": "YOUR_API_KEY"
  }
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

401 Unauthorized Missing or invalid api_key query parameter
Sign up at abstractapi.com, get your free API key, and pass it as the api_key parameter in every request.
Blank or partial screenshot The target website uses lazy loading or requires user interaction
Add delay=1000 to wait 1 second after page load. Use full_page=true to capture the complete page.
429 Rate limit exceeded Sending more requests than your plan allows
The free plan is limited to 100 requests/month and 1 request/second. Add delays between requests or upgrade your plan.

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 20/20
🔒 Security 15/15
🛠 Developer XP 17/20
✓ Reliability 10/15

Partially tested on Apr 5, 2026

Technical Specifications

Auth API Key
HTTPS REQUIRED
CORS YES
Category Development
Difficulty Intermediate
Verified: 2026-04-07

Similar APIs

View All →