Core

Errors

Errors use { content, message, errors }. Plan, bulk and quota errors add { error: { code, message } }.

StatusMeaningShape
400Invalid paramsmessage: "Invalid params", errors: [{ path, message }]
400Source error{ project, error, errors, context?, timestamp }
400Bulk cap exceedederror.code: "bulk_cap_exceeded", cap, submitted
401Missing / invalid keymessage
403Plan gateerror.code: "plan_upgrade_required", required_plan, upgrade_url
403Bulk not enablederror.code: "bulk_not_enabled"
404Unknown scraper / endpointmessage
405Wrong HTTP verbcontent.expected + Allow header
422Idempotency key reused with another bodyerror.code: "idempotency_key_reuse"
429Rate or monthly limitcontent: { limit, used, window, retryAfterSec } + Retry-After
501Endpoint listed but not live yetcontent.status: "planned"
503Disabled or not configuredmessage
504Source timed outmessage (refunded)