cherami.
API referenceWebhooks

List recent events

GET /v1/webhooks/events

Read as Markdown ↗

GET /v1/webhooks/events

Requires an API key: Authorization: Bearer YOUR_CREDENTIAL.

Lists the account's recent events as handed to delivery, newest first, whichever webhooks they reached: event ID, type, acceptance time and the inbox and message IDs the payload carries. Use it to confirm that mail activity produced events before looking at a particular webhook's attempts, and to find an event ID when your receiver has no record of it.

Only events inside the provider's retained history window appear; absence from this list is not proof that an event never existed. An account that has never had a webhook lists nothing. An unavailable provider returns 503 webhook_history_unavailable. Page with limit and next_cursor.

Parameters

ParameterLocationRequiredTypeMeaning
limitqueryNointegerDecimal integer without signs, whitespace or leading zeroes. minimum: 1 maximum: 100 default: 20
cursorqueryNostringOpaque cursor returned by the same listing. Stop when next_cursor is null.

curl example

Replace resource-ID placeholders with returned IDs. Supply CHERAMI_API_KEY through your private shell environment.

curl --silent --show-error --include --request GET \
  "https://cherami.to/v1/webhooks/events" \
  --header "Authorization: Bearer $CHERAMI_API_KEY"

Responses

HTTP 200

Successful operation; inspect resource state and outcome fields.

  • X-Request-ID: Support correlation ID, not an idempotency key.

Content type: application/json.

WebhookEventList

{
  "events": [
    {
      "id": "66666666-6666-4666-8666-666666666666",
      "type": "message.received",
      "accepted_at": "2026-10-01T00:00:00.500Z",
      "inbox_id": "11111111-1111-4111-8111-111111111111",
      "message_id": "22222222-2222-4222-8222-222222222222"
    }
  ],
  "next_cursor": null
}

HTTP 400

invalid_limit: Use an integer from 1 to 100.

invalid_cursor: Use the cursor with its original resource and filters, or restart from the first page. Draft listings instead report invalid_draft.

  • X-Request-ID: Support correlation ID, not an idempotency key.

Content type: application/json.

Error

HTTP 401

unauthorized: Provide a valid bearer credential. Use human-approved recovery if access is lost.

  • X-Request-ID: Support correlation ID, not an idempotency key.
  • WWW-Authenticate: "Bearer"

Content type: application/json.

Error

HTTP 503

webhook_history_unavailable: Delivery history could not be read from the webhook provider. Retry later; an unavailable history is not an empty one.

webhooks_unavailable: Webhook management is unavailable or the operation's outcome is unknown. Read or list webhooks before repeating a change; adding again can create a duplicate.

  • X-Request-ID: Support correlation ID, not an idempotency key.

Content type: application/json.

Error

Schema: WebhookEventList

FieldRequiredTypeMeaning and constraints
eventsYesarray of WebhookEvent
next_cursorYesstring or null

Schema: WebhookEvent

FieldRequiredTypeMeaning and constraints
idYesstringCherami event ID: the stable logical identity also carried as payload id. Deduplicate on it.
typeYesWebhookEventType
accepted_atYesstringWhen delivery accepted the event, not the mail transition time inside the payload. format: date-time
inbox_idYesstring or null
message_idYesstring or null

Schema: WebhookEventType

message.received: received mail became ready to read. message.sent: provider acceptance of a send was persisted; not delivery.

"message.received" or "message.sent"

Schema: Error

FieldRequiredTypeMeaning and constraints
errorYesobject

error fields

FieldRequiredTypeMeaning and constraints
codeYesstringProgrammatic error code. Handle unrecognized codes by status and operation-specific recovery.
messageYesstringHuman-readable context, not a stable string to match.

HTTP conventions, errors and pagination · Download OpenAPI 3.1

On this page