Yandex SERP 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/serp-yandex \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"q": "buy pizza",
"count": 10,
"callbackUrl": "https://my-server.com/webhook/parsing"
}'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": "serp:yandex",
"requestId": "c1d2e3f4-a1b2-4c3d-8e9f-000111222333",
"data": {
"organic": [
{
"link": "https://pizza.ru/",
"rank": 1,
"title": "Pizza - Order Online",
"description": "Fast pizza delivery across the city."
}
]
},
"respondedAt": "2026-05-08T10:00:06.000Z"
}
| Field | Type | Description |
|---|---|---|
| status | string | Always "ready" |
| scope | string | Scraper of the task: "serp:yandex" |
| 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.
Important! Screenshot is stored for 1 hour 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