Documentation Index
Fetch the complete documentation index at: https://brezelscraper.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Before you start
Make sure you have:- A BrezelScraper account with credits
- An API key from Dashboard > Integrations
- An n8n workflow you can edit and activate
Workflow overview
Step 1: create an API key
In BrezelScraper, open Dashboard > Integrations and create a new API key. Copy the fullbscraper_... token and store it somewhere safe. You will only see it once.
Step 2: create a job with an HTTP Request node
Add anHTTP Request node with these settings:
- Method:
POST - URL:
https://api.brezelscraper.com/api/v1/jobs - Authentication: generic header auth, or add the header manually
- Header option 1:
Authorization: Bearer bscraper_your_key_here - Header option 2:
X-API-Key: bscraper_your_key_here - Body content type: JSON
| Field | Type | Notes |
|---|---|---|
name | string | A label for this job (required) |
keywords | string[] | 1 to 5 search terms (required) |
lang | string | Two-letter language code (required) |
depth | int | Scroll depth, 1—20 (default 5) |
max_results | int | Cap on results, 1—500 |
reviews_max | int | Reviews per place, 0—500 |
images_max | int | Total images across all places, 0—40000 |
max_time | int | Timeout in seconds, up to 3600 (default 1800) |
201 Created response returns the new job ID:
Step 3: keep the job ID in your workflow
Store theid from the response in a field such as jobId so later nodes can reference it easily.
Step 4: wait before polling
Add aWait node after job creation so your workflow does not hit the API in a tight loop. 30 to 60 seconds is a good starting interval for most jobs.
After the wait, call:
status field and branch accordingly:
pending,running, oraborting: wait again, then poll againcompleted: continue to resultsfailedorcancelled: stop the workflow or route to your error handling path
result_count before fetching results. If it is 0, there is nothing to download.
Step 5: fetch results
Once the status iscompleted, fetch structured results:
Cancelling a job
To stop a running job from n8n (for example on a timeout), send:aborting and then to cancelled.
Optional: trigger n8n from BrezelScraper webhooks
Instead of polling, you can have BrezelScraper notify n8n when a job finishes.Set up the webhook
- In n8n, add a
Webhooknode and copy its Production URL - In BrezelScraper, open Dashboard > Integrations
- Create a webhook and paste the n8n production URL
- Copy the signing secret and store it securely (you will only see it once)
Webhook payload
event_type values: job.completed, job.failed, job.cancelled.
The payload contains metadata only. Fetch results through the API after receiving the webhook.
Verify the signature
Each delivery includes anX-Webhook-Signature header with an HMAC-SHA256 signature of the request body. In your n8n Code node:
Delivery and retries
BrezelScraper retries failed deliveries up to 5 times with exponential backoff. Each delivery has a uniqueX-Webhook-ID header you can use for deduplication. The timestamp in the signature header is cryptographically signed, so reject deliveries where t is more than 5 minutes old.
Error handling
The API returns standard HTTP status codes. Handle these in your n8n workflow with anIF node or error branch:
| Code | Meaning | What to do |
|---|---|---|
201 | Job created | Continue |
200 | Request succeeded (poll, results, download) | Continue |
402 | Insufficient credits | Stop and alert the user |
404 | Job not found or not owned by you | Check the job ID |
422 | Invalid request body | Check field values and types |
429 | Rate limit hit | Wait and retry after the number of seconds in the Retry-After header |
429 errors. Space your Wait nodes at least 10 seconds apart.
Good production habits
- Add an
Idempotency-Keyheader onPOST /api/v1/jobsif your workflow may retry on failure - Handle
failedandcancelledjobs explicitly instead of looping forever - Keep the job ID in one field throughout the workflow so every node can reference it

