Olostep Batch endpoint
Trusted by teams worldwide




One batch job instead of hand-rolling thousands of scrape calls.
Step 1
POST an array of items with custom_id and url — optionally a batch-level parser for structured JSON.
Step 2
Poll GET /v1/batches/{id} until completed — or pass a webhook URL on create to get an HTTP POST when the batch finishes (with retries).
Step 3
GET /v1/batches/{id}/items with cursor; then /v1/retrieve per retrieve_id for markdown or json.
POST /v1/batches
{
"items": [
{ "custom_id": "a1", "url": "https://…",
"metadata": { "sku": "SKU-1" } },
{ "custom_id": "a2", "url": "https://…" }
],
"parser": { "id": "@olostep/google-search" },
"metadata": { "job": "nightly-prices" },
"webhook": "https://api.you.com/olostep"
}The /v1/batches API complements scrapes for high-volume workflows.
Process large URL lists in one job instead of thousands of separate requests.
Jobs complete in roughly 5–8 minutes regardless of batch size (within limits).
Attach parsers to return normalized JSON across all items.
Walk items with cursor and limit while the batch runs or after it finishes.
Skip tight polling: pass webhook on create for a POST when the batch completes, with automatic retries on failed delivery.
Attach Stripe-style key-value metadata on the whole batch or on each item for tracing, filtering, and joins in your stack.
First-class options on POST /v1/batches so production pipelines don't rely on polling alone and can carry your own context through every job.
Pass webhook with a public HTTPS URL (not localhost). When the batch completes, Olostep sends an HTTP POST with a structured event payload. Failed deliveries are retried with backoff (multiple attempts over about 30 minutes). Respond with 2xx within 30 seconds and use the event id to handle duplicates safely.
Add metadata at batch level (same request as items) and/or on each item for row-level tags — ideal for project IDs, pipeline stage, or correlating results with your warehouse. Keys and values follow documented limits (Stripe-style). Metadata is returned on subsequent GET responses; you can also merge-update batch metadata via PATCH.
Monitoring, enrichment, and training-data collection at scale.
Run many search or listing URLs through a parser in one batch.
Feed product or directory URLs at scale.
Hand off nightly jobs from your warehouse or orchestrator.
Scale extraction
Parser for JSON, cursor on items, plus optional webhook and batch/item metadata — see Create batch in the API reference.
{
"items": [
{
"custom_id": "item-1",
"url": "https://www.google.com/search?q=stripe&gl=us&hl=en",
"metadata": { "campaign": "brand-track" }
},
{
"custom_id": "item-2",
"url": "https://www.google.com/search?q=paddle&gl=us&hl=en"
}
],
"parser": { "id": "@olostep/google-search" },
"metadata": { "batch_name": "weekly-serp" },
"webhook": "https://your-server.com/webhooks/olostep"
}{
"id": "batch_z7n7hwh45x",
"object": "batch",
"status": "in_progress",
"total_urls": 2,
"completed_urls": 0,
"parser": "@olostep/google-search",
"metadata": { "batch_name": "weekly-serp" },
"webhook": "https://your-server.com/webhooks/olostep"
}Everything you need to know about the Batch endpoint.