API documentation
One base URL, three REST endpoints, and an MCP server. Authenticate with ?key= or an Authorization: Bearer header.
Screenshot
Returns an image of the page.
GET /api/v1/screenshot?url=https://stripe.com&key=YOUR_KEY
curl "https://www.shotpane.com/api/v1/screenshot?url=https://stripe.com&key=YOUR_KEY&full_page=true" -o shot.pngWebsite to PDF
Returns an A4 PDF of the page.
GET /api/v1/pdf?url=https://stripe.com&key=YOUR_KEY
curl "https://www.shotpane.com/api/v1/pdf?url=https://stripe.com&key=YOUR_KEY" -o page.pdfOG image
Renders a URL at the 1200×630 social size — point it at your own /og route.
GET /api/v1/og?url=https://myapp.com/og/post-123&key=YOUR_KEYMCP server (for AI agents)
Streamable-HTTP MCP endpoint exposing the screenshot, url_to_pdf, and og_image tools. Add it to Claude / Cursor / any MCP client; pass your key via the Authorization header, ?key=, or an apiKey tool argument.
MCP endpoint: https://www.shotpane.com/mcp (POST, JSON-RPC 2.0)
{ "mcpServers": {
"shotpane": {
"url": "https://www.shotpane.com/mcp?key=YOUR_KEY"
}
} }Parameters
| Param | Values | Description |
|---|---|---|
| url | required | The http(s) URL to capture. Internal/private addresses are rejected. |
| key | required | Your API key (or send as Authorization: Bearer <key>). |
| format | png | jpeg | Image format for /screenshot. Default png. |
| full_page | true | false | Capture the full scrollable page. Default false. |
| width | number | Viewport width in px. Default 1280. |
| height | number | Viewport height in px. Default 800. |
Errors
401 invalid/missing key · 429 monthly limit reached · 400 bad/blocked URL · 502 render failed.