Screenshot any webpage
with one API call

Fast, reliable screenshot API with device emulation, dark mode, and multiple formats. Perfect for automation, testing, and content generation.

curl -X POST https://screenshot.endpnt.dev/api/v1/capture \
  -H "x-api-key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "format": "png",
    "width": 1280,
    "height": 720,
    "full_page": true
  }'

Powerful features for every use case

Built with modern web standards and optimized for speed, reliability, and ease of use.

Full-page capture

Capture entire scrollable pages, not just the visible viewport

Device emulation

Desktop, mobile, and tablet presets with accurate user agents

Dark mode support

Automatically trigger dark mode for supported websites

Element targeting

Screenshot specific page elements using CSS selectors

Multiple formats

PNG, JPEG, and PDF output with quality control

Blazing fast

Optimized browser engine with sub-2 second response times

Try it yourself

Paste any URL below and see the API in action

Try it live

Easy integration

Works with any programming language that can make HTTP requests

JavaScript

const response = await fetch('https://screenshot.endpnt.dev/api/v1/capture', {
  method: 'POST',
  headers: {
    'x-api-key': 'your_api_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://example.com',
    format: 'png',
    width: 1280,
    height: 720,
    full_page: true
  })
});

const result = await response.json();
if (result.success) {
  const imageData = result.data.image; // base64 encoded
}

Python

import requests
import base64

url = "https://screenshot.endpnt.dev/api/v1/capture"
headers = {
    "x-api-key": "your_api_key",
    "Content-Type": "application/json"
}
data = {
    "url": "https://example.com",
    "format": "png",
    "width": 1280,
    "height": 720,
    "full_page": True
}

response = requests.post(url, headers=headers, json=data)
result = response.json()

if result["success"]:
    image_data = base64.b64decode(result["data"]["image"])
    with open("screenshot.png", "wb") as f:
        f.write(image_data)

Ready to get started?

Join thousands of developers using our Screenshot API for automation, testing, and content generation.

Get your free API key