Submit a list of values to crawl. Returns immediately with a job object; results are assembled asynchronously.
The request schema is discriminated on source. Select the source tab below to see the valid key, topic, and country values for that source.
ISO 3166-1 alpha-2 country code (lowercase).
Type of values being submitted. Valid values depend on source.
Processing mode. Valid values depend on source.
Values to query. Maximum 1 000 per request. Duplicates are removed.
A comma-separated string is also accepted as a convenience form ("a,b,c" → ["a","b","c"]), but is not compatible with key: product — product values contain commas internally.
[ "4006381333962", "4719512101148" ]
Number of result pages to fetch per value. Applicable to Idealo and Amazon. Ignored by Google and eBay.
Maximum acceptable age of a result, in seconds. Default: 1200 (20 minutes). Maximum: 259200 (3 days) — the retention period for results; larger values are clamped.
When a value was already crawled inside this window, the stored result is returned without re-crawling it and the response is not charged. Set to 0 to always force a fresh crawl.
Available on eligible accounts; elsewhere every value is always crawled fresh.
Job hard timeout in minutes. The job is forcibly finished with whatever partial results exist after this time. Default: 1 440 (24 h).
Webhook URL to receive results when the job finishes. For incremental push delivery, use the Stream endpoint instead.
How many days a not-found cache entry is honoured before the product is re-queried. Applies to GTIN and PZN lookups (Idealo gtin/pzn, Amazon gtin, Google product). Set to 1 to force a fresh lookup on the next job after a single day. Ignored for term and id keys.
When true, each result carries a meta provenance block — the crawl trail (meta.crawls[]) with URL, HTTP status, timing and observation timestamp per fetch. See Audit & provenance.
Hold the request open for up to this many seconds (true = the maximum, 120) and, if the job finishes in time, return the results inline — the response gains a results array identical to what GET /job/{id}/download serves. If the job is still running when the wait elapses, the normal job object is returned with wait_timed_out: true; keep waiting with GET /job/{id}?wait=N or poll GET /job/{id} as usual. Accepts exactly one value (more returns "error": true); leave it off for batches.
When true, seller detail pages are crawled for marketplace offer sellers whose names are not yet in the database. Seller names already cached in the database are always applied regardless of this flag.
Enabling this adds one additional request per unresolved seller, billed at the standard rate.
- Mock serverhttps://docs.kwery.co/_mock/api-reference/job
- Productionhttps://api.kwery.co/job
curl -i -X POST \
https://docs.kwery.co/_mock/api-reference/job \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-d '{
"source": "idealo",
"country": "de",
"key": "gtin",
"values": [
"4006381333962",
"4719512101148"
]
}'Job created. Always check the error field — validation failures also return HTTP 200.
Present only when the request carried wait and the job settled in time. Same items as GET /job/{id}/download.
{ "error": false, "job": { "_id": "64f1c2d3e4b5a6c7d8e9f0a1", "source": "idealo", "country": "de", "key": "gtin", "topic": "search", "values": [ … ], "max_pages": 1, "max_age": 1200, "timeout": 1440, "status": "new", "createdAt": "2026-04-03T10:00:00.000Z" } }