Capture website screenshots with a simple API. Powered by cloud Playwright infrastructure.
curl -X POST "https://api.your-domain.com/api/v1/screenshots" \
-H "Authorization: Bearer $SCREENSHOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Copy-paste friendly. No SDK required.
curl -X POST "http://localhost:5000/api/v1/screenshots" \
-H "Authorization: Bearer $SCREENSHOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
import fetch from "node-fetch";
const resp = await fetch("http://localhost:5000/api/v1/screenshots", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.SCREENSHOT_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ url: "https://example.com" })
});
console.log(await resp.json());
import os
import requests
resp = requests.post(
"http://localhost:5000/api/v1/screenshots",
headers={
"Authorization": f"Bearer {os.environ['SCREENSHOT_API_KEY']}",
"Content-Type": "application/json",
},
json={"url": "https://example.com"},
)
print(resp.json())
package main
import (
"bytes"
"net/http"
"os"
)
func main() {
body := []byte(`{"url":"https://example.com"}`)
req, _ := http.NewRequest("POST", "http://localhost:5000/api/v1/screenshots", bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("SCREENSHOT_API_KEY"))
req.Header.Set("Content-Type", "application/json")
http.DefaultClient.Do(req)
}
A mock UI to explore the workflow before wiring in your API key.
Everything you need to ship reliable screenshots at scale.
Plans are loaded from your DB (public plans).
Get an API key and ship your first integration in minutes.