render_screenshot
Capture a screenshot of a URL (rendered in a real browser) and return it as an image so you can VISUALLY review the design — contrast, layout, spacing, overflow. Use after any design/page change (HTTP 200 + text checks can't see color-on-color or layout issues).
CHEAPER ALTERNATIVE FIRST: each capture uses the account's monthly screenshot allowance. If the user already has the page open in a browser, ask them to paste a screenshot into the chat — you can review it directly at NO cost. Reserve render_screenshot for automated/agent-driven checks, a URL the user doesn't have open, or precise element/region shots. (Editing, image uploads, and pasted images are always free — only server-side captures count.)
CAPTURE THE SMALLEST REGION THAT ANSWERS YOUR QUESTION — a full-page shot of a long page can exceed the image size limit and wastes most of your context: • element_id — an Elementor widget id straight from wp_get_page (BEST: after patching widget 'db438b6', screenshot exactly that widget) • selector — any CSS selector, e.g. '.hero' or '#pricing' • clip — 'x,y,width,height' pixel region Default is the viewport only (not the whole page). Set full_page=true only when you genuinely need the entire scroll height. LONG PAGES — TILE INSTEAD OF full_page: capture consecutive clip slices ('0,0,1280,2000' then '0,2000,1280,2000', ...) and review each; every tile stays under the image size limit and keeps section-level detail a squashed full-page shot loses.
JUDGING RESULTS — read the caption's byte size before concluding anything: a blank capture is <6 KB and returns an ERROR; a multi-KB success is real content even if it looks white (lazy-loaded images below the fold render white — capture the viewport or a parent instead). 'Element not found' means YOUR selector is wrong (check the widget type — e.g. nested accordions are .elementor-widget-n-accordion), not that the service is down. NEVER re-shoot the same target more than twice: if two captures disagree with your expectation, stop and ask the user to look — do not declare the service down and keep burning the allowance.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page URL to screenshot (http/https) | |
| clip | No | Pixel region 'x,y,width,height'. Cannot be combined with element_id/selector. | |
| width | No | Viewport width px (1280 desktop, 390 mobile; default 1280) | |
| format | No | jpeg (default) | webp | png. png is lossless and much larger. | |
| quality | No | 1-100 for jpeg/webp (default 80). Ignored for png. | |
| selector | No | CSS selector to capture, e.g. '.hero'. Ignored if element_id is set. | |
| full_page | No | Capture the full scrollable page (default FALSE — viewport only) | |
| element_id | No | Elementor element id from wp_get_page (e.g. 'db438b6') — captures just that widget |