Record a custom event for a contact. This endpoint does not create contacts, the contact must already exist.
Your Conversion API key. Found in Settings > Integrations in the dashboard. Format: sk_live_<key_id>_<secret>.
The name of the custom event to track (e.g. order_completed, log_in). This is a freeform string.
"page_viewed"
An external user identifier for the contact. At least one of userId or email is required. If userId matches a contact, that contact is used. If not, falls back to email. If the email matches a contact that has a different userId, a conflicting_identifier error is returned.
"user_12345"
The contact's email address. At least one of userId or email is required.
"jane@example.com"
An optional client-generated identifier for the event. Use stable identifiers (like order IDs) to enable idempotent updates. If an event with this ID already exists, its data is updated in place. If omitted, a new event is always created.
"evt_abc123"
An optional map of custom data to attach to the event.
{ "product_id": "1234567890", "quantity": 2 }An optional ISO 8601 timestamp for when the event occurred. Defaults to the current time if omitted.
"2026-03-31T14:30:00Z"
Event tracked successfully.