https://api.parse.bot with your API key in the X-API-Key header.
Prefer to do this in the browser? The Dashboard guide walks the same flow through the UI — paste a URL, test endpoints, revise, and grab a snippet. Use this page if you want to drive it programmatically.
Prerequisites
- A Parse account at parse.bot
- An API key from the dashboard (Settings → API Keys). See Authentication.
Step 0 (optional): Check the marketplace first
Thousands of sites already have a pre-built API. Searching first is free, instant, and needs no auth:
Get the
canonical_scraper_id and endpoint list from GET /marketplace/apis/{id}. See the Marketplace guide for the details and trade-offs. If there’s no match, dispatch your URL (below) and Parse builds it from scratch.
Step 1: Create an API
Submit a URL and, optionally, describe the data you want:matched: true— an existing API already covered this site; it’s ready to call now.matched: false— a build job was queued. Polltask_iduntil it completes (Step 2).may_require_auth: true— the site likely needs a login. Authenticated APIs are built from the dashboard, not the API — see Authenticated APIs.
contributes_to_marketplace (optional, default true). When true, your API stays linked to the shared canonical for its domain: you can pull upstream improvements, and the build is free. Set it to false to build a fully private, desynced API (this is a charged build and the choice is permanent). Most users should leave it true.Step 2: Poll for completion
status is completed. A typical build takes anywhere from a few seconds (marketplace match) to a couple of minutes (a fresh build on a complex site).
The status field moves through this lifecycle:
A completed task includes a
generated_api object with everything needed to call it:
If status is needs_input
If status is needs_input
The agent occasionally needs a hint — most often a realistic input to test an endpoint (e.g. a search term). The
user_input_prompt field describes what it’s asking for. Answer it and the build resumes:Step 3: Call an endpoint
Use thescraper_id and an endpoint_name from the spec. Send parameters in the JSON body for POST endpoints, or as query-string params for GET endpoints:
return_schema, with no wrapper:
X-RateLimit-Remaining, X-RateLimit-Reset, X-Credits-Remaining, …) so you can pace your calls. When a call fails, the HTTP status tells you whose fault it is — a 502 means the target site failed, a 500 means the scraper bugged out. See Errors & Troubleshooting.
Step 4: Revise your API
Need a change? Describe it in plain English:task_id exactly like Step 2. Your scraper_id stays the same — new and updated endpoints become callable when the revision completes.
Step 5: Export or connect an agent
What’s next
Python SDK
Typed Python clients generated by the parse CLI
Code examples
Full Python & JavaScript clients with a polling helper
Marketplace
Search pre-built APIs before you build
API Updates
Pull upstream improvements into your APIs
Errors & Troubleshooting
Read the execution envelope — whose fault a 422 / 502 / 503 is