Apollo.io · AsyncAPI Specification
Apollo Io Webhooks
Version
View Spec
View on GitHub
Sales IntelligenceProspectingEngagementB2B DataEnrichmentCRMSales EngagementConversation IntelligenceMCPSoftware-as-a-ServiceAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: https://docs.apollo.io/reference/poll-webhook-result
derived_from: openapi/_original/apollo-io-apollo-rest-api-openapi.json
spec_type: Webhooks
asyncapi_published: false
note: >-
Apollo publishes no AsyncAPI document and no general event-subscription surface — there is no
endpoint to register a persistent webhook for record or engagement events. What Apollo does ship
is a per-request asynchronous callback on the two people-enrichment operations: pass a
webhook_url on the request and Apollo POSTs the completed result to it, returning a request_id
that can also be polled. Retries are at Apollo's discretion, so receivers must be idempotent.
This is the whole documented event surface; nothing here is inferred.
surface:
style: per-request-callback
registration: inline (webhook_url parameter on the enrichment request)
delivery: HTTP POST from Apollo to the caller-supplied HTTPS URL
retries: >-
Apollo may retry a callback. Apollo's own guidance is that the receiving endpoint must be
idempotent so duplicate payloads are safe.
security: >-
The receiver must be publicly reachable over HTTPS. Apollo documents no signing secret, no
signature header and no mTLS option for callback verification.
polling_fallback:
operation: poll-webhook-result
path: GET /webhook_result/{request_id}
retention_days: 30
pending: 404 with error_code result_pending and a retry_after_seconds value — wait, then poll again
terminal:
- {error_code: request_id_unknown, status: 404, meaning: request_id was never issued or is mistyped}
- {error_code: request_id_expired, status: 410, meaning: result aged out of the 30-day window}
- {error_code: invalid_request_id, status: 400, meaning: request_id is not a valid signed 64-bit integer}
events:
- name: people-enrichment.completed
trigger: POST /people/match with webhook_url set
operation: people-enrichment
file: openapi/apollo-io-enrichment-api-openapi.yml
payload: The enriched person record, identical in shape to the synchronous 200 response.
- name: bulk-people-enrichment.completed
trigger: POST /people/bulk_match with webhook_url set
operation: bulk-people-enrichment
file: openapi/apollo-io-enrichment-api-openapi.yml
payload: The enriched person records for the batch (up to 10 per request).
event_count: 2
not_found:
- {path: 'https://docs.apollo.io/reference/webhooks', status: 404, note: 'A webhooks reference page no longer exists on the docs host.'}
- {path: 'https://docs.apollo.io/asyncapi.yaml', status: 404}
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/apollo-io-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.