Send a request.
Get clean data back.
One REST API to search the web, map sites, scrape and crawl pages, and parse documents. Spidra runs the browsers, proxies and extraction, and hands you Markdown or JSON.
{"status": "completed","result": {"content": {"launches": [{"name": "Inbox Zero","tagline": "Open-source Superhuman alternative","votes": 277},{"name": "NitroStack","tagline": "Build, test, and deploy MCP servers in one place","votes": 299},{"name": "Spira Maxima","tagline": "Video model that turns script into viral social media videos","votes": 639},{"name": "Rill Browser","tagline": "The browser where Claude Code and Codex work beside you","votes": 519},{"name": "IrisGo for Solopreneurs","tagline": "AI workflow automation: show it once, let it run","votes": 506}]},"ai_extraction_failed": false},"error": null}
From API key to data in three steps
The SDKs submit the job and wait for the result, so your first request is a few lines.
Create an API key
Sign up and create one under API Keys. You start with 300 free credits, no card needed.
Install an SDK
Or skip it and call the REST API from any language with an HTTP client.
Make your first request
Point it at a page and say what you want. Leave the prompt out to get the page as Markdown.
Your first request
1import os2from spidra import Spidra34client = Spidra(api_key=os.environ["SPIDRA_API_KEY"])56# waits for the job and returns the result7page = client.scrape(8 "https://www.producthunt.com/",9 prompt="List today's top 5 launches with name, tagline and votes.",10)1112print(page.content)
Both SDKs cover every tool, retry with backoff and raise typed errors.
Six tools. One base URL.
Each tool takes JSON and returns JSON, with Markdown wherever a page or document is the answer.
- GET/search/{jobId}
Search
Results from the web, news, images, videos, research papers and GitHub, with page content if you want it.
- Limit
- 1 to 20 results per source
- Cost
- 1 credit per 10 results per source
Limits and errors you can plan for
Clear rate limits on every plan, and errors that tell your code what happened and what to do next.
Rate limits
60 / min
Scrape, crawl, search, map and parse
20 / min
Batch scrape, up to 50 URLs each
Limits count submissions, not polls, and they're the same on every plan. Every submit tells you what's left.
RateLimit-Policy: "60-in-1min"; q=60; w=60RateLimit: "60-in-1min"; r=59; t=60
Errors
{"status": "error","message": "Scrape not found","code": "JOB_NOT_FOUND"}
- 401Missing, invalid or switched-off API keyCheck the Authorization header
- 402A payment on the account is overduePAYMENT_OVERDUEUpdate billing in the dashboard
- 403Monthly credits used upTop up or change plan
- 404No job with that IDJOB_NOT_FOUNDCheck the ID you stored
- 409The job already finishedALREADY_TERMINALNothing to cancel
- 422The request didn't validateRead the errors array, one line per problem
- 429Over the rate limit or too many queued jobsTOO_MANY_PENDING_JOBSBack off and retry
- 503The platform is at capacitySERVICE_BUSYWait retry_after seconds
Failed jobs cost nothing
Pages that error, come back blank or need a sign-in are free.
Polling is free
Checking a job's status never uses credits or rate limit.
Retry only what failed
Re-run the failed items of a batch, or one page of a crawl.
Questions, answered
Getting started
Send your API key in the Authorization header as Bearer spd_.... Create keys under API Keys in the dashboard, and switch one off there whenever you need to.
Requests and jobs
Limits and billing
Your first request
is a few lines away.
Start with 300 free credits, about 300 pages. No credit card required.