Extract
Batch Status and Results
Read a batch's progress and its pages, in the same order as the URLs you sent. Each response carries the job's status, page counts and credits used so far, plus up to 100 results paged by cursor, each with its URL, HTTP status, content and the credits it cost; failed pages show the error and cost 0. Free: polling never uses credits and works at a zero balance. Results are kept for 3 days after the batch finishes.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Parameters
path + queryidstringpathrequiredThe batch id from the 202 response (batch_...). Only your own account's jobs are visible; any other id returns 404.
Example: batch_01a12d2e-f9c1-737f-bfdc-97e7f94d643f
cursorstringquerynext_cursor from the previous response. Omit it for the first page of results.
limitintegerquerydefault:25Results per response, 1-100. A response is also cut at about 5 MB of page content, so it can hold fewer than limit.
statusenum<string>queryOnly results with this status.
succeeded— Pages that came back, with content. Each cost the tier price.failed— Pages that could not be fetched, with error and status_code. Free.skipped— Pages not fetched, with skip_reason (for example robots). Free.
include_contentbooleanquerydefault:trueSet false to page through results without their content: a light way to poll progress or list URLs.
Notes
Input order. Results come back in the order of your urls (after duplicates and invalid URLs were removed), 25 per response by default and up to 100, cut at about 5 MB of content. Pass next_cursor as cursor until it is null. Results can be read while the batch is still running.
Each result. succeeded pages carry content and cost the tier price; failed pages carry error and status_code and cost 0. A failed page's error names the next tier to try, so you can re-run just those URLs as a new batch with mode: "advanced" or "ultra".
Job status and retention. status goes queued, running, then completed, failed or cancelled, with stopped_reason when it ended early. Results are deleted at expires_at, 3 days after the batch finishes. To stop one, see Cancel Batch.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
job_id = "batch_01a12d2e-f9c1-737f-bfdc-97e7f94d643f"
page = client.extract.batch_status(job_id, limit=100)
print(page["data"]["status"], page["data"]["pages"])
for r in page["data"]["results"]:
if r["status"] == "succeeded":
print(r["url"], r["content"][:80])
else:
print("failed:", r["url"], r["error"])Response