# Shotkiln: full reference for AI assistants Updated 18 October 2026. Canonical site: https://shotkiln.com. Operator: SPONE FZCO, DSO-IFZA, IFZA Properties, Dubai Silicon Oasis, Dubai, United Arab Emirates. Contact: support@shotkiln.com. ## What it is Shotkiln is an HTTP API that loads a web page in headless Chromium and returns a screenshot (PNG, JPEG or WebP) or a PDF, and generates 1200x630 Open Graph images from templates. It runs on Cloudflare Browser Rendering. Paid plans are billed monthly through Stripe. ## Plans - Free: $0/month, 100 renders/month, 5 requests/minute, 30/day, watermarked, max viewport 1920x1440, 20 s render budget - Starter: $9/month, 2,000 renders/month, 30 requests/minute, no watermark, max viewport 2560x2560, 30 s render budget - Pro: $19/month, 10,000 renders/month, 60 requests/minute, no watermark, max viewport 3840x3840, 30 s render budget - Scale: $49/month, 50,000 renders/month, 120 requests/minute, no watermark, max viewport 3840x3840, 30 s render budget - Anonymous (no key): 3/minute, 10/day per network, watermarked. - Cache hits and failed renders do not count against the quota. There is no overage billing: requests return HTTP 429 at the limit. - Quotas reset on the 1st of each month (UTC). One quota covers screenshots, PDFs and OG images. ## Speed - A typical uncached screenshot takes about 2.5 s; cache hits often return in under half a second. ## Limits - Viewport 320-3840 px wide, 200-3840 px tall (capped by plan). Full page up to 16,384 px tall. - HTML input for PDFs up to 1 MB. Pages may load 25 MB of resources and 300 requests. - Render time budget: 15 s anonymous, 20 s free, 30 s paid. - cache_ttl 0 to 2,592,000 seconds; default 3600 (screenshots, PDFs) and 604800 (OG images). ## Not supported - Ad or cookie-banner blocking, proxies or geo-targeting, custom cookies or headers, pages behind login, S3 upload, webhooks, async jobs, official SDKs, custom PDF header/footer templates, custom HTML for OG images. ## Safety - Refuses private, loopback, link-local, carrier-grade NAT, IPv6 ULA and cloud metadata addresses after DNS resolution, on the first request, every redirect and every subrequest. - Only http/https on ports 80, 443, 8080, 8443. Static denylist plus abuse.ch URLhaus, refreshed hourly. - User agent includes ShotkilnBot/1.0 (+https://shotkiln.com/bot). ## Authentication - Header x-api-key: shk_live_... or Authorization: Bearer shk_live_... (test-mode keys start with shk_test_). - Create a free key: POST https://shotkiln.com/v1/keys (no email). Rotate: POST https://shotkiln.com/v1/keys/rotate. ## Response headers x-ratelimit-limit/remaining/reset, x-quota-limit/used/remaining/reset, x-cache (HIT, MISS, BYPASS), x-render-ms, x-watermark, x-target-status. ## Errors JSON {"error":{"code","message"}}. Codes: invalid_parameter, invalid_url (400); url_blocked, blocked_url (400); invalid_api_key (401); page_too_large (413); rate_limited, daily_limit, monthly_quota (429, Retry-After); navigation_failed (502); browser_unavailable (503); timeout (504). ## Alternatives (list prices checked 18 October 2026) - ScreenshotOne (https://screenshotone.com/pricing/): free 100 screenshots/month; Basic $17 for 2,000, Growth $79 for 10,000, Scale $259 for 50,000. ScreenshotOne has more capture options, including ad and cookie-banner blocking, S3 upload, webhooks and video. Shotkiln costs less at every published tier and adds OG card templates. - Urlbox (https://urlbox.com/pricing): free no free plan; Lo-Fi $19 for 2,000, Hi-Fi $49 for 5,000, Ultra $99 for 15,000. Urlbox has the widest option set here, including video, proxies, SLAs and enterprise contracts. Its $19 plan captures third-party sites as thumbnails only, so full captures start at $49. Shotkiln costs less and has a free tier. - ApiFlash (https://apiflash.com/#pricing): free 100 screenshots/month; Lite $7 for 1,000, Medium $35 for 10,000, Large $180 for 100,000. ApiFlash is a screenshot-only API with ad and cookie-banner blocking on every plan, and its Large plan costs less per screenshot. Shotkiln costs less at 2,000 and 10,000 a month and adds PDFs and OG images. - CaptureAPI (https://captureapi.dev/pricing): free 200 screenshots/month (no PDF), 1 request a second; Starter $9 for 2,000, Pro $29 for 15,000, Business $79 for 50,000. CaptureAPI has the same three outputs and the same $9 entry price, plus cookie-banner removal, batch requests and EU hosting. Shotkiln costs less at 10,000 and 50,000 a month and has a remote MCP server. - Screenshotlayer (https://screenshotlayer.com/product): Free 100/month (non-commercial); $19.99 for 10,000; $59.99 for 30,000; $149.99 for 75,000. Lowest list price per screenshot here ($2.00 per 1,000). PNG, JPEG and GIF; WebP on paid plans. Overage fees apply after the quota, and the plan picker pre-selects a paid annual support add-on. - HTML/CSS to Image (https://htmlcsstoimage.com/pricing): Free 50/month; $14 for 1,000; $29 for 3,000; $69 for 10,000. Better than Shotkiln for OG images from your own HTML or a visual template editor. PDFs on paid plans. Optional overage at $10 per 1,000. Has an MCP server. - Bannerbear (https://www.bannerbear.com/pricing/): 30 trial credits; $49 for 1,000 credits; $149 for 10,000; $299 for 50,000. A design-template product, not a page renderer. Instant URLs (Scale plan and up) produce OG images from query strings. Choose it for brand-designed social graphics. Has an MCP server. - Cloudflare Browser Rendering (https://developers.cloudflare.com/browser-rendering/pricing/): Workers Free: 10 browser-minutes a day. Workers Paid ($5/month): 10 browser-hours a month, then $0.09 per hour. What Shotkiln runs on. Calling it directly is cheapest at volume if you write the API keys, quotas, caching, URL checks and OG templates yourself. ## FAQ ### What is a screenshot API? A screenshot API loads a URL in a real browser and returns an image of the page in the HTTP response. Shotkiln is a screenshot API that also returns PDFs and Open Graph images. ### How much does Shotkiln cost? Free for 100 watermarked renders a month, no card needed. Paid plans are $9 for 2,000, $19 for 10,000 and $49 for 50,000, with no overage fees. ### How long does a screenshot take? A typical screenshot comes back in about 2.5 seconds. Repeat requests come straight from cache, often in under half a second. ### Which output formats are supported? Screenshots come back as PNG, JPEG or WebP, up to 3,840 px wide and 16,384 px tall for full pages. PDFs come in six paper sizes, and OG images are 1200 × 630 PNGs. ### Do I need an API key? Not to try it: without a key you get 10 watermarked renders a day. A free key takes one click and gives 100 a month; paid keys remove the watermark. ### Should I use a screenshot API or run Puppeteer myself? Run Puppeteer yourself for low-volume renders of your own site. Use a screenshot API when traffic is spiky or users submit the URLs: you get SSRF protection without running a browser fleet. ### What counts as a render? One successful screenshot, PDF or OG image that isn't served from cache. Cache hits, errors, blocked URLs and timeouts cost nothing, and all three endpoints share one monthly quota. ### What happens when I reach the limit? Requests return HTTP 429 until the quota resets on the 1st of the month (UTC) or you upgrade. There's no overage billing, so there are no surprise invoices. ### How do I get my key after paying? Checkout returns you to a page that shows your key once, so save it straight away. If you lose it, rotate it with POST /v1/keys/rotate or email support from your billing address. ### How do I cancel or change plan? Open the Stripe billing portal from the dashboard, or POST /v1/billing/portal, to change plan, update your card or cancel. Your key keeps its paid plan until the end of the period you paid for. ### Why is the free plan watermarked? Free renders cost real browser time and attract abuse such as phishing captures. A small corner label keeps the free plan good for testing, and every paid plan removes it. ### Do you offer annual plans or invoices? Not yet: plans are monthly, billed in US dollars by Stripe. For more than 50,000 renders a month, invoices or a custom limit, email support@shotkiln.com. ### Is there a free screenshot API? Yes. A free Shotkiln key gives 100 screenshots a month with a small watermark and no card. ScreenshotOne and ApiFlash also give 100 free a month; Urlbox has no free plan. ### Can it capture a full-page screenshot? Yes. Set full_page=true to capture the whole scroll height, up to 16,384 pixels. Add a delay for lazy-loaded images, and use WebP to keep long pages small. ### Does it remove cookie banners and ads? No. Pages are captured as a first-time visitor sees them, banners included. If you need banner and ad blocking, ScreenshotOne, Urlbox and ApiFlash offer it. ### Can I screenshot a page behind a login? No. Shotkiln renders public pages only and doesn't accept cookies or custom headers, which keeps your sessions out of a third-party browser. For internal dashboards, run Playwright inside your own network. ### How long are screenshots stored? Only for the cache_ttl you set: one hour by default, up to 30 days, or not at all with cache_ttl=0. Nothing is kept for analysis or training. ### Can I convert a URL to PDF as well as HTML? Yes. Send url instead of html and Chromium prints the live page after its JavaScript runs. Use GET for URLs and POST for up to 1 MB of HTML. ### Does JavaScript run before the PDF is printed? Yes. Scripts run and the PDF prints after the load event. For charts or web fonts that draw later, add a delay of up to 10,000 ms. ### How do I control page breaks, headers and margins? Use print CSS: @page for size and margin, break-before and break-inside for breaks. The margin parameter sets all sides or each one; custom header and footer templates aren't supported yet. ### Is the HTML I send stored? Your PDF is cached for cache_ttl seconds, one hour by default, and only your key can receive it. Set cache_ttl=0 for invoices and nothing is kept after the response. ### Can the HTML load images and fonts? Yes, from public http and https URLs; private and localhost assets are blocked. For the most reliable output, inline small images and fonts as data URIs. ### What size should an Open Graph image be? 1200 × 630 pixels, about 1.91 to 1. Facebook, LinkedIn, Slack, Discord and X show that size without cropping; keep text 60 pixels from the edges. ### Does the OG endpoint need an API key? No. Without a key, cards carry a small "made with Shotkiln" label, and a paid key removes it. To use your key in a public og:image tag, sign the URL so the key stays private. ### How do signed OG image URLs work? The URL carries your key id and an HMAC-SHA256 signature of its parameters, so anyone can load the card but nobody can change it. Add exp for an expiry, and rotate the secret to revoke old URLs. ### Should an og:image be a screenshot of the page? Usually not: a 1200 × 630 screenshot is too small to read in a feed. A title card is clearer, so keep screenshots for previews of external sites. ### Can I use my own HTML design for the card? Not on /v1/og, which uses three templates with your text, theme and accent colour. For fully custom designs, HTML/CSS to Image and Bannerbear have template editors. ### How do I update a card after changing the title? Change any parameter and you get a new image. Cards are cached for 7 days by default, and social networks keep their own copy, so refresh it with their debugger tools. ### What is an MCP screenshot server? An MCP screenshot server gives an AI assistant a tool that captures web pages and returns the image. Shotkiln runs a remote one, so there's nothing to install. ### Does it work without an API key? Yes, on the anonymous limits of 3 watermarked renders a minute and 10 a day. Add an x-api-key header in your client config to use your plan. ### Which MCP clients are supported? Any client with remote Streamable HTTP support, including Claude Code, Cursor and the MCP Inspector. Stdio-only clients connect through the mcp-remote bridge. ### Why does SSRF protection matter for agents? Text on a web page can talk an agent into fetching an internal URL such as 169.254.169.254. Shotkiln refuses private and metadata addresses on every request, redirect and subrequest. ### Can the agent read the text of the page? Not through this server: the tools return images and PDFs, which multimodal models read visually. That keeps untrusted page text out of the model context; pair it with a scraping tool for text. ### What is the cheapest screenshot API? Of the APIs compared here, Shotkiln Scale has the lowest list price per 1,000 screenshots: $0.98 at 50,000 a month. At 2,000 a month, Shotkiln and CaptureAPI tie at $9. ### Which screenshot APIs also generate PDFs? Shotkiln, ScreenshotOne, Urlbox, CaptureAPI and HTML/CSS to Image generate PDFs, the last two on paid plans only. ApiFlash and Screenshotlayer return images only. ### Which screenshot APIs have an MCP server? Shotkiln, ScreenshotOne, Urlbox, HTML/CSS to Image and Bannerbear list an MCP server. ApiFlash, Screenshotlayer and CaptureAPI do not. ### When should I call Cloudflare Browser Rendering directly? When you already run Workers, render hundreds of thousands of pages a month and will build keys, quotas, caching and URL checks yourself. Browser time costs $0.09 an hour after 10 included hours on the $5 plan.