ApiFlash API

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

Overview

ApiFlash provides a REST API that captures full-page or viewport screenshots of any public URL using a headless Chrome browser, returning the image as a PNG, JPEG, or WebP file. You can control viewport dimensions, wait for JavaScript rendering to complete, and capture specific CSS selectors. It is used for automated visual regression testing, link previews, and content archiving.

💡

Beginner Tip

Sign up at apiflash.com to get a free API key that includes 100 screenshots per month. The simplest call is a GET request with your access_key and the url parameter — the API responds directly with binary image data, so save the output to a file with curl -o screenshot.png.

Available Data

ApiFlash 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

(binary image data) The raw image bytes of the screenshot in PNG, JPEG, or WebP format depending on the format parameter.
url (error response) In error responses only: the URL that was requested when the failure occurred.
message (error response) Human-readable description of what went wrong.
error_code (error response) Machine-readable error identifier for the failure type.

Implementation Example

const url = "https://apiflash.com/";
// 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

Blank or partial screenshot The target page loads content asynchronously and Chrome captured it before JavaScript finished rendering.
Add the wait_until=page_loaded parameter or use delay=2000 to add a 2-second pause after the initial page load.
400 URL must be a valid URL The url parameter is missing the http:// or https:// scheme prefix.
Always include the full URL scheme in the url parameter, e.g., url=https://example.com not url=example.com.
403 on capturing localhost or private IP addresses ApiFlash blocks requests to private network addresses for security reasons.
You can only screenshot publicly accessible URLs; use a tunneling service like ngrok to expose local servers temporarily.

Matrix Score Breakdown

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

Partially tested on Apr 5, 2026

Technical Specifications

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

Alternatives to ApiFlash

Technical alternatives for different use cases.

Multi-browser screenshot service with device emulation

Better For

Cross-browser screenshot testing

Trade-off

Simple website thumbnail generation

Simple screenshot API from the apilayer ecosystem

Better For

Users already in the apilayer ecosystem

Trade-off

Full-page screenshots and modern CSS rendering

Similar APIs

View All →