Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Report event

/eventsPOST
Persists and queues a contact event. event_id or Idempotency-Key deduplicates matching occurrences; different data conflicts. Maximum request size 128 KB, properties 100 keys and 64 KB. occurred_at may be at most five minutes in the future. Required scope: events:write.
Authorization
BearerAuth *Bearer <token>
API key generated under Account Settings → API Keys (rk_live_...). Send as header Authorization: Bearer <key>.
Request Bodyapplication/jsonrequired
event *string
contact *object
Show properties
id?integer
external_id?string
external_customer_id?string
email?string (email)
phone?string
phone_number?string
first_name?string
last_name?string
company?string
country?string
city?string
birthday?string
timezone?string
custom_fields?object
properties?object
event_id?string
occurred_at?string (date-time)
Response
202 · Successful response. See the integration guide for status and lifecycle semantics.
Type: object
401 · Invalid, expired, revoked or missing key.
Invalid, expired, revoked or missing key.
403 · Required scope not granted.
Required scope not granted.
422 · Validation or eligibility failure.
Validation or eligibility failure.
Request example
curl -X POST "https://convert.ruut.chat/api/v1/events" \ -H "Idempotency-Key: <Idempotency-Key>" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "event": "string", "contact": { "id": 0, "external_id": "string", "external_customer_id": "string", "email": "[email protected]", "phone": "string", "phone_number": "string", "first_name": "string", "last_name": "string", "company": "string", "country": "string", "city": "string", "birthday": "string", "timezone": "string", "custom_fields": {} }, "properties": {}, "event_id": "string", "occurred_at": "2024-01-15T09:30:00Z" }'