Start benchmark
POST
/api/v1/benchmarks
const url = 'https://dashboard.justcrawl.io/api/v1/benchmarks';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"urls":["https://example.com"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://dashboard.justcrawl.io/api/v1/benchmarks \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "urls": [ "https://example.com" ] }'Kicks off a benchmark run — every connected provider scrapes the supplied URLs in
parallel so the platform can rank them on success rate, latency, and cost. Returns
201 with a pending benchmark record immediately; the actual scraping happens
async (setImmediate → runBenchmark). Poll GET /benchmarks/{id} for status.
- Hard cap: 20 URLs per benchmark. Larger sets return 400.
- Auto-detect: providers are taken from this org’s connected accounts; orgs with zero connected providers get 400 with an actionable message.
- One-at-a-time per org: a second POST while one is
pendingorrunningreturns 409. Invalid URLs are silently skipped; if every URL is invalid the call 400s.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ” Media type application/json
object
urls
required
Array<string>
Example generated
{ "urls": [ "https://example.com" ]}Responses
Section titled “ Responses ”Benchmark queued; scraping runs async.
Media type application/json
object
id
string format: uuid
status
string
urls
Array<string>
providerIds
Array<string>
totalProbes
integer
completedProbes
integer
failedProbes
integer
skippedProviders
Array<string>
error
string
createdAt
string format: date-time
Example
{ "status": "pending"}Validation failed — request body or query is missing/invalid
Media type application/json
object
error
string
Example
{ "error": "Missing or invalid \"url\" field"}Missing or invalid authentication token
Media type application/json
object
error
string
Example
{ "error": "Missing or invalid authentication token"}Insufficient permissions for this operation
Media type application/json
object
error
string
Example
{ "error": "No organization. Complete onboarding first."}Operation conflicts with current resource state
Media type application/json
object
error
string
Example
{ "error": "Resource already exists"}Unexpected server error. Logs and PostHog $exception capture
Media type application/json
object
error
string
Example
{ "error": "Something went wrong"}