POST /webhook/run-routine
Runs a saved routine. Because its config, selectors and URL list already exist, the request body is tiny.
Authentication: x-api-key. Cost: 3 credits.
Standard run
curl -X POST https://api.jetscrape.com/webhook/run-routine \
-H "Content-Type: application/json" \
-H "x-api-key: js_YOUR_API_KEY" \
-d '{
"routine_id": 34,
"max_items": 50
}'{
"dispatch_id": "disp_abc123",
"message": "Routine started",
"success": true
}Read the results with POST /webhook/check-job and the returned dispatch_id.
One-time URL override
To scrape a list of URLs once without changing the routine's saved setup, add the urls field. Selectors come from the routine's config, so you do not send any. The routine's standing URL list is left untouched.
curl -X POST https://api.jetscrape.com/webhook/run-routine \
-H "Content-Type: application/json" \
-H "x-api-key: js_YOUR_API_KEY" \
-d '{
"routine_id": 34,
"urls": ["https://example.com/p/1", "https://example.com/p/2"]
}'routine_id(number) — the routine to run.urls(string array, optional) — a non-empty array of URLs starting withhttporhttps. Supplying it turns the request into a one-time override (one_time: true).one_time(boolean, optional) — only meaningful withurls, and defaults totrue. Sendingone_time: falsetogether withurlsis not supported and returns400.max_items(number, optional) — also applies to one-time runs.
The target_worker parameter is not supported by this API. One-time rows are persistent — there is no automatic cleanup — and one-time overrides cannot be used with chain routines.
Routine or plain unblocker?
- Same selectors, constantly changing URLs — a routine with one-time
urls. - A saved URL list scraped on a schedule — a routine, standard run.
- A one-off job not worth saving —
POST /webhook/unblockerdirectly.