High-volume web data collection

Async Scraper Service

Queue large public web data jobs and retrieve results when they are ready. Struqter handles concurrency, access, retries and rendering behind one API.

  • High-volume asynchronous jobs
  • Jobs dispatched in order, at your contracted rate
  • Status polling and signed download URLs
async-job.sh
# 1. Queue a job: 202 Accepted with a request_id
curl "$STRUQTER_API_URL/jobs" \
  -H "Authorization: Bearer $STRUQTER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: nightly-prices-2026-10-28" \
  -d '{"url": "https://www.amazon.de/s?k=headphones",
       "render_mode": "js", "geo": "DE"}'

# 2. Poll the status; a succeeded job includes a download_url
curl "$STRUQTER_API_URL/jobs/req_..." \
  -H "Authorization: Bearer $STRUQTER_API_KEY"
202 Accepted · application/json
{
  "request_id": "req_...",
  "status": "queued",
  "status_url": "/v1/jobs/req_..."
}

How async jobs work

Submit, poll, download

Separate submission from processing and delivery while Struqter handles the access work behind each request.

  1. 01

    Submit the job

    Send the same request body as a synchronous call to POST /v1/jobs. You get 202 as soon as the job is durably queued.

  2. 02

    Poll its status

    Check GET /v1/jobs/{request_id} for queued, processing, succeeded, failed or expired.

  3. 03

    Download the result

    A succeeded job includes a short-lived signed download_url, with an authenticated fallback endpoint.

Managed asynchronous collection

Run large scraping jobs without the infrastructure

Scrape at scale across public websites

Queue large jobs without keeping a client connection open for every request. Struqter manages concurrency, retries and access strategy in the background.

Collect from hard-to-scrape websites

Dynamic rendering, regional responses, blocks and request limits make some sites hard to collect from. Struqter applies the strategy each request needs, without adding those systems to your stack.

Focus on data, not concurrency

Send the URLs and requirements once, then let the job queue coordinate parallel processing and recovery while your application does useful work.

Submit once. Retrieve results when ready.

Each queued job returns a request_id your application uses to check progress and download the result, so submission and delivery stay separate.

When async helps

When to use an async scraper API

Async collection is useful when volume, target difficulty or processing time make one open connection per page impractical.

Improve success rates

Apply rendering, location and retries according to what each target requires.

Control failure spikes

Move retry and recovery logic out of your application when targets become slower or stricter.

Handle difficult targets

Use managed access for public sites that need more than a basic HTTP request.

Process large URL sets

Run sustained collection without building a separate queue, proxy pool or browser fleet.

Business value

Turn web data infrastructure into product momentum

Better response times and success rates

Collect more data with fewer failed jobs by matching the access strategy to the target instead of treating every request the same.

Engineering time back for your product

Keep your team focused on using web data rather than maintaining proxy rotation, browsers, CAPTCHA handling, retries and job orchestration.

Pay for what succeeds

Only validated successes are billed, and idempotency keys make sure a retried job is never charged twice.

1B+ Monthly request capacity
10k Free requests in your trial
$0 For failed requests Only validated successes are billed

Planning a high-volume collection workflow?

Tell us the targets, request volume and output your application needs. We set up your trial and help you size the jobs.