# WebScraping.AI > Web scraping API that returns the rendered HTML, visible text, CSS-selected fragments, or > LLM-extracted structured data of any URL. Handles headless Chromium rendering, rotating > datacenter/residential/stealth proxies, CAPTCHAs and geotargeting so the caller does not have > to run scraping infrastructure. Seven read-only GET operations on `https://api.webscraping.ai`, > authenticated with an `api_key` query parameter, metered in credits with a per-plan ceiling on > concurrent requests. Also reachable as a hosted MCP server, an HTTP proxy, and an official CLI. Generated by API Evangelist from the provider's published artifacts. The provider does not publish an llms.txt of its own (https://webscraping.ai/llms.txt returned 404 on 2026-08-09; https://docs.webscraping.ai/llms.txt 301-redirects to the HTML docs page). ## APIs - [WebScraping.AI API](https://webscraping.ai/docs): Seven GET operations — AI question answering, AI field extraction, HTML, text, selected HTML, multiple selected areas, account. - [OpenAPI 3.1.0 specification](https://webscraping.ai/openapi.yml): The machine-readable contract, published by the provider. - [Base URL](https://api.webscraping.ai): No version segment in the path. ## Operations - `GET /ai/question` (`getQuestion`): Answer a natural-language question about a page. - `GET /ai/fields` (`getFields`): Extract named fields from a page using per-field instructions. - `GET /html` (`getHTML`): Full rendered HTML of a page. - `GET /text` (`getText`): Visible text of a page (plain Markdown, JSON or XML). - `GET /selected` (`getSelected`): HTML of one CSS-selected page area. - `GET /selected-multiple` (`getSelectedMultiple`): HTML of several selected areas in one call. - `GET /account` (`account`): Remaining credits, quota reset time, and concurrency headroom. ## Agent surfaces - [Hosted MCP server](https://mcp.webscraping.ai/mcp): Streamable HTTP, OAuth 2.1 login, no API key. `claude mcp add --transport http webscraping-ai https://mcp.webscraping.ai/mcp` - [Open-source MCP server](https://github.com/webscraping-ai/webscraping-ai-mcp-server): stdio, `npx -y webscraping-ai-mcp`, same seven tools, uses `WEBSCRAPING_AI_API_KEY`. - [Agent skill](https://github.com/webscraping-ai/webscraping-ai-cli): Bundled in the official CLI; `webscraping-ai setup skill --all` installs it into Claude Code, Cursor, Windsurf, Kiro, OpenCode, Gemini CLI, GitHub Copilot, Augment and Factory. - [OAuth authorization server metadata](https://webscraping.ai/.well-known/oauth-authorization-server) - [OAuth protected resource metadata](https://webscraping.ai/.well-known/oauth-protected-resource) - No A2A agent card is published. ## Docs - [API documentation](https://webscraping.ai/docs) - [API Request Builder (interactive console)](https://webscraping.ai/dashboard/api-request-builder) - [Integrations — Zapier, n8n, Make, Pipedream, MCP](https://webscraping.ai/integrations) - [Pricing](https://webscraping.ai/#pricing) - [Blog](https://webscraping.ai/blog) - [Terms of Service](https://webscraping.ai/terms) - [Privacy Policy](https://webscraping.ai/privacy) ## SDKs and tooling - [Python](https://pypi.org/project/webscraping-ai/) — `pip install webscraping_ai` - [JavaScript](https://www.npmjs.com/package/webscraping-ai) — `npm install webscraping-ai` - [PHP](https://packagist.org/packages/webscraping-ai/webscraping-ai-php) — `composer require webscraping-ai/webscraping-ai-php` - [Ruby](https://rubygems.org/gems/webscraping_ai) — `gem install webscraping_ai` - [Go](https://pkg.go.dev/github.com/webscraping-ai/webscraping-ai-go/v4) — `go get github.com/webscraping-ai/webscraping-ai-go/v4` - [Java](https://central.sonatype.com/artifact/ai.webscraping/webscraping-ai) — `ai.webscraping:webscraping-ai` - [C# / .NET](https://www.nuget.org/packages/WebScrapingAI) — `dotnet add package WebScrapingAI` - [CLI](https://www.npmjs.com/package/webscraping-ai-cli) — `npm install -g webscraping-ai-cli` - [n8n node](https://www.npmjs.com/package/n8n-nodes-webscraping-ai) — `n8n-nodes-webscraping-ai` - [GitHub organization](https://github.com/webscraping-ai) ## Operating notes for agents - Authentication: `api_key` query parameter on every request. A bad key returns **403**, not 401. - Every operation is a GET — safe and idempotent. Retry on 429, 500 and 504; do not retry 400, 402 or 403. Failed requests are not billed. - Rate limiting is by **concurrency**, not by rate. Exceeding it returns 429. There are no rate-limit response headers; poll `GET /account` for `remaining_concurrency`. - Response headers carry `X-Credits-Used`, `X-Credits-Remaining`, `X-Target-Status` and `X-Target-Url`. - Credit cost varies: 1 (no JS, datacenter) · 5 (JS, datacenter — the default) · 10 (residential, no JS) · 25 (residential + JS) · 50 (stealth) · +5 for either AI endpoint. - Errors are `application/json` `{message, status_code?, status_message?, body?}` — **not** RFC 9457. `status_code` is the *target page's* status, not the API's. - Requests are capped at 30 seconds; default `timeout` is 10000 ms, default `js_timeout` 2000 ms. - No webhooks, events or streaming surface exists. No status page and no public changelog. ## Repository artifacts - [OpenAPI](openapi/webscraping-ai-openapi.yml) - [Authentication](authentication/webscraping-ai-authentication.yml) - [Conventions](conventions/webscraping-ai-conventions.yml) - [Error catalog](errors/webscraping-ai-problem-types.yml) - [Rate limits](rate-limits/webscraping-ai-rate-limits.yml) - [Plans](plans/webscraping-ai-plans.yml) - [Lifecycle](lifecycle/webscraping-ai-lifecycle.yml) - [MCP server](mcp/webscraping-ai-mcp.yml) - [MCP/REST tool crosswalk](mcp/webscraping-ai-tool-crosswalk.yml) - [Packages](packages/webscraping-ai-packages.yml) - [CLI](cli/webscraping-ai-cli.yml) - [Sandbox](sandbox/webscraping-ai-sandbox.yml) - [Data model](data-model/webscraping-ai-data-model.yml) - [Conformance](conformance/webscraping-ai-conformance.yml) - [Well-known](well-known/webscraping-ai-well-known.yml) - [Agent skill (provider-published)](skills/webscraping-ai-cli-skill.md)