Kickbox · AsyncAPI Specification

Kickbox Batch Webhooks

Version

View Spec View on GitHub Email VerificationEmail ValidationDeliverabilityData QualityEmailAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: https://docs.kickbox.com/docs/batch-verification-api
docs: https://docs.kickbox.com/docs/batch-verification-api#the-batch-verification-callback
spec_type: none
asyncapi_published: false
asyncapi_note: >-
  Kickbox publishes no AsyncAPI document. It was searched for on the docs host, the API host and the
  github.com/kickboxio organization (four repositories, all client SDKs) and none exists. This file
  therefore captures the webhook catalog only — the one real event surface Kickbox ships — and wires
  type: Webhooks rather than type: AsyncAPI. No AsyncAPI is fabricated.
summary: >-
  One webhook: a completion callback for asynchronous batch verification jobs. It is opt-in per job
  via a request header rather than configured in a dashboard, has no signing or verification
  mechanism documented, and carries no event-type field because there is only one event.
webhooks:
  - name: batch-verification-complete
    trigger: An asynchronous batch verification job finishes.
    subscription:
      style: per-request header
      header: X-Kickbox-Callback
      set_on: PUT /v2/verify-batch
      source_operation: openapi/kickbox-batch-api-openapi.yml#verifyBatch
      note: >-
        The callback URL is supplied when the job is created. There is no dashboard webhook
        configuration, no endpoint registry and no way to list or replay past deliveries.
    delivery:
      method: POST
      content_type: application/json
      expected_response: 2xx
      expected_response_note: The specified callback URL must return a 2xx HTTP response code.
      retries: undocumented
      signing: none
      signing_note: >-
        No signature header, shared secret or timestamp is documented, so a receiver cannot
        cryptographically verify that a callback originated from Kickbox. Treat the callback as an
        untrusted notification and re-read job state from GET /v2/verify-batch/{id} before acting.
    payload_fields:
      - {name: id, type: integer, description: The batch job id}
      - {name: name, type: string, description: Job name (settable at submission via X-Kickbox-Filename)}
      - {name: download_url, type: string, description: Signed URL to the results CSV}
      - {name: stats, type: object, description: Counts of deliverable, undeliverable, risky, unknown; aggregate sendex; total addresses}
      - {name: created_at, type: string, format: date-time}
      - {name: status, type: string, enum: [completed, failed]}
      - {name: error, type: 'string|null', description: Description of the error when status is failed}
      - {name: duration, type: integer, description: Job duration}
    payload_example: |
      {
          "id": 123,
          "name": "Batch API Process - 05-12-2018-01-58-08",
          "download_url": "https://url.to.your.csv",
          "stats": {
            "deliverable": 2,
            "undeliverable": 1,
            "risky": 0,
            "unknown": 0,
            "sendex": 0.35,
            "addresses": 3
          },
          "created_at": "2018-05-12T18:58:08.000Z",
          "status": "completed",
          "error": null,
          "duration": 42
      }
    consumer_caveats:
      - >-
        download_url is valid for one hour. After it expires a fresh signed URL must be obtained via
        GET /v2/verify-batch/{id}, so a consumer must either download promptly or re-poll.
      - >-
        The callback is optional. A consumer that does not set X-Kickbox-Callback must poll GET
        /v2/verify-batch/{id}, which returns starting, processing, completed or failed.
polling_alternative:
  operation: openapi/kickbox-batch-api-openapi.yml#getBatchResults
  statuses: [starting, processing, completed, failed]
  progress_fields: [deliverable, undeliverable, risky, unknown, total, unprocessed]
non_api_notifications:
  - name: spike-detection-alert
    channel: email
    status: beta
    docs: https://docs.kickbox.com/docs/spike-detection-alerts
    note: >-
      Customer-configured threshold alerts on verification volume per API key. Delivered by email to
      the account, not as a webhook, so it is not an integrable event surface. Recorded for
      completeness only.

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/kickbox-batch-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.