Screenshot API

One endpoint. Pass a URL, get an image back.

Authentication

Pass your key as ?key= or the X-Api-Key header. Get one free on the home page.

GET /v1/take

curl -o shot.png "https://framejet.dev/v1/take?key=YOUR_KEY&url=https://example.com"

Parameters

ParamDefaultDescription
urlRequired. http/https page to capture.
keyRequired unless X-Api-Key header is set.
formatpngpng or jpeg.
full_pagefalseCapture the entire scroll height.
width1280Viewport width, 320–3840.
height800Viewport height, ignored when full_page=true.
dpr1Device pixel ratio, 1–3 (retina).
cleantrueRemove cookie banners, sticky bars, chat widgets.
delay0Extra wait in ms after load, max 10000.
cachetrueSet false to force a fresh capture.

Response

200 with the image bytes (image/png orimage/jpeg). X-Framejet-Cache is HIT or MISS; X-Framejet-Remaining shows screenshots left this month.

Errors

JSON { "error": "...", "code": "..." }:

StatuscodeMeaning
401no_key / invalid_keyMissing or unknown API key.
402quota_exceededMonthly quota reached. Upgrade on pricing.
422bad_url / blocked_target / target_timeoutThe target URL is invalid, private, or didn't load.
500capture_failedOur error — no quota was used.

Examples

JavaScript

const res = await fetch( `https://framejet.dev/v1/take?key=${KEY}&url=${encodeURIComponent(target)}&full_page=true` ); const buf = Buffer.from(await res.arrayBuffer()); fs.writeFileSync("shot.png", buf);

Python

import requests r = requests.get("https://framejet.dev/v1/take", params={ "key": KEY, "url": "https://news.ycombinator.com", "clean": "true", }) open("hn.png", "wb").write(r.content)

MCP server

Framejet is also a remote Model Context Protocol server, so you can give an AI agent (Claude, Cursor, …) the ability to take screenshots. Add a connector pointing at:

https://framejet.dev/mcp

Authenticate with your API key as a bearer token (Authorization: Bearer YOUR_KEY). It exposes one tool,screenshot, taking the same parameters as above (url, full_page, width, format, clean, …) and returning the image inline. Calls draw from the same monthly quota.

Contact

Questions, higher limits, bugs: email founder@framejet.dev.