Skip to main content
POST
/
api
/
v1
/
cdp
/
events
Record an event
curl --request POST \
  --url https://app.useboom.ai/api/v1/cdp/events \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "payment_made",
  "externalId": "evt_123",
  "timestamp": "2026-06-08T14:00:00Z",
  "personExternalId": "user_42",
  "customObjectType": "loan",
  "customObjectExternalId": "LN-001",
  "properties": {
    "amount": 1200
  }
}
'
{
  "created": true,
  "eventId": "evt_db_1"
}

Authorizations

Authorization
string
header
required

Organization API key, sent as Authorization: Bearer boom_org_....

Body

application/json

At least one subject is required: personExternalId, or customObjectType + customObjectExternalId (the pair is all-or-nothing).

name
string
required

Event name — letters, digits, and underscores only (no spaces/special chars).

Required string length: 1 - 255
Pattern: ^[a-zA-Z0-9_]+$
externalId
string
required

Idempotency key; (organization, externalId) is unique.

Required string length: 1 - 255
timestamp
string<date-time>

Event time. Defaults to now() when omitted.

personExternalId
string
Required string length: 1 - 255
customObjectType
string
Required string length: 1 - 255
customObjectExternalId
string
Required string length: 1 - 255
properties
object

Free-form event properties, stored as JSON.

Response

Event recorded (created=false on idempotent re-send)

created
boolean
required

false on an idempotent re-send (duplicate externalId).

eventId
string

Present when created=true.