What are sync and async requests?
Synchronous (/scrape) sends a request and waits for the scraped data in the same HTTP response. The connection stays open until results are ready.
Asynchronous (/trigger) sends a request, immediately receives a snapshot_id, and collects the results later via polling, webhook, or external storage delivery.
When to use each approach
Use synchronous requests when:- You need real-time results for a small number of URLs (1-20)
- You are building an interactive application that waits for data
- You want the simplest integration with no background job management
- You are scraping more than 20 URLs in a batch
- You are running discovery queries (search by keyword, find posts by company)
- You want results delivered to a webhook or external storage (S3, Snowflake)
- You are building production pipelines that need reliability and retry handling
How they compare
| Feature | Sync /scrape | Async /trigger |
|---|---|---|
| Max URLs per request | 20 | Unlimited (up to 1 GB input) |
| Response | Scraped data directly | snapshot_id (data retrieved separately) |
| Timeout | 1 minute (auto-switches to async) | No timeout |
| Discovery support | No | Yes |
| Webhook delivery | No | Yes |
| External storage | No | Yes |
| Concurrency limit | 1,500 requests | 100 requests |
| Ideal for | Quick lookups, real-time apps | Batch jobs, production pipelines |
Synchronous request flow
snapshot_id instead.
Asynchronous request flow
- Poll the API - Check status with
GET /progress/{snapshot_id}, then download withGET /snapshot/{snapshot_id} - Webhook - Bright Data sends results to your URL when the job completes
- External storage - Results are delivered to S3, Snowflake, or other storage
Common scenarios
Single-page lookup Your app needs data from one URL in real-time (e.g., enriching a lead, checking a product page). Use sync. One URL, instant results, simple integration. Weekly batch report Every Monday, you scrape 500 pages matching search criteria across multiple sources. Use async with discovery. Deliver results to S3 for your data pipeline. Real-time app with background enrichment A user triggers a search, and you display initial results immediately. Use sync for the first lookup, then async with a webhook to collect additional data in the background. Nightly competitor monitoring Every night, you scrape hundreds of competitor pages. Use async with S3 delivery. No polling needed, data appears in your bucket.Common misconceptions
Async is always faster than sync
Async is always faster than sync
Not true. For 1-5 URLs, synchronous requests are faster because there is no job scheduling overhead. Async adds a queue step before scraping begins. Use sync for small, real-time lookups.
Sync requests fail if they take too long
Sync requests fail if they take too long
They don’t fail. If a sync request exceeds the 1-minute timeout, the Bright Data API automatically converts it to an async job and returns a
snapshot_id. Your data is still collected. You just need to retrieve it using the async flow.Handling auto-conversion in your code
If a synchronous request exceeds the 1-minute timeout, the API returns asnapshot_id instead of data. Handle both cases:
Python
Common questions
Can I mix sync and async in the same application?
Can I mix sync and async in the same application?
Yes. Many applications use sync for real-time user-facing lookups and async for batch background jobs. Use the method that fits each use case.
What happens if my webhook is down when async results are ready?
What happens if my webhook is down when async results are ready?
Bright Data retries webhook delivery if your endpoint returns a non-200 status or times out. If you need guaranteed delivery, use S3 or another external storage option.
Is there a cost difference between sync and async?
Is there a cost difference between sync and async?
No. Pricing is per successful record regardless of the request method. The choice between sync and async is about volume, latency, and delivery preferences, not cost.
Next steps
Scraper APIs overview
Browse all available Bright Data Scraper APIs.
Delivery options
Webhook, S3, Snowflake, Azure, and more.