{"components":{"schemas":{"Batch":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/JobRequest"},"type":"array"},"max_cost":{"type":"integer"},"sticky":{"description":"Send every item through the same IP. Sticky jobs run one at a time at the site's pacing and include the sticky supplement; a saved login with a sticky IP keeps its own IP. Quote with the same flag.","type":"boolean"}},"required":["items"],"type":"object"},"BatchDetail":{"additionalProperties":false,"properties":{"batch":{"additionalProperties":true,"type":"object"},"created":{"type":"boolean"},"items":{"items":{"additionalProperties":false,"properties":{"item_no":{"type":"integer"},"job":{"$ref":"#/components/schemas/Job"}},"required":["item_no","job"],"type":"object"},"type":"array"},"pagination":{"additionalProperties":true,"type":"object"}},"required":["batch","items","pagination"],"type":"object"},"BatchErrors":{"additionalProperties":false,"properties":{"error":{"description":"The first refusal","type":"string"},"errors":{"items":{"$ref":"#/components/schemas/BatchItemError"},"type":"array"}},"required":["error","errors"],"type":"object"},"BatchItemError":{"additionalProperties":false,"properties":{"code":{"type":"string"},"field":{"type":"string"},"item_no":{"type":"integer"},"message":{"type":"string"}},"required":["item_no","field","code","message"],"type":"object"},"BrowserAction":{"additionalProperties":false,"properties":{"pixels":{"type":"integer"},"selector":{"type":"string"},"type":{"enum":["click","fill","scroll","wait_for"],"type":"string"},"value":{"type":"string"}},"required":["type"],"type":"object"},"CapturedXHR":{"additionalProperties":false,"properties":{"content_type":{"type":"string"},"method":{"type":"string"},"request_headers":{"additionalProperties":true,"type":"object"},"request_payload":{"type":"string"},"response_body":{"type":"string"},"response_body_encoding":{"description":"Absent on legacy text captures.","enum":["utf8","base64"],"type":"string"},"response_body_error":{"type":"string"},"response_body_truncated":{"type":"boolean"},"response_headers":{"additionalProperties":true,"type":"object"},"status_code":{"type":"integer"},"url":{"type":"string"}},"type":"object"},"Content":{"additionalProperties":false,"properties":{"exclude":{"items":{"type":"string"},"type":"array"},"fields":{"additionalProperties":{"$ref":"#/components/schemas/ContentField"},"type":"object"},"include":{"items":{"type":"string"},"type":"array"},"main":{"type":"boolean"}},"type":"object"},"ContentField":{"additionalProperties":false,"properties":{"all":{"type":"boolean"},"attribute":{"type":"string"},"description":{"type":"string"},"path":{"type":"string"},"required":{"type":"boolean"},"selector":{"type":"string"},"source":{"enum":["css","page","jsonld","json","ai"],"type":"string"},"type":{"enum":["string","number","boolean"],"type":"string"}},"type":"object"},"CreateSession":{"additionalProperties":false,"properties":{"auth_selector":{"type":"string"},"country":{"type":"string"},"idempotency_key":{"type":"string"},"login_url":{"type":"string"},"name":{"type":"string"},"origin":{"type":"string"},"retention_days":{"default":30,"description":"Days after last use. 0 keeps the profile until deletion. Sticky IP expires independently after one hour.","enum":[0,30,90],"type":"integer"},"session_storage":{"type":"boolean"},"sticky_ip":{"type":"boolean"}},"required":["name","origin","idempotency_key"],"type":"object"},"Data":{"additionalProperties":false,"properties":{"fields":{"additionalProperties":true,"type":"object"},"html":{"type":"string"},"images":{"items":{"type":"string"},"type":"array"},"json":{},"links":{"items":{"type":"string"},"type":"array"},"markdown":{"type":"string"},"structured_data":{"items":{},"type":"array"},"text":{"type":"string"}},"required":["html","text","markdown","json","links","images","fields"],"type":"object"},"Dataset":{"additionalProperties":false,"properties":{"columns":{"items":{"type":"string"},"type":"array"},"limit":{"type":"integer"},"offset":{"type":"integer"},"rows":{"items":{"$ref":"#/components/schemas/DatasetRow"},"type":"array"},"run_id":{"type":"string"},"status":{"type":"string"},"total":{"type":"integer"}},"required":["run_id","status","columns","rows","total","offset","limit"],"type":"object"},"DatasetRow":{"additionalProperties":false,"properties":{"error":{"type":"string"},"job_id":{"format":"uuid","nullable":true,"type":"string"},"status":{"type":"string"},"url":{"type":"string"},"values":{"additionalProperties":true,"type":"object"}},"required":["url","job_id","status","error","values"],"type":"object"},"Deliveries":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"Discovery":{"additionalProperties":false,"properties":{"documents":{"type":"integer"},"errors":{"items":{"type":"string"},"type":"array"},"truncated":{"type":"boolean"},"urls":{"items":{"type":"string"},"type":"array"}},"required":["urls","documents","truncated","errors"],"type":"object"},"DocumentOptions":{"additionalProperties":false,"properties":{"ocr":{"type":"boolean"}},"type":"object"},"DocumentResult":{"additionalProperties":false,"properties":{"ocr":{"type":"boolean"},"pages":{"type":"integer"},"total_pages":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["pages","total_pages","ocr","truncated"],"type":"object"},"Error":{"properties":{"code":{"type":"string"},"error":{"type":"string"},"error_message":{"type":"string"},"status":{"type":"string"}},"type":"object"},"Job":{"additionalProperties":true,"type":"object"},"JobOptions":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"execution_mode":{"default":"auto","enum":["auto"],"type":"string"},"max_cost":{"description":"Approved price in credits. A higher current price returns 409 without admission. Obtain it from pricing/quote.","minimum":0,"type":"integer"},"proxy_policy":{"additionalProperties":false,"properties":{"country":{"description":"ISO 3166-1 alpha-2 country from quote.countries; omit for Auto.","type":"string"}},"type":"object"},"request_payload":{"additionalProperties":false,"properties":{"actions":{"items":{"$ref":"#/components/schemas/BrowserAction"},"type":"array"},"body":{"description":"UTF-8 text up to 64 KiB, POST only. Without a Content-Type header, valid JSON is sent as application/json and other text as application/x-www-form-urlencoded. Job lists omit it; GET /jobs/{jobID} returns it.","maxLength":65536,"type":"string"},"capture_screenshot":{"type":"boolean"},"capture_xhr":{"type":"boolean"},"content":{"$ref":"#/components/schemas/Content"},"discover_sitemap":{"type":"boolean"},"document":{"$ref":"#/components/schemas/DocumentOptions"},"headers":{"additionalProperties":{"type":"string"},"description":"Up to 32 headers; the Content-Type a body gets by default is added on top. Header names are unique regardless of case. Host, Content-Length, Transfer-Encoding, TE, Trailer, Connection, Keep-Alive, Upgrade, Proxy-Connection, Expect, Accept-Encoding, User-Agent, Accept, Accept-Language, Cache-Control, Pragma, Priority, Upgrade-Insecure-Requests, DNT, Origin, X-Requested-With, X-Forwarded-For, X-Forwarded-Host, Forwarded, Via, X-Real-IP, True-Client-IP, CF-Connecting-IP and names starting with Proxy-, X-Proxy- or Sec- are managed by the platform (the page language follows proxy_policy.country). A job with headers is charged even when it fails; with session_id, Cookie and Accept-Language are rejected too. Values are stored with the job as sent, without surrounding spaces or tabs. A request that would change a method or header fixed by the site's configuration is rejected.","maxProperties":32,"type":"object"},"method":{"default":"GET","description":"POST runs like GET, including in a browser with screenshots, XHR capture, saved logins and page actions; in a browser a POST needs an https:// URL. PDF extraction (document) and sitemap discovery need GET. A POST is retried only when the request provably never reached the target.","enum":["GET","POST"],"type":"string"},"session_id":{"format":"uuid","type":"string"}},"type":"object"}},"required":["max_cost"],"type":"object"},"JobRequest":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"execution_mode":{"default":"auto","enum":["auto"],"type":"string"},"idempotency_key":{"maxLength":128,"type":"string"},"max_cost":{"description":"Approved price in credits. A higher current price returns 409 without admission. Obtain it from pricing/quote.","minimum":0,"type":"integer"},"proxy_policy":{"additionalProperties":false,"properties":{"country":{"description":"ISO 3166-1 alpha-2 country from quote.countries; omit for Auto.","type":"string"}},"type":"object"},"request_payload":{"additionalProperties":false,"properties":{"actions":{"items":{"$ref":"#/components/schemas/BrowserAction"},"type":"array"},"body":{"description":"UTF-8 text up to 64 KiB, POST only. Without a Content-Type header, valid JSON is sent as application/json and other text as application/x-www-form-urlencoded. Job lists omit it; GET /jobs/{jobID} returns it.","maxLength":65536,"type":"string"},"capture_screenshot":{"type":"boolean"},"capture_xhr":{"type":"boolean"},"content":{"$ref":"#/components/schemas/Content"},"discover_sitemap":{"type":"boolean"},"document":{"$ref":"#/components/schemas/DocumentOptions"},"headers":{"additionalProperties":{"type":"string"},"description":"Up to 32 headers; the Content-Type a body gets by default is added on top. Header names are unique regardless of case. Host, Content-Length, Transfer-Encoding, TE, Trailer, Connection, Keep-Alive, Upgrade, Proxy-Connection, Expect, Accept-Encoding, User-Agent, Accept, Accept-Language, Cache-Control, Pragma, Priority, Upgrade-Insecure-Requests, DNT, Origin, X-Requested-With, X-Forwarded-For, X-Forwarded-Host, Forwarded, Via, X-Real-IP, True-Client-IP, CF-Connecting-IP and names starting with Proxy-, X-Proxy- or Sec- are managed by the platform (the page language follows proxy_policy.country). A job with headers is charged even when it fails; with session_id, Cookie and Accept-Language are rejected too. Values are stored with the job as sent, without surrounding spaces or tabs. A request that would change a method or header fixed by the site's configuration is rejected.","maxProperties":32,"type":"object"},"method":{"default":"GET","description":"POST runs like GET, including in a browser with screenshots, XHR capture, saved logins and page actions; in a browser a POST needs an https:// URL. PDF extraction (document) and sitemap discovery need GET. A POST is retried only when the request provably never reached the target.","enum":["GET","POST"],"type":"string"},"session_id":{"format":"uuid","type":"string"}},"type":"object"},"target_url":{"format":"uri","type":"string"}},"required":["target_url","idempotency_key"],"type":"object"},"Jobs":{"additionalProperties":true,"type":"object"},"ListedSession":{"additionalProperties":false,"properties":{"auth_selector":{"type":"string"},"country":{"type":"string"},"expires_at":{"format":"date-time","nullable":true,"type":"string"},"ip_expires_at":{"format":"date-time","nullable":true,"type":"string"},"login_url":{"type":"string"},"name":{"type":"string"},"origin":{"type":"string"},"retention_days":{"type":"integer"},"session_id":{"type":"string"},"session_storage":{"type":"boolean"},"sign_in_expires_at":{"format":"date-time","nullable":true,"type":"string"},"sign_in_job_id":{"description":"The open sign-in POST /sessions/{sessionID}/login resumes; null when none.","format":"uuid","nullable":true,"type":"string"},"status":{"enum":["ready","needs_login"],"type":"string"},"sticky_ip":{"type":"boolean"},"updated_at":{"type":"string"}},"required":["sign_in_job_id","sign_in_expires_at"],"type":"object"},"N8NWorkflow":{"additionalProperties":true,"type":"object"},"PageChange":{"additionalProperties":false,"properties":{"after":{"additionalProperties":true,"type":"object"},"after_text":{"additionalProperties":{"type":"string"},"type":"object"},"before":{"additionalProperties":true,"nullable":true,"type":"object"},"before_text":{"additionalProperties":{"type":"string"},"type":"object"},"created_at":{"type":"string"},"job_id":{"type":"string"},"previous_job_id":{"nullable":true,"type":"string"},"status":{"type":"string"},"url":{"type":"string"}},"required":["url","job_id","previous_job_id","status","before","after","before_text","after_text","created_at"],"type":"object"},"PageChanges":{"additionalProperties":false,"properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"rows":{"items":{"$ref":"#/components/schemas/PageChange"},"type":"array"},"total":{"type":"integer"}},"required":["rows","total","offset","limit"],"type":"object"},"Pagination":{"additionalProperties":false,"properties":{"has_next":{"type":"boolean"},"has_prev":{"type":"boolean"},"limit":{"type":"integer"},"page":{"type":"integer"},"total":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["page","limit","total","total_pages","has_next","has_prev"],"type":"object"},"ProfileLoginCommand":{"additionalProperties":false,"properties":{"delta":{"type":"integer"},"id":{"format":"uuid","type":"string"},"key":{"type":"string"},"text":{"maxLength":4096,"type":"string"},"type":{"enum":["click","text","key","scroll","save","cancel"],"type":"string"},"x":{"type":"integer"},"y":{"type":"integer"}},"required":["id","type"],"type":"object"},"ProfileLoginCreated":{"additionalProperties":false,"properties":{"expires_in":{"description":"Seconds the sign-in stays open.","type":"integer"},"job_id":{"type":"string"}},"type":"object"},"ProfileLoginFrame":{"additionalProperties":false,"properties":{"ack":{"type":"integer"},"error":{"type":"string"},"hash":{"description":"Names the picture; send it back as seen.","type":"string"},"height":{"type":"integer"},"image":{"description":"Base64 picture; empty before the first one and when same is true.","type":"string"},"origin":{"type":"string"},"same":{"description":"The picture named by seen is unchanged.","type":"boolean"},"width":{"type":"integer"}},"type":"object"},"ProfileLoginInputStatus":{"additionalProperties":false,"properties":{"status":{"type":"string"}},"required":["status"],"type":"object"},"ProfileLoginRequest":{"additionalProperties":false,"properties":{"idempotency_key":{"type":"string"}},"required":["idempotency_key"],"type":"object"},"ProfileLoginStatus":{"additionalProperties":false,"properties":{"expires_at":{"format":"date-time","type":"string"},"frame":{"$ref":"#/components/schemas/ProfileLoginFrame"},"status":{"type":"string"}},"required":["status","expires_at","frame"],"type":"object"},"Quote":{"additionalProperties":false,"properties":{"billing_mode":{"type":"string"},"breakdown":{"additionalProperties":true,"type":"object"},"cost":{"type":"integer"},"countries":{"items":{"type":"string"},"type":"array"},"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array"}},"type":"object"},"QuoteRequest":{"oneOf":[{"$ref":"#/components/schemas/JobRequest"},{"$ref":"#/components/schemas/Batch"}]},"Result":{"additionalProperties":false,"properties":{"billing":{"additionalProperties":true,"type":"object"},"data":{"$ref":"#/components/schemas/Data"},"discovery":{"allOf":[{"$ref":"#/components/schemas/Discovery"}],"nullable":true},"document":{"allOf":[{"$ref":"#/components/schemas/DocumentResult"}],"nullable":true},"job_id":{"type":"string"},"metadata":{"additionalProperties":true,"type":"object"},"result_ref":{"type":"string"},"status":{"type":"string"},"storage":{"type":"string"},"url":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"},"xhr":{"items":{"$ref":"#/components/schemas/CapturedXHR"},"type":"array"}},"type":"object"},"RetryRunCreated":{"additionalProperties":false,"properties":{"pages":{"type":"integer"},"run_id":{"type":"string"}},"required":["run_id","pages"],"type":"object"},"Run":{"additionalProperties":true,"type":"object"},"RunCounts":{"additionalProperties":false,"properties":{"all":{"type":"integer"},"crawls":{"type":"integer"},"failed_today":{"type":"integer"},"running":{"type":"integer"},"scheduled":{"type":"integer"}},"required":["all","failed_today","crawls","scheduled","running"],"type":"object"},"RunCreated":{"additionalProperties":false,"properties":{"run_id":{"type":"string"}},"required":["run_id"],"type":"object"},"RunKey":{"additionalProperties":false,"properties":{"idempotency_key":{"type":"string"}},"required":["idempotency_key"],"type":"object"},"RunList":{"additionalProperties":false,"properties":{"counts":{"allOf":[{"$ref":"#/components/schemas/RunCounts"}],"description":"Left out with include_counts=false."},"pagination":{"$ref":"#/components/schemas/Pagination"},"runs":{"items":{"$ref":"#/components/schemas/RunSummary"},"type":"array"},"totals":{"allOf":[{"$ref":"#/components/schemas/RunTotals"}],"description":"With include_totals=true: pages and failed pages of every run the filters match, not only this page."}},"required":["runs","pagination"],"type":"object"},"RunRef":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"kind":{"enum":["task_run","batch","job"],"type":"string"}},"required":["kind","id"],"type":"object"},"RunRefs":{"additionalProperties":false,"properties":{"runs":{"items":{"$ref":"#/components/schemas/RunRef"},"maxItems":500,"minItems":1,"type":"array"}},"required":["runs"],"type":"object"},"RunSummary":{"additionalProperties":false,"properties":{"charged":{"description":"Credits charged so far.","type":"integer"},"created_at":{"format":"date-time","type":"string"},"finished_at":{"format":"date-time","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["task_run","batch","job"],"type":"string"},"label":{"type":"string"},"pages":{"additionalProperties":false,"properties":{"cap":{"nullable":true,"type":"integer"},"failed":{"type":"integer"},"in_flight":{"type":"integer"},"ok":{"type":"integer"},"total":{"type":"integer"}},"required":["total","ok","failed","in_flight","cap"],"type":"object"},"retry_cost_per_page":{"description":"Per-page price cap in credits a retry of the failed pages runs under: a task run's max_cost, the highest cost among a batch's jobs, a job's cost; 0 when none. pages.failed × retry_cost_per_page bounds the retry.","type":"integer"},"source":{"additionalProperties":false,"properties":{"name":{"description":"API key name for api_key, saved task name for schedule.","type":"string"},"type":{"enum":["console","api_key","schedule","retry"],"type":"string"}},"required":["type","name"],"type":"object"},"status":{"description":"Any page in flight: running. All pages succeeded: succeeded. None succeeded: failed (all canceled: canceled). Otherwise partial.","enum":["running","succeeded","partial","failed","canceled"],"type":"string"},"target":{"additionalProperties":false,"properties":{"domain":{"type":"string"},"url":{"type":"string"},"urls":{"type":"integer"}},"required":["url","domain","urls"],"type":"object"},"task_id":{"format":"uuid","nullable":true,"type":"string"},"type":{"description":"site = crawl; document = PDF request; pages = several URLs or a batch; page = one URL.","enum":["page","pages","site","document"],"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["kind","id","type","status","label","source","task_id","target","pages","charged","retry_cost_per_page","created_at","updated_at","finished_at"],"type":"object"},"RunTotals":{"additionalProperties":false,"properties":{"failed":{"type":"integer"},"pages":{"type":"integer"}},"required":["pages","failed"],"type":"object"},"Runs":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"RunsBulk":{"additionalProperties":false,"properties":{"idempotency_key":{"description":"Required for retry and rerun: the same key starts nothing twice, each run answering the runs it started.","maxLength":64,"type":"string"},"runs":{"items":{"$ref":"#/components/schemas/RunRef"},"maxItems":500,"minItems":1,"type":"array"}},"required":["runs"],"type":"object"},"RunsBulkResult":{"additionalProperties":false,"properties":{"failed":{"items":{"additionalProperties":false,"properties":{"error":{"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["task_run","batch","job"],"type":"string"}},"required":["kind","id","error"],"type":"object"},"type":"array"},"runs":{"description":"Runs stopped (cancel) or started (retry, rerun).","items":{"$ref":"#/components/schemas/RunRef"},"type":"array"},"skipped":{"description":"Unknown ids, other accounts' runs, runs with nothing to cancel or retry.","type":"integer"}},"required":["runs","skipped","failed"],"type":"object"},"RunsHidden":{"additionalProperties":false,"properties":{"hidden":{"type":"integer"}},"required":["hidden"],"type":"object"},"RunsUnhidden":{"additionalProperties":false,"properties":{"unhidden":{"type":"integer"}},"required":["unhidden"],"type":"object"},"SavedTask":{"additionalProperties":false,"properties":{"definition":{"$ref":"#/components/schemas/TaskDefinition"},"enabled":{"type":"boolean"},"idempotency_key":{"description":"Required when creating a saved task. Preserve on retry; use a new key for a different task.","maxLength":128,"type":"string"},"name":{"type":"string"},"next_run_at":{"format":"date-time","nullable":true,"type":"string"},"schedule":{"description":"Five-field cron; missed occurrences are coalesced and overlapping runs are skipped.","example":"0 9 * * *","type":"string"},"task_id":{"type":"string"},"timezone":{"default":"UTC","example":"Europe/Moscow","type":"string"}},"required":["name","definition"],"type":"object"},"SavedTaskCreate":{"additionalProperties":false,"properties":{"definition":{"$ref":"#/components/schemas/TaskDefinition"},"enabled":{"type":"boolean"},"idempotency_key":{"description":"Required when creating a saved task. Preserve on retry; use a new key for a different task.","maxLength":128,"type":"string"},"name":{"type":"string"},"next_run_at":{"format":"date-time","nullable":true,"type":"string"},"schedule":{"description":"Five-field cron; missed occurrences are coalesced and overlapping runs are skipped.","example":"0 9 * * *","type":"string"},"task_id":{"type":"string"},"timezone":{"default":"UTC","example":"Europe/Moscow","type":"string"}},"required":["name","definition","idempotency_key"],"type":"object"},"Session":{"additionalProperties":false,"properties":{"auth_selector":{"type":"string"},"country":{"type":"string"},"expires_at":{"format":"date-time","nullable":true,"type":"string"},"ip_expires_at":{"format":"date-time","nullable":true,"type":"string"},"login_url":{"type":"string"},"name":{"type":"string"},"origin":{"type":"string"},"retention_days":{"type":"integer"},"session_id":{"type":"string"},"session_storage":{"type":"boolean"},"status":{"enum":["ready","needs_login"],"type":"string"},"sticky_ip":{"type":"boolean"},"updated_at":{"type":"string"}},"type":"object"},"Sessions":{"items":{"$ref":"#/components/schemas/ListedSession"},"type":"array"},"SigningKey":{"additionalProperties":false,"properties":{"algorithm":{"type":"string"},"secret":{"type":"string"},"signed_payload":{"type":"string"}},"type":"object"},"SiteMap":{"additionalProperties":false,"properties":{"errors":{"items":{"type":"string"},"type":"array"},"job_id":{"type":"string"},"status":{"type":"string"},"truncated":{"type":"boolean"},"urls":{"items":{"type":"string"},"type":"array"}},"required":["job_id","status","urls","truncated","errors"],"type":"object"},"StartRun":{"additionalProperties":false,"properties":{"definition":{"$ref":"#/components/schemas/TaskDefinition"},"idempotency_key":{"type":"string"}},"required":["idempotency_key","definition"],"type":"object"},"TaskDefinition":{"additionalProperties":false,"properties":{"crawl":{"type":"boolean"},"exclude_paths":{"items":{"type":"string"},"type":"array"},"include_paths":{"items":{"type":"string"},"type":"array"},"max_depth":{"description":"Crawl only; must be 0 or omitted without crawl.","maximum":10,"minimum":0,"type":"integer"},"max_pages":{"description":"Crawl page limit, at least the URL count. Without crawl every URL runs once; omit it or send at least the URL count.","maximum":1000,"minimum":1,"type":"integer"},"monitor":{"type":"boolean"},"monitor_fields":{"items":{"type":"string"},"type":"array"},"request":{"allOf":[{"$ref":"#/components/schemas/JobOptions"}],"description":"Options for every page; max_cost is required. Formats are always included."},"sitemap":{"description":"Crawl only.","type":"boolean"},"sticky":{"description":"Every page of a run shares one IP and runs one at a time. Quote the pages as items with sticky: true.","type":"boolean"},"urls":{"items":{"type":"string"},"maxItems":100,"minItems":1,"type":"array"}},"required":["urls","request"],"type":"object"},"TaskList":{"items":{"$ref":"#/components/schemas/SavedTask"},"type":"array"}},"securitySchemes":{"Bearer":{"description":"sg_... API key","scheme":"bearer","type":"http"}}},"info":{"description":"Automatic execution, payment on success. HTML, text, Markdown, JSON, links, images and structured fields are included. Screenshot and XHR are optional paid extras. Obtain API keys in the panel.","title":"Scraper customer API","version":"1.0.0"},"openapi":"3.0.3","paths":{"/integrations/n8n.json":{"get":{"operationId":"get_integrations_n8n.json","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/N8NWorkflow"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"security":[],"summary":"Download the public n8n workflow template"}},"/job-batches":{"post":{"operationId":"post_job_batches","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Batch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDetail"}}},"description":"Idempotent replay"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDetail"}}},"description":"Success"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchErrors"}}},"description":"Items refused; each error names its 1-based item_no"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Submit up to 100 URLs; resend the same items and keys after a lost response"}},"/job-batches/{batchID}":{"get":{"operationId":"get_job_batches_batchID","parameters":[{"in":"path","name":"batchID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDetail"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Read batch status"}},"/jobs":{"get":{"operationId":"get_jobs","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Jobs"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"List your jobs"},"post":{"operationId":"post_jobs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Idempotent replay"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Create an Auto job; retry using the same idempotency_key"}},"/jobs/{jobID}":{"get":{"operationId":"get_jobs_jobID","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Read job status and billing"}},"/jobs/{jobID}/artifact":{"get":{"operationId":"get_jobs_jobID_artifact","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"type":"string"}},{"in":"query","name":"view","schema":{"enum":["screenshot"],"type":"string"}}],"responses":{"200":{"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Download original artifact; view=screenshot downloads the optional screenshot"}},"/jobs/{jobID}/cancel":{"post":{"operationId":"post_jobs_jobID_cancel","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Cancel a job"}},"/jobs/{jobID}/result":{"get":{"operationId":"get_jobs_jobID_result","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}},"description":"Success"},"202":{"description":"Pending; retry after the Retry-After header in seconds","headers":{"Retry-After":{"schema":{"type":"integer"}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"All representations; 202 + Retry-After while pending; 422 on failure"}},"/maps":{"post":{"operationId":"post_maps","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Idempotent replay"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Discover same-origin sitemap and page URLs through a normal Auto GET job; quote with discover_sitemap=true"}},"/maps/{jobID}":{"get":{"operationId":"get_maps_jobID","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","schema":{"default":1000,"maximum":50000,"minimum":1,"type":"integer"}},{"explode":true,"in":"query","name":"include_path","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"explode":true,"in":"query","name":"exclude_path","schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteMap"}}},"description":"Success"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteMap"}}},"description":"Pending; retry in 2 seconds"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Read discovered URLs; repeat include_path/exclude_path query filters and set limit=1..50000"}},"/pricing/quote":{"post":{"operationId":"post_pricing_quote","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}},"description":"Success"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchErrors"}}},"description":"Items refused; each error names its 1-based item_no"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Quote current price and available countries"}},"/profile-logins/{jobID}":{"get":{"operationId":"get_profile_logins_jobID","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"seen","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileLoginStatus"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Read the owned interactive browser frame; seen=\u003cframe.hash\u003e leaves out an unchanged picture"}},"/profile-logins/{jobID}/input":{"post":{"operationId":"post_profile_logins_jobID_input","parameters":[{"in":"path","name":"jobID","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileLoginCommand"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileLoginInputStatus"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Send ordered input or save/cancel the login"}},"/runs":{"get":{"operationId":"get_runs","parameters":[{"in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":100,"minimum":1,"type":"integer"}},{"description":"failed_today: failed or partial, created today (UTC); crawls: type site; scheduled: started by a schedule.","in":"query","name":"view","schema":{"default":"all","enum":["all","failed_today","crawls","scheduled"],"type":"string"}},{"in":"query","name":"status","schema":{"description":"Comma-separated: running, succeeded, partial, failed, canceled","type":"string"}},{"in":"query","name":"type","schema":{"description":"Comma-separated: page, pages, site, document","type":"string"}},{"description":"created_at since UTC midnight, or within the last 7 or 30 days.","in":"query","name":"period","schema":{"enum":["today","7d","30d"],"type":"string"}},{"description":"Run or job ID, URL, domain, label or idempotency key.","in":"query","name":"search","schema":{"maxLength":128,"minLength":3,"type":"string"}},{"description":"false skips the view counts; pagination.total still counts the filtered runs.","in":"query","name":"include_counts","schema":{"default":true,"type":"boolean"}},{"description":"true adds totals over every run the filters match.","in":"query","name":"include_totals","schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunList"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Your task runs, batches and single jobs in one newest-first list; counts per view ignore the filters"}},"/runs/cancel":{"post":{"operationId":"post_runs_cancel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsBulk"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsBulkResult"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Stop up to 500 runs, each by its own cancel; queued jobs are released at once"}},"/runs/hide":{"post":{"operationId":"post_runs_hide","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunRefs"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsHidden"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Hide up to 500 runs from /runs; billing, results and each run's own endpoints stay"}},"/runs/rerun":{"post":{"operationId":"post_runs_rerun","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsBulk"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsBulkResult"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Start up to 500 runs again as new runs of their kind with the same requests"}},"/runs/retry":{"post":{"operationId":"post_runs_retry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsBulk"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsBulkResult"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Start the failed pages of up to 500 runs as new URL-list runs, within each run's retry_cost_per_page"}},"/runs/unhide":{"post":{"operationId":"post_runs_unhide","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunRefs"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsUnhidden"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Show hidden runs in /runs again"}},"/runs/{kind}/{runID}":{"get":{"operationId":"get_runs_kind_runID","parameters":[{"in":"path","name":"kind","required":true,"schema":{"enum":["task_run","batch","job"],"type":"string"}},{"in":"path","name":"runID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSummary"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"One run as /runs words it, hidden or not; any job of yours reads as a job"}},"/saved-tasks":{"get":{"operationId":"get_saved_tasks","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskList"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"List saved tasks"},"post":{"operationId":"post_saved_tasks","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedTaskCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedTask"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Save a task and optional schedule"}},"/saved-tasks/{taskID}":{"delete":{"operationId":"delete_saved_tasks_taskID","parameters":[{"in":"path","name":"taskID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Delete a saved task and its schedule; its runs stay, no longer linked to it"},"put":{"operationId":"put_saved_tasks_taskID","parameters":[{"in":"path","name":"taskID","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedTask"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedTask"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Update or pause a saved task (enabled=false)"}},"/saved-tasks/{taskID}/runs":{"post":{"operationId":"post_saved_tasks_taskID_runs","parameters":[{"in":"path","name":"taskID","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunKey"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCreated"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Run a saved task now"}},"/sessions":{"get":{"operationId":"get_sessions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sessions"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"List your active sessions; cookies and local storage are never returned"},"post":{"operationId":"post_sessions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSession"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Create an origin-bound Firefox session, up to 50 per account"}},"/sessions/{sessionID}/login":{"post":{"operationId":"post_sessions_sessionID_login","parameters":[{"in":"path","name":"sessionID","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileLoginRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileLoginCreated"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Resume the open interactive login or open one, replacing a login nobody polls (10 minutes; 90 seconds without polling ends it)"}},"/sessions/{sessionID}/renew-ip":{"post":{"operationId":"post_sessions_sessionID_renew_ip","parameters":[{"in":"path","name":"sessionID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Explicitly renew the IP pin; saved login data is preserved"}},"/sessions/{sessionID}/revoke":{"post":{"operationId":"post_sessions_sessionID_revoke","parameters":[{"in":"path","name":"sessionID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Delete encrypted login data; queued jobs cannot reuse the profile"}},"/task-runs":{"get":{"operationId":"get_task_runs","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Runs"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"List latest 100 runs"},"post":{"operationId":"post_task_runs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartRun"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCreated"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Start a bounded crawl or URL list"}},"/task-runs/{runID}":{"get":{"operationId":"get_task_runs_runID","parameters":[{"in":"path","name":"runID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Run status and pages with job IDs"}},"/task-runs/{runID}/cancel":{"post":{"operationId":"post_task_runs_runID_cancel","parameters":[{"in":"path","name":"runID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Stop discovery and cancel outstanding jobs"}},"/task-runs/{runID}/changes":{"get":{"operationId":"get_task_runs_runID_changes","parameters":[{"in":"path","name":"runID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageChanges"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Page version comparisons; before_text/after_text preserve exact numeric display. Latest 20 versions per URL, offset=0..1000, limit=1..50"}},"/task-runs/{runID}/dataset":{"get":{"operationId":"get_task_runs_runID_dataset","parameters":[{"in":"path","name":"runID","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"format","schema":{"default":"json","enum":["json","csv","xlsx","jsonl"],"type":"string"}},{"in":"query","name":"offset","schema":{"default":0,"maximum":1000,"minimum":0,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"maximum":100,"minimum":1,"type":"integer"}},{"description":"JSON array of names from dataset.columns (supports punctuation in field names); a comma-separated list is also accepted. Exports include every page; offset/limit apply only to JSON.","in":"query","name":"columns","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"format":"binary","type":"string"}},"application/x-ndjson":{"schema":{"format":"binary","type":"string"}},"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Paginated live dataset; terminal runs support complete CSV, XLSX and JSONL exports"}},"/task-runs/{runID}/retry":{"post":{"operationId":"post_task_runs_runID_retry","parameters":[{"in":"path","name":"runID","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunKey"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryRunCreated"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Create a new run for failed pages only, retaining the approved price ceiling"}},"/webhooks":{"get":{"operationId":"get_webhooks","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deliveries"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Latest 100 deliveries with attempts"}},"/webhooks/signing-key":{"get":{"operationId":"get_webhooks_signing_key","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKey"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Retrieve your private HMAC key; do not expose it to clients"}},"/webhooks/{deliveryID}/retry":{"post":{"operationId":"post_webhooks_deliveryID_retry","parameters":[{"in":"path","name":"deliveryID","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}},"description":"Success"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error (400 invalid input; 401 authentication; 402 balance; 403 permission; 404 missing; 409 price or idempotency conflict; 410 expired result; 413 request over 1 MiB; 422 failed job; 429 rate limit)"}},"summary":"Retry a failed delivery"}}},"security":[{"Bearer":[]}],"servers":[{"url":"/api/v1"}]}