# ScrapingAnt > ScrapingAnt is a web-data infrastructure API: one HTTP endpoint that renders a target page in > real headless Chrome behind a rotating pool of 3M+ residential and datacenter proxies, with > CAPTCHA avoidance and TLS fingerprinting handled server-side. The same fetch is exposed as raw > HTML, LLM-ready Markdown, an extended JSON envelope, or AI-extracted structured JSON. A hosted > MCP server puts three of those formats directly in an agent's tool list. Generated by API Evangelist on 2026-08-29 from the provider's own published surfaces. ScrapingAnt does not serve an llms.txt of its own (https://scrapingant.com/llms.txt -> 404, https://docs.scrapingant.com/llms.txt -> 404), so this file is GENERATED, not harvested. Operated by DATAANT. Founder: Oleg Kulyk. ## Base URL and authentication - Base URL: https://api.scrapingant.com/v2 - Auth: an API key sent as `x-api-key`, either as a query parameter (what the OpenAPI declares) or as a request header (what the docs and code samples show — prefer this; query strings are logged). - Get a key: https://app.scrapingant.com/signup — 10,000 credits every month, no card. - There is no OAuth, no OIDC, and no scopes. ## Endpoints - GET/POST/PUT/PATCH/DELETE https://api.scrapingant.com/v2/general — scrape a URL, returns the rendered HTML body. A non-GET method is PROXIED THROUGH to the target site. - GET https://api.scrapingant.com/v2/markdown — same fetch, returns {"url","markdown"}. - GET https://api.scrapingant.com/v2/extended — same fetch, returns {"html","text","cookies","status_code","headers","xhrs","iframes"}. - GET https://api.scrapingant.com/v2/extract — AI structured extraction; add `extract_properties` as free-text ("product title, price(number), full description") and get JSON back with matching camelCase keys. - GET https://api.scrapingant.com/v2/usage — remaining credits: {"plan_name","start_date","end_date","plan_total_credits","remained_credits"}. Only /v2/general and /v2/usage appear in the published OpenAPI. The other three are documented and live but unspecified. ## Key request parameters (/v2/general and its variants) - url (required) — target URL, URL-encoded. - browser (default true) — render in headless Chrome. Set false for cheap static fetches. - return_page_source (default false) — return the server's unaltered response without JS rendering. Requires browser=true. - timeout — 5 to 60 seconds, default 60. - proxy_type — `datacenter` (default) or `residential`. Switch to residential on anti-bot. - proxy_country — ISO country code. Published set: ae au br ca cn cz de es fr gb hk id il in it jp kr my nl ph pl ru sa sg th us vn. - wait_for_selector — CSS selector to wait for before returning. Requires browser=true. - js_snippet — base64-encoded JavaScript to run after load. Requires browser=true. - cookies — cookies to send to the target. - block_resource — repeatable; block document, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest, other. ## MCP server (hosted, remote) - Endpoint: https://api.scrapingant.com/mcp/ (streamable HTTP; /mcp 307-redirects to /mcp/) - Auth: `x-api-key` header. tools/list answers ANONYMOUSLY, so an agent can read the real schemas before it has a key. - Install (Claude Code): claude mcp add scrapingant --transport http https://api.scrapingant.com/mcp -H "x-api-key: KEY" - Tools: get_web_page_html, get_web_page_markdown, get_web_page_text. All three take url (required), browser, proxy_type, proxy_country. - Not exposed as tools: credit usage, the AI extractor, the extended JSON envelope, timeout, js_snippet, cookies, wait_for_selector, block_resource, return_page_source. ## Errors JSON, shaped {"detail": "..."} — not RFC 9457, no machine-readable code. - 400 wrong request format - 403 wrong API token OR credits exhausted (ambiguous — call /v2/usage to tell them apart) - 404 the TARGET url is unreachable (not a ScrapingAnt routing error) - 405 unsupported HTTP method - 409 concurrent request limit exceeded (free plan) — retryable, no Retry-After - 422 invalid value, and also what you get when the API key is missing entirely - 423 anti-bot detection triggered — retry with proxy_type=residential or a proxy_country - 500 server-side failure There is no 429 and there are no RateLimit-* headers. ## Billing and limits - Metered in API credits, monthly pool, no rollover. Failed requests cost 0. - Cost per request: 1 (no browser + datacenter) · 2 (browser, no JS render + datacenter) · 10 (browser + JS render + datacenter, the default) · 25 (no browser + residential) · 50 (browser, JS render off via return_page_source=false + datacenter) · 125 (browser + JS render + residential) · 10 (any Google domain + datacenter). - AI extractor: ceil((markdown_chars + output_chars) / 30) + the request cost above. - Each response carries `Ant-credits-cost` telling you what the call just cost. - No published requests-per-second/minute limit; the provider markets unlimited concurrency on paid plans. Free plans can hit 409. - Plans: Free 10K credits/mo · Enthusiast $19 100K · Startup $49 500K · Business $249 3M · Business Pro $599 8M · Custom from $699 10M+. - Residential proxies are a separate product billed per GB: $30/5GB up to $1,750/500GB ($6.00/GB down to $3.50/GB). Datacenter proxies $0.44–$0.60/GB. ## Client libraries - Python: `pip install scrapingant-client` — 2.1.0, published 2024-07-16. - JavaScript: `npm i @scrapingant/scrapingant-client` — 0.2.1, published 2022-05-06. - n8n node: `npm i n8n-nodes-scrapingant` — 0.1.6, published 2026-04-14. - GitHub Action: ScrapingAnt/scrapingant-scrape-action. Both language SDKs predate the Markdown, AI-extract and MCP surfaces and do not wrap them. For anything beyond /v2/general, call the HTTP API directly. ## Documentation - Docs: https://docs.scrapingant.com/ - API basics: https://docs.scrapingant.com/api-basics - Request/response format: https://docs.scrapingant.com/request-response-format - Errors: https://docs.scrapingant.com/errors - Credit costs: https://docs.scrapingant.com/credits-cost - Markdown endpoint: https://docs.scrapingant.com/llm-markdown - AI extractor: https://docs.scrapingant.com/ai-data-extraction/ai-extractor - Extended JSON: https://docs.scrapingant.com/json-response - MCP server: https://docs.scrapingant.com/mcp-server - OpenAPI: https://api.scrapingant.com/openapi.json · Swagger UI: https://api.scrapingant.com/docs - Proxy docs: https://proxydocs.scrapingant.com/ - Pricing: https://scrapingant.com/#pricing - Terms: https://scrapingant.com/legal/terms-of-use - Privacy: https://scrapingant.com/legal/privacy-policy - GitHub: https://github.com/ScrapingAnt ## What ScrapingAnt does not publish No status page. No changelog or release notes. No SLA. No security.txt, no api-catalog, no agent card, no OAuth metadata (every /.well-known/ path 404s on every host). No SOC 2 or ISO 27001 claim and no trust center. No webhooks, events or AsyncAPI. No published policy on honouring target-site robots.txt.