Kickbox · AsyncAPI Specification
Kickbox Batch Webhooks
Version
View Spec
View on GitHub
Email VerificationEmail ValidationDeliverabilityData QualityEmailAsyncAPIEvents
AsyncAPI Specification
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.
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.