# Screenshot API > Take a screenshot of any public web page. Built for AI agents: one request, one image. ## Take a screenshot GET https://localscreenshot.com/v1/screenshot?url=https://example.com Header: Authorization: Bearer YOUR_API_KEY (the key never goes in the URL) The response is the image. Add response=json to get a link to the image and the page details instead. POST with a JSON body works the same way. ## Options - url (string): The public http or https page to capture. - country (string): Load the page from this country (ISO 3166-1 alpha-2 code, see /v1/countries). The response reports the country actually observed. If it cannot be obtained, the request fails and is not charged. Costs 2 credits instead of 1. - viewport (string): Screen size as WIDTHxHEIGHT, for example 1440x900. Shortcut for viewport_width and viewport_height. - viewport_width (integer): Width of the browser window, in pixels. - viewport_height (integer): Height of the browser window, in pixels. With full_page, the image is taller than this. - device_scale_factor (number): Pixel density. 2 gives a sharper, larger image. - device (string): Capture as this device (screen size, pixel density, mobile browser). One of: desktop, desktop_hd, laptop, ipad, ipad_pro, ipad_mini, iphone_15, iphone_15_pro_max, iphone_se, pixel_8, galaxy_s24. - full_page (boolean): Capture the whole scrollable page instead of the visible part. - selector (string): Capture only the first element matching this CSS selector. - format (string): File format. pdf saves the whole page as a document; it cannot be combined with selector or max_width. One of: png, jpeg, webp, pdf. - quality (integer): Quality for jpeg and webp. Ignored for png and pdf. - color_scheme (string): Ask the page for its light or dark theme. One of: light, dark. - language (string): Browser language, for example fr or fr-FR. - timezone (string): Browser time zone, for example Europe/Paris. - wait_for (string): Wait until an element matching this CSS selector is visible. - delay_ms (integer): Extra wait before the capture, in milliseconds. - hide_selectors (array): Hide every element matching these CSS selectors. In a URL, separate them with commas. - disable_animations (boolean): Freeze animations and transitions. - hide_sticky_elements (boolean): Hide headers, bars and buttons that stay fixed on screen. - block_cookie_banners (boolean): Removes most cookie banners. A banner the filters do not know stays in the picture. - block_ads (boolean): Block ads. - block_chat_widgets (boolean): Hide chat bubbles. - close_popups (boolean): Close pop-ups and newsletter overlays. - max_width (integer): Scale the image down to this width. Useful to keep it small for a vision model. - response (string): image returns the picture itself. json returns its link, the page details and the attestation. One of: image, json. - async (boolean): Return an id right away instead of waiting. Read the result at /v1/screenshots/{id}. ## Your screenshots - GET https://localscreenshot.com/v1/screenshots lists them, newest first. Use limit (1 to 100) and the next_cursor of the previous page. - GET https://localscreenshot.com/v1/screenshots/{id} reads one. - DELETE https://localscreenshot.com/v1/screenshots/{id} deletes one: the image is destroyed and its links stop working. ## Credits - A screenshot costs 1 credit. From a chosen country it costs 2. - A failed screenshot is not charged. The number of failed screenshots per day is limited. - GET https://localscreenshot.com/v1/credits shows what is left. ## Errors Errors are JSON: {"error": {"code", "message", "retryable"}}. Retry only when retryable is true, and wait for the Retry-After header when present. Send an Idempotency-Key header to retry safely: the same key returns the same screenshot and is charged once. ## Limits - Only public http and https pages. No login, no bot check solving, no paywall bypass. - The country reported is the one observed when the page was loaded, never the one requested. If it cannot be obtained, the request fails. - The attestation is a signed technical record, not legal proof. ## More - Documentation: https://docs.localscreenshot.com/ (every page also as Markdown: add .md to its address) - The whole documentation in one text: https://docs.localscreenshot.com/llms-full.txt - OpenAPI: https://localscreenshot.com/v1/openapi.json - Countries: https://localscreenshot.com/v1/countries - MCP server: https://localscreenshot.com/mcp (same API key, in the Authorization header)