Website Screenshot API in PHP
Capture any URL as a PNG, JPEG, or WebP from PHP with one HTTP call. Full-page or element capture, ads and cookie banners stripped, and a signed CDN URL back — no Chromium process for you to keep alive.
The self-hosted version of this in PHP is a headless Chromium pool: a browser per worker, memory that climbs until something restarts it, and a queue that falls over the first time twenty requests arrive together. RenderKit's /v1/screenshot endpoint is the managed version — you POST a JSON spec and get a signed image URL back.
PHP example
$ch = curl_init("https://api.renderkit.tech/v1/screenshot");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-api-key: $key", "content-type: application/json"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"url" => "https://example.com", "full_page" => true,
]));
$shot = json_decode(curl_exec($ch));Capture options worth knowing
full_page: truescrolls and stitches the whole document; omit it for a viewport-sized shotselector: "#pricing"captures one element instead of the pageblock_adsandblock_cookie_bannersstrip the chrome that ruins marketing capturesdevice_scale: 2for retina output;format: "webp"to cut file sizewait_untilandwait_for_selectorso you never capture a half-rendered page
Why this ends up cheaper than self-hosting
A browser fleet is not a one-time cost. It is memory ceilings, zombie processes, fonts missing from the container, and a concurrency limit you discover in production. RenderKit meters *renders*, not browser-hours, so idle capacity costs nothing — and the same API key also does PDFs and markdown extraction.
More
Read the screenshot API reference, see why Puppeteer eats RAM, or compare RenderKit vs ScreenshotOne.
Common questions
POST the target URL to RenderKit's /v1/screenshot endpoint with your API key. The response contains a signed CDN URL for the rendered image — no headless browser to install or operate in PHP.
No. RenderKit runs the browser fleet. Your app makes an HTTP request and receives a finished image, which removes the memory, font, and concurrency problems that come with hosting Chromium yourself.
Yes — pass a CSS selector and RenderKit captures just that element's bounding box, which is the usual way to generate component or pricing-table images.
Ship your first render in 60 seconds.
500 free renders to start. No card. Cancel by ignoring it.