Kickbox · AsyncAPI Specification

Kickbox Batch Webhooks

Version

View Spec View on GitHub Email VerificationEmail ValidationDeliverabilityData QualityEmailAsyncAPIWebhooksEvents

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.