Matching Jobs
Create matching job
POST
Create a matching job with its estimate, awaiting the user's approval.
The free sample of a project runs at once without approval.
HTTPBearerheader
AuthorizationBearer <token>An API key
application/json- body
project_id*stringreference_website_id*stringcompetitor_website_ids*array<string>sample?booleanDefault
falseSuccessful Response
application/json- response
A matching job with the counters of its run.
websites counts, per website of the run, the products it loaded and those new or changed.
overlap of a completed job counts, per pair of its websites, the products that the
project's matches connect, also through a third website.
job_id*stringjob_type*stringstatus*JobRequestStatusThe 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*stringwebsite_id?string|nullestimate?|nullapproval?|nullsettlement?|nullerror?string|nullerror_code?|nullcontact_reason?|nullcontact_request_id?string|nullcreated_at*stringFormat
date-timeupdated_at*stringFormat
date-timefinished_at?|nullreference_website_id?string|nullcompetitor_website_ids?array<string>|nullsample?booleanDefault
falsematching_progress?|nulloverlap?array<>|nullwebsites?array<>|nullcurl -X POST 'https://api.deepscout.ai/v1/jobs/matching' \ -H 'Content-Type: application/json' \ -d '{ "project_id": "string", "reference_website_id": "string", "competitor_website_ids": [ "string" ]}'{ "job_id": "string", "job_type": "MATCHING", "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", "reference_website_id": "string", "competitor_website_ids": [ "string" ], "sample": false, "matching_progress": { "products_checked": 0, "products_skipped_not_modified": 0, "new_matches": 0, "phase": "MATCHING_PRODUCTS", "percent": 0, "products_processed": 0, "products_total": 0, "estimated_minutes_left": 0 }, "overlap": [ { "website_id": "string", "match_website_id": "string", "products": 0 } ], "websites": [ { "website_id": "string", "products": 0, "modified": 0 } ]}