Approve scraping job

POST
/jobs/scraping/{job_id}/approve

Approve a job awaiting approval; dispatches or reuses a scrape.

The approval prices the job again at the current metrics. A higher price is refused once with the new quote on the job; a lower one is accepted. A paid approval reserves the cap of the estimate from the prepaid credit.

Authorization

HTTPBearer
headerAuthorizationBearer <token>

An API key

Path Parameters

job_id*string

Response Body

Successful Response

application/json
  1. response

A scrape job with the live progress of its scrape. variant tells what it scrapes.

url_results of a settled URL job counts its URLs by result.

job_id*string
job_type*string
Value in"FULL_SCRAPE""URL_SCRAPE"
status*JobRequestStatus

The lifecycle of a job. Each job type runs in its own lane.

  • WEBSITE_SETUP: CREATED, ANALYZING, ESTIMATE_READY, TRAINING, COMPLETED. The analysis and the training move the job on by themselves.
  • FULL_SCRAPE, URL_SCRAPE and MATCHING: AWAITING_APPROVAL (the user approves the quote), APPROVED, RUNNING, SETTLING (the charge), EXPORTING (the export files), COMPLETED.
  • FAILED ends a job of any lane; CANCELLED ends one that the user cancelled, or an idle one that expired.
Value in"CREATED""ANALYZING""ESTIMATE_READY""TRAINING""AWAITING_APPROVAL""APPROVED""RUNNING""SETTLING""EXPORTING""COMPLETED""FAILED""CANCELLED"
project_id*string
website_id?string|null
estimate?|null
approval?|null
settlement?|null
error?string|null
error_code?|null
contact_reason?|null
contact_request_id?string|null
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
finished_at?|null
variant*ScrapeVariant

What a scrape job scrapes.

Value in"FULL""CATALOG_URLS""URLS_ONLY"
url_count?integer|null
urls?array<string>|null
scrape_progress?|null
url_results?|null
curl -X POST 'https://api.deepscout.ai/v1/jobs/scraping/string/approve'
{  "job_id": "string",  "job_type": "FULL_SCRAPE",  "status": "CREATED",  "project_id": "string",  "website_id": "string",  "estimate": {    "currency": "string",    "unit_price_per_1000": "12.68",    "quantity": 0,    "total": "12.68",    "cap": "12.68",    "min_charge": "12.68",    "difficulty": "EASY",    "input_products": 0  },  "approval": {    "approved_by": "string",    "approved_at": "2026-09-16T12:30:00.000Z"  },  "settlement": {    "quantity": 0,    "currency": "string",    "amount": "12.68",    "capped": true,    "settled_at": "2026-09-16T12:30:00.000Z"  },  "error": "string",  "error_code": "WEBSITE_TOO_LARGE",  "contact_reason": "WEBSITE_TOO_LARGE",  "contact_request_id": "string",  "created_at": "2026-09-16T12:30:00.000Z",  "updated_at": "2026-09-16T12:30:00.000Z",  "finished_at": "2026-09-16T12:30:00.000Z",  "variant": "FULL",  "url_count": 0,  "urls": [    "string"  ],  "scrape_progress": {    "pages": 0,    "pages_limit": 0,    "pages_estimate": 0,    "phase": "COLLECTING_PAGES",    "percent": 0  },  "url_results": {    "property1": 0,    "property2": 0  }}