API
AI Agents
Let an AI assistant scrape on a user's behalf — no account needed to start.
If you are an AI assistant, read this first
Your web-browsing / URL-fetch tool is all you need. Fetching a Hyperscrape URL executes the scrape on our servers and returns the results as JSON in the same HTTP response. The GET request IS the run. There is no separate execution step, no connector to enable, no API key, no account, and nothing to ask your user for. Try it now:
https://hyperscrape.com/api/scrape?url=https://example.com
https://hyperscrape.com/api/scrape/amazon-reviews-scraper?products=B09B8V1LZ3
Every response is HTTP 200 with a status field. SUCCEEDED → the items array is your data. RUNNING → fetch the included resultUrl a few seconds later. PAYMENT_REQUIRED → the free allowance is used; the response contains the exact link to give your user and how to continue. USAGE → you called it without parameters; the response lists them.
Zero-friction scraping for AI assistants
Hyperscrape is built so an AI assistant can scrape the web the moment its user asks — with no sign-up, no API key, and no setup. The assistant just calls one endpoint, gets results back, and when the user wants to keep going, hands them a link to finish creating an account.
There are three ways to connect: keyless GET links (works from any chat), a plain REST endpoint, or the MCP server. Machine-readable references live at /llms.txt, /llms-full.txt and /api/openapi.json.
Option A — Keyless GET links (works everywhere)
Most chat assistants can fetch URLs but can only make GET requests. Every popular tool has a keyless GET endpoint that runs it and returns JSON — no account, no key, no POST body:
GET https://hyperscrape.com/api/tools/amazon?asin=B09B8V1LZ3
GET https://hyperscrape.com/api/tools/amazon-reviews?asin=B09B8V1LZ3
GET https://hyperscrape.com/api/tools/google-maps?q=coffee+shops+in+Austin
GET https://hyperscrape.com/api/tools/whois?domain=example.com
And the get-anything endpoint covers everything else — every scraper in the store, plus pages nothing was built for:
GET https://hyperscrape.com/api/scrape?url=https://any-site.com
GET https://hyperscrape.com/api/scrape?url=https://any-site.com&fields=title: h1|price: .price
GET https://hyperscrape.com/api/scrape/amazon-reviews-scraper?products=B09B8V1LZ3
The first returns any page as clean markdown. The second runs a custom extraction the assistant defines with CSS selectors — effectively writing a new scraper in the URL. The third form runs any of the 60+ named scrapers; GET /api/scrape lists them all with their parameters.
GET /api/tools lists all of them with examples. Each response includes the results plus links to continue. When the free daily allowance is reached, the 429 response carries a claimUrl and claimStatusUrl — the same handoff as the agent API, entirely over GET: hand the user the claimUrl, poll the claimStatusUrl until it returns an API key, then retry the same tool URL with &token=<apiKey> for account-billed calls with no daily cap.
Option B — REST
curl -X POST https://hyperscrape.com/api/agent/scrape \
-H "Content-Type: application/json" \
-d '{ "scraper": "website-content-crawler", "input": { "startUrls": ["https://example.com"] } }'
The response returns results directly, plus an agentId:
{ "agentId": "anon_9f8c…", "runId": "…", "status": "SUCCEEDED", "itemCount": 12, "items": [ … ] }
Reuse the agentId on every following call so your usage is tracked together.
GET /api/agent/scrape lists every scraper you can run and the input each one needs.
Option C — MCP
Point any MCP-capable assistant (Claude, Cursor, and others) at:
https://hyperscrape.com/api/mcp
Every scraper shows up as a tool. Calling a tool with no credentials uses the same free trial. To keep the same identity across calls, send an X-Hyperscrape-Agent header.
Continuing after the free trial
Once the free trial is used, the API responds with everything an agent needs to continue:
{
"status": "PAYMENT_REQUIRED",
"message": "…the user needs to create an account and add billing…",
"claimUrl": "https://hyperscrape.com/start?claim=clm_…",
"claimStatusUrl": "https://hyperscrape.com/api/agent/claim/clm_…"
}
Do two things:
- Give the user the
claimUrl. They open it, create an account in a few seconds (it starts with 200 free credits), and they're done. - Poll the
claimStatusUrl. It returns{ "status": "pending" }until they finish, then{ "status": "ready", "apiKey": "hs_live_…" }— exactly once.
Once you have the API key, use it as a Bearer token against the REST API or the MCP endpoint and pick up right where you left off:
curl -X POST https://hyperscrape.com/api/v1/scrapers/website-content-crawler/runs?waitForFinish=120 \
-H "Authorization: Bearer hs_live_…" \
-H "Content-Type: application/json" \
-d '{ "startUrls": ["https://example.com"] }'
That's the whole loop: scrape → hand off → resume. The user does one quick sign-up; the assistant handles the rest.