{"status":"ok","service":"SiteLookerAtter","version":"2.7.0","description":"Screenshot any public web page, or read it as clean markdown. One GET request, no signup and no API key.","documentation":{"llms_txt":"https://api.sitelookeratter.com/llms.txt","openapi":"https://api.sitelookeratter.com/openapi.json","mcp":"https://api.sitelookeratter.com/mcp","mcp_install":{"transport":"http","claude_code":"claude mcp add --transport http sitelookeratter https://api.sitelookeratter.com/mcp","json":{"mcpServers":{"sitelookeratter":{"type":"http","url":"https://api.sitelookeratter.com/mcp"}}},"tools":["screenshot","extract"],"auth":"none"},"human":"https://sitelookeratter.com"},"endpoints":{"GET /screenshot":{"description":"Returns image or PDF bytes with the matching Content-Type.","example":"https://api.sitelookeratter.com/screenshot?url=example.com&device=mobile&removeCookies=true","params":{"url":{"type":"string","required":true,"description":"Page to capture. A missing scheme becomes https://. Private, loopback and internal addresses are refused."},"device":{"type":"string","values":["mobile","tablet","laptop","desktop","iphone","android"],"description":"Viewport preset. Sets width, height and a matching user agent. Overrides width/height/useragent."},"width":{"type":"integer","min":320,"max":1920,"default":1280,"description":"Custom viewport width. Used when device is absent."},"height":{"type":"integer","min":320,"max":1080,"default":800,"description":"Custom viewport height. Used when device is absent."},"full":{"type":"boolean","default":false,"description":"Capture the whole page height. Lazy-loaded images are scrolled into view first."},"format":{"type":"string","values":["png","jpeg","webp","pdf"],"default":"png","description":"Output format. pdf renders the desktop layout onto A4 pages."},"quality":{"type":"integer","min":1,"max":100,"default":80,"description":"Compression quality. JPEG and WebP only."},"scale":{"type":"integer","min":1,"max":3,"default":1,"description":"Device pixel ratio. 2 is retina."},"delay":{"type":"integer","min":0,"max":10000,"default":0,"description":"Extra settle time in milliseconds before capture. A blunt instrument: prefer waitFor when you know what you are waiting for."},"waitFor":{"type":"string","description":"Wait for this CSS selector to appear before capturing, up to 15 seconds. The reliable way to capture a page that builds itself client-side. Returns 400 if it never appears rather than capturing the wrong moment."},"dark":{"type":"boolean","default":false,"description":"Emulate prefers-color-scheme: dark."},"selector":{"type":"string","description":"Capture a single element by CSS selector instead of the viewport. First match in document order."},"removeCookies":{"type":"boolean","default":false,"description":"Remove cookie consent banners (OneTrust, Cookiebot, TrustArc, Osano, Quantcast and others)."},"blockAds":{"type":"boolean","default":false,"description":"Block ad and tracking requests."},"removeChat":{"type":"boolean","default":false,"description":"Remove chat widgets (Intercom, Drift, Zendesk, Crisp and others)."},"removePopups":{"type":"boolean","default":false,"description":"Remove promotional popups and newsletter modals."},"hide":{"type":"string","description":"Comma-separated CSS selectors to hide before capture."},"useragent":{"type":"string","description":"Custom user agent string. Used when device is absent."}}},"GET /extract":{"description":"Returns the rendered page as readable content (Mozilla Readability). Best way to feed a page to a language model.","example":"https://api.sitelookeratter.com/extract?url=example.com&format=markdown","params":{"url":{"type":"string","required":true,"description":"Page to read. Same rules as /screenshot."},"format":{"type":"string","values":["markdown","json","text","html"],"default":"markdown","description":"markdown returns title, byline, source URL and the article body. json adds excerpt, site name, language, published time and word count. text and html return the article body alone."}}}},"access":{"auth":"none","rate_limit":"50 requests per hour per IP address","rate_limit_headers":["X-RateLimit-Limit","X-RateLimit-Remaining","X-RateLimit-Reset","Retry-After"],"cache":"24 hours, keyed on the full parameter set. Cached responses send X-Cache: HIT and skip the render queue, but they still count against the rate limit.","cost":"free"}}