ZeroBounce · AsyncAPI Specification

Zerobounce Webhooks

Version

View Spec View on GitHub Email ValidationEmail DeliverabilityEmail VerificationMarketingLead ScoringAnti-SpamData QualityEmail FinderDeliverability MonitoringDMARCAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://www.zerobounce.net/docs/email-validation-api-quickstart/v2-send-file/ and
  https://www.zerobounce.net/docs/email-validation-api-quickstart/greylist-api-processing
docs: https://www.zerobounce.net/docs/email-validation-api-quickstart/v2-file-management-api
asyncapi_spec_published: false
asyncapi_note: >-
  ZeroBounce publishes NO AsyncAPI document. Probed every host for /asyncapi.yaml,
  /asyncapi.json and an event catalog; nothing served. What exists is a real but small
  callback surface — two caller-registered completion callbacks — captured here as a
  webhook catalog rather than fabricated as an AsyncAPI spec.
summary: >-
  ZeroBounce has no event bus, no subscription management and no event catalog. It has
  two fire-and-forget completion callbacks, both registered per-request as a URL
  parameter on the call that starts the work, both delivered once when a long-running job
  finishes. There is no signature, no shared secret, no retry policy and no replay — and
  the provider states plainly that duplicate requests produce duplicate callbacks, each
  of which is charged.
model: per-request callback URL
subscription_management: none
signing: none
signature_header: null
replay: none
delivery_guarantee: at-most-once, no documented retry

webhooks:
  - id: bulk_validation_complete
    name: Bulk validation file complete
    registered_on: 'POST https://bulkapi.zerobounce.net/v2/sendfile'
    parameter: return_url
    required: false
    method: POST
    content_type: application/json
    description: >-
      POSTed to the caller's return_url when a bulk email-validation file finishes
      processing. Carries only the job handle — results must then be pulled with
      GET /v2/getfile?file_id=...
    payload_example_verbatim: |
      {
        "file_id": "aaaaaaa-zzzz-xxxx-yyyy-5003727fffff",
        "file_name": "Your file name.csv",
        "upload_date": "2023-04-28T15:25:41Z"
      }
    payload_fields:
      - name: file_id
        type: string
        format: uuid-like
        description: Job handle returned by sendfile; use it against filestatus/getfile.
      - name: file_name
        type: string
        description: Original uploaded file name.
      - name: upload_date
        type: string
        format: date-time
        description: ISO 8601 UTC timestamp of the original upload.
    follow_up:
      - 'GET https://bulkapi.zerobounce.net/v2/getfile?api_key=...&file_id=...'

  - id: bulk_ai_scoring_complete
    name: Bulk AI scoring file complete
    registered_on: 'POST https://bulkapi.zerobounce.net/v2/scoring/sendfile'
    parameter: return_url
    required: false
    method: POST
    content_type: application/json
    description: >-
      Same completion callback shape as bulk validation, for the AI scoring file pipeline.
      The MCP server exposes this as the `returnUrl` argument on
      bulk_ai_scoring_send_file.
    payload_fields:
      - name: file_id
        type: string
      - name: file_name
        type: string
      - name: upload_date
        type: string
        format: date-time
    payload_confidence: >-
      medium — the scoring pipeline mirrors the validation pipeline and the MCP tool
      exposes the identical returnUrl argument, but ZeroBounce publishes the verbatim
      payload example only on the validation sendfile page.
    follow_up:
      - 'GET https://bulkapi.zerobounce.net/v2/scoring/getfile?api_key=...&file_id=...'

  - id: greylist_processing_complete
    name: Greylist re-validation complete
    registered_on: 'GET /v2/validate (with greylist_processing=true)'
    parameter: callback_url
    required: false
    method: not documented
    description: >-
      When a greylisted address is re-validated asynchronously, ZeroBounce sends an HTTP
      request to callback_url with the result. ZeroBounce treats the callback as delivered
      when the receiver answers 200 or 201.
    success_criteria: Receiver must return HTTP 200 or 201.
    payload_fields: not documented
    payload_note: >-
      The greylist page does not publish the callback payload shape or an example — an
      integrator cannot write the receiver from the docs alone.
    billing_note_verbatim: >-
      "duplicate requests are allowed. If you make the same request twice, you can expect
      two callbacks. Each callback will be charged."

receiver_requirements:
  - Publicly reachable HTTPS URL.
  - Return 200 or 201 (greylist callback explicitly; the file callbacks do not publish a
    success criterion).
  - >-
    Deduplicate on file_id yourself. ZeroBounce documents duplicate delivery as expected
    behaviour and charges for it.
  - >-
    Do not trust the callback body as authenticated. There is no signature, so treat it
    strictly as a hint to go pull the result with your own API key.

gaps:
  - No AsyncAPI, no event catalog, no channel documentation.
  - No webhook signing or verification mechanism of any kind.
  - No retry, backoff or dead-letter policy published.
  - No webhook management endpoints — URLs are per-request only, so there is nothing to
    list, rotate or disable after the fact.
  - Greylist callback payload undocumented.

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.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/zerobounce-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.