Get your API key
Reference

API reference

The complete surface area. Sending uses an API key; the management API uses a session token. All requests are JSON over HTTPS.

Base URL

text
https://api.mailkite.dev

Check service health any time with GET /api/health{ ok: true }.

Endpoints

Grouped by area — each group has its own page, and every endpoint on it expands to its request and response schema:

Machine-readable schemas

Every request and response body is described by a JSON Schema (draft-07) — the same schemas our SDKs and MCP server validate against, so they can't drift from what the API enforces. Fetch them all from GET /v1/schemas, or one at a time:

fetch the schemas
# every schema, with its URL
curl https://api.mailkite.dev/v1/schemas

# one schema — point a validator straight at it
curl https://api.mailkite.dev/v1/schemas/send-request.json
curl https://api.mailkite.dev/v1/schemas/email-received-event.json

Contract version 0.19.0. Schemas are served as application/schema+json with an absolute $id, and are additive — we add fields, we don't remove or repurpose them.

Conventions

  • IDs are prefixed by type: dom_, rte_, msg_, dlv_, usr_.
  • Timestamps are Unix epoch milliseconds. Where a timestamp is central — like the inbound event's receivedAt — an ISO 8601 twin sits alongside it.
  • Errors use standard HTTP status codes with a JSON body — see Errors.
  • Webhook signatures use the x-mailkite-signature header — see Verifying signatures.
  • Requests must be HTTPS (localhost over HTTP is allowed only for webhook testing).

New here? Start with the Quickstart.