Changelog · September 22, 2026
Every screenshot has a link that needs no API key
Put a screenshot on a page without proxying base64 through your own server.
By Roger Campos · Last updated: September 2026
TL;DR
Every screenshot result now carries a signed URL to the image: X-Result-Url over HTTP, result_url in the webhook body, and the same key in the MCP metadata. The link needs no API key and works until the result expires 30 days after it was taken, so it can go straight into an <img> tag.
Free plan, no credit card. 1,000 credits a month.
What a request returns doesn't change: /screenshot still answers with the image as base64 and the webhook still carries it in result. What's added is the link, on all three transports, so none of them disagree about what a request answers.
The link expires exactly when the result does — 30 days after it was taken — so it never outlives its file or dies before it. It is a bearer link: anyone holding it can load that screenshot until then. Treat it like the image itself.
Request
Example
curl -sD - -o /dev/null -X POST https://urlpipe.dev/screenshot \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "sync": true}' | grep -i x-result-urlFAQ
Frequently asked questions
How long does the screenshot link work?
Does the link need my API key?
Where do I find the link in an async request?
Try it on the free plan.
Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.