URL Scraping Webhooks
Set callbackUrl in the submit request body to receive the result via webhook instead of polling. When parsing completes, the server sends a POST request to that URL with the result payload.
Submit with Callback
curl https://app.scrapering.com/api/parsing/v1/url \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"url": "https://scrapering.com",
"callbackUrl": "https://my-server.com/webhook/scraping"
}'Webhook Payload
Make sure your webhook endpoint responds with a
2xxstatus code to acknowledge receipt.
Your endpoint will receive a POST request with the same body as the polling result, plus a scope field:
{
"status": "ready",
"scope": "url",
"requestId": "ac9c7911-b32c-4890-a850-227003ee2d35",
"data": {
"url": "https://scrapering.com",
"content": "<html>...</html>",
"cookies": [],
"success": true,
"screenshot": null
},
"respondedAt": "2026-05-08T10:00:03.240Z"
}
| Field | Type | Description |
|---|---|---|
| status | string | Always "ready" |
| scope | string | Scraper of the task: "url" |
| requestId | string | Task ID returned from the submit endpoint |
| data | object | Task result — the same as data in the polling result |
| respondedAt | string | ISO 8601 timestamp of completion |
A webhook is sent for successful and failed tasks alike — check data to see whether the task succeeded, see API Status Codes. If your endpoint does not answer with 2xx, the request is retried up to two more times, after 1 and 2 seconds. Cancelled tasks and tasks that time out do not trigger a webhook — use the result endpoint for them.
screenshot contains a base64-encoded image when takeScreenshot was set to true in the request, otherwise null.
Important! Screenshot is stored for 1 hour after the scrape.
Scraped content is stored for 7 days after the scrape.
Save the results on your side so you don't lose them.
Next steps
- Creating a task — back to the submit endpoint reference
- Receiving result — polling alternative to webhooks