DataForSEO · AsyncAPI Specification
Dataforseo Webhooks
Version
View Spec
View on GitHub
SEOSERPKeywordsBacklinksDomain AnalyticsOn-Page SEOCompetitor ResearchSearch EnginesContent AnalysisE-CommerceApp StoreBusiness DataAI OptimizationSocial-MediaAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: >-
https://docs.dataforseo.com/v3/appendix/webhook_resend/,
https://docs.dataforseo.com/v3/appendix/sandbox/, task_post request schemas in
openapi/*.yml
spec_type: webhook-catalog
asyncapi_published: false
asyncapi_note: >-
DataForSEO publishes no AsyncAPI document. It does ship a real, first-class
webhook surface: every Standard/Priority task can nominate a callback, and
there is a dedicated resend endpoint. This artifact captures that surface so
the event contract is recorded even though no AsyncAPI exists. Nothing here is
fabricated — the mechanisms below are documented by DataForSEO and are visible
as request-body properties in the harvested specs.
model:
style: per-task callback URLs (not a subscription registry)
detail: >-
There is no webhook subscription/endpoint management API. A callback is
nominated per task, inside the task_post body, which means delivery targets
are chosen by the caller at request time rather than configured once.
applies_to: Standard and Priority queue tasks (Live mode returns inline and fires no callback)
sandbox_supported: true
mechanisms:
- id: pingback
field: pingback_url
direction: outbound (DataForSEO -> customer)
payload: none (notification only)
detail: >-
DataForSEO calls the URL when the task completes. The caller then fetches
the result with task_get. Supports $id and $tag placeholders in the URL,
which DataForSEO substitutes on call.
example_url: https://your-server.com/pingscript?id=$id&tag=$tag
placeholders: ['$id', '$tag']
- id: postback
field: postback_url
direction: outbound (DataForSEO -> customer)
payload: the full task result, POSTed to the URL
detail: >-
DataForSEO delivers the result body directly, removing the polling step.
Used together with postback_data to select the result format.
example_url: https://your-server.com/postbackscript
- id: postback_data
field: postback_data
direction: request parameter
detail: >-
Selects which result variant is delivered to postback_url. Values mirror
the task_get variants for the endpoint family — e.g. `regular`, `advanced`,
`html` for SERP endpoints.
polling_alternative:
detail: >-
When no postback_url is set, completed-but-uncollected tasks are discovered
with the tasks_ready endpoints, and re-parsed tasks with tasks_fixed.
operations:
- {operationId: TasksReady, path: GET /v3/serp/tasks_ready, spec: openapi/dataforseo-serp-api-openapi.yml}
- {operationId: GoogleOrganicTasksReady, path: GET /v3/serp/google/organic/tasks_ready, spec: openapi/dataforseo-serp-api-openapi.yml}
- {operationId: GoogleOrganicTasksFixed, path: GET /v3/serp/google/organic/tasks_fixed, spec: openapi/dataforseo-serp-api-openapi.yml}
- {operationId: OnPageTasksReady, path: GET /v3/on_page/tasks_ready, spec: openapi/dataforseo-onpage-api-openapi.yml}
- {operationId: MerchantTasksReady, path: GET /v3/merchant/tasks_ready, spec: openapi/dataforseo-merchant-api-openapi.yml}
resend:
operationId: WebhookResend
path: POST /v3/appendix/webhook_resend
spec: openapi/dataforseo-appendix-api-openapi.yml
docs: https://docs.dataforseo.com/v3/appendix/webhook_resend/
batch_limit: 100
input_field: {name: id, type: string, format: UUID, note: one object per identifier in the task array}
cost: free
billing_note: The account is not double-charged for resending a webhook.
detail: >-
Replays pingbacks and postbacks for up to 100 named task ids. In the resend
response the per-task `result` array is always null — the payload arrives via
the original delivery method.
coverage:
webhook_capable_request_schemas: 67
by_api:
- {spec: openapi/dataforseo-serp-api-openapi.yml, schemas: 27}
- {spec: openapi/dataforseo-businessdata-api-openapi.yml, schemas: 11}
- {spec: openapi/dataforseo-keywordsdata-api-openapi.yml, schemas: 10}
- {spec: openapi/dataforseo-appdata-api-openapi.yml, schemas: 8}
- {spec: openapi/dataforseo-merchant-api-openapi.yml, schemas: 6}
- {spec: openapi/dataforseo-aioptimization-api-openapi.yml, schemas: 5}
note: >-
Count of components.schemas carrying a postback_url property across the 12
harvested specs. OnPage, Backlinks, Domain Analytics, Content Analysis, Labs
and Appendix request schemas do not expose callback fields — those families
are predominantly live/synchronous.
security:
signing: none documented
authentication_of_callback: none documented
note: >-
No webhook signature, shared secret or HMAC header is documented. A receiver
cannot cryptographically verify that a postback came from DataForSEO; the
only correlation handles are the task `id` (UUID) and the caller-supplied
`tag`. Receivers should treat the callback as a trigger and re-fetch with
task_get over authenticated HTTPS rather than trusting the delivered body.
retry_policy:
documented: false
note: >-
No automatic retry schedule is published. The manual /v3/appendix/webhook_resend
endpoint is the documented recovery path.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/dataforseo-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.