Events
Report outcomes, singly or in batches of up to 200.
Authorizations
Headers
The Curious SDK's self-identification, browser-js/<semver> for the
browser SDK. Optional for customer events. Required — together with
a publishable key — for the system events $pageview, $click and
$form_submit: without it, or under a secret key, those names are
rejected as reserved.
64^(?:browser-js|sdk-js)/[0-9]{1,4}\.[0-9]{1,4}\.[0-9]{1,4}(?:-[0-9A-Za-z.-]{1,32})?$Body
- Option 1
- Option 2
Unknown fields are ignored, except created_at (system-owned) and the retired as_of, which are a 400. A body with events is the batch form, whatever else it carries.
Past tense (purchased, clicked). Names starting with $ are
reserved for Curious SDK system events: a customer integration sending
one gets a 400 (rename at the source, e.g. $pageview → pageview).
The only $ names the schema admits are the browser SDK's own —
$pageview, $click and $form_submit — and the endpoint accepts
them only under a publishable key with the SDK's client header
(SystemEventConstraints bounds their properties).
1^(?:\s*[^\s$]|\$(?:pageview|click|form_submit)$)When the event happened: an ISO-8601 datetime with an explicit
timezone (2026-04-30T22:33:42Z, 2026-04-30 22:33:42+00:00,
+00 and +0000 offsets included) or a date, read as UTC midnight. A
naive datetime is rejected. Must be a real calendar date and at most
5 minutes in the future. Defaults to receipt.
^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|z|[+-]\d{2}(?::?\d{2})?))?$