Record events
Stores a batch of analytics events. Sent by the handler you mounted in your own app, which validates them against your tracking plan first. Query strings are reduced to their campaign parameters on the way in.
POST
/eventsRequest body
requiredapplication/jsoncontextobjectdefault: {}
metadataobjectdefault: {}
Show propertiesHide properties
visitorstringcountrystringregionstringcitystringbrowserstringosstringdevicestringAllowed:
desktopmobiletableteventsobject[]requiredmin items 1 · max items 100
Show propertiesHide properties
Array of
objectnamestringrequiredmin length 1 · max length 120
propsobjectdefault: {}
timestampintegerrequiredmin 0 · max 9007199254740991
urlstringreferrerstringResponses
200OK
acceptedintegerrequiredmin -9007199254740991 · max 9007199254740991
401401
One of:
object
definedanyrequiredcodeanyrequiredstatusanyrequiredmessagestringrequireddefault: "Authentication required. Pass an organization API key in the `x-api-key` header."
dataanyobject
definedanyrequiredcodestringrequiredstatusnumberrequiredmessagestringrequireddataany429429
One of:
object
definedanyrequiredcodeanyrequiredstatusanyrequiredmessagestringrequireddefault: "Too many requests. Try again shortly."
dataanyobject
definedanyrequiredcodestringrequiredstatusnumberrequiredmessagestringrequireddataanyRequest
curl -X POST "https://stetcms.com/api/v1/events" \
-H "Content-Type: application/json" \
-d '{
"context": {},
"metadata": {},
"events": [
{
"name": "string",
"props": {},
"timestamp": 0,
"url": "string",
"referrer": "string"
}
]
}'const response = await fetch("https://stetcms.com/api/v1/events", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"context": {},
"metadata": {},
"events": [
{
"name": "string",
"props": {},
"timestamp": 0,
"url": "string",
"referrer": "string"
}
]
})
});Response
{
"accepted": 0
}{
"defined": true,
"code": "UNAUTHORIZED",
"status": 401,
"message": "Authentication required. Pass an organization API key in the `x-api-key` header.",
"data": "string"
}{
"defined": true,
"code": "RATE_LIMITED",
"status": 429,
"message": "Too many requests. Try again shortly.",
"data": "string"
}