Reference

Events

Immutable log of every state change. Webhooks fan out from here; you can also poll directly.

List events

get /v1/events
curl -X GET "https://api.clement.so/v1/events" \
  -H "Authorization: Bearer $CLEMENT_API_KEY"

Query parameters

  • limit integer
  • starting_after string
  • ending_before string
  • type string
  • resource_id string

Response200

OK

Property Type Description
object required enum (1)
"list"
data required array<Event>
has_more required boolean
next_cursor required string | null
prev_cursor required string | null
Example response
{
  "object": "list",
  "data": [
    {
      "id": "evt_01HZ8X3J9K7P2QV6R5N4M3T2L9",
      "object": "event",
      "mode": "live",
      "type": "message.replied",
      "resource_id": "msg_01HZ8X3J9K7P2QV6R5N4M3T2L5",
      "data": {
        "message_id": "msg_01HZ8X3J9K7P2QV6R5N4M3T2L5",
        "send_id": "snd_01HZ8X3J9K7P2QV6R5N4M3T2L4",
        "inbox_id": "inb_01HZ8X3J9K7P2QV6R5N4M3T2L1",
        "from_email": "alice@example.com",
        "subject": "Re: Quick question about Acme's data stack"
      },
      "metadata": {
        "mode": "live",
        "crm_record_id": "abc-123"
      },
      "created_at": "2026-04-29T16:42:13Z"
    }
  ],
  "has_more": false,
  "next_cursor": "string",
  "prev_cursor": "string"
}

Errors

  • 400 Invalid request
  • 401 Authentication failed
  • 403 Insufficient scope
  • 404 Not found
  • 409 Conflict
  • 422 Validation failed
  • 429 Rate limited

See Errors for the full envelope and per-code reference.

Retrieve an event

get /v1/events/{id}
curl -X GET "https://api.clement.so/v1/events/obj_01HZ8X3J9K7P2QV6R5N4M3T2L1" \
  -H "Authorization: Bearer $CLEMENT_API_KEY"

Path parameters

  • id string required

Response200

OK

Property Type Description
id required string
object required enum (1)
"event"
mode required enum (2)
"live""test"
type required string
Example: "send.sent"
resource_id required string Public id of the affected resource.
data required object
metadata required object | null
created_at required string (date-time)
Example response
{
  "id": "evt_01HZ8X3J9K7P2QV6R5N4M3T2L9",
  "object": "event",
  "mode": "live",
  "type": "message.replied",
  "resource_id": "msg_01HZ8X3J9K7P2QV6R5N4M3T2L5",
  "data": {
    "message_id": "msg_01HZ8X3J9K7P2QV6R5N4M3T2L5",
    "send_id": "snd_01HZ8X3J9K7P2QV6R5N4M3T2L4",
    "inbox_id": "inb_01HZ8X3J9K7P2QV6R5N4M3T2L1",
    "from_email": "alice@example.com",
    "subject": "Re: Quick question about Acme's data stack"
  },
  "metadata": {
    "mode": "live",
    "crm_record_id": "abc-123"
  },
  "created_at": "2026-04-29T16:42:13Z"
}

Errors

  • 400 Invalid request
  • 401 Authentication failed
  • 403 Insufficient scope
  • 404 Not found
  • 409 Conflict
  • 422 Validation failed
  • 429 Rate limited

See Errors for the full envelope and per-code reference.