Skip to content

Event Tracking API

Send analytics events from your game. Accepts a single event or an array of up to 100 events.

Auth: x-game-api-key header

Terminal window
curl -X POST https://api.questdata.io/v1/track \
-H "Content-Type: application/json" \
-H "x-game-api-key: YOUR_API_KEY" \
-d '{
"event_name": "level_complete",
"session_id": "sess-abc123",
"player_id": "player-456",
"properties": {
"level": 5,
"score": 1200,
"duration_seconds": 120
}
}'
Terminal window
curl -X POST https://api.questdata.io/v1/track \
-H "Content-Type: application/json" \
-H "x-game-api-key: YOUR_API_KEY" \
-d '[
{"event_name": "game_start", "session_id": "sess-abc"},
{"event_name": "level_start", "session_id": "sess-abc", "properties": {"level": 1}}
]'
FieldTypeRequiredDescription
event_namestringYesEvent identifier (e.g. "level_complete")
session_idstringYesCurrent game session ID
player_idstringNoPersistent player identifier
propertiesobjectNoArbitrary event data
client_timestampstringNoISO 8601 timestamp from client
{
"received": 2,
"quota": {
"remaining": 99998,
"limit": 100000
}
}

If event schema validation is enabled and some events have violations, a warnings array is included.

StatusBodyCause
400{ "error": "...", "violations": [...] }Invalid event schema
413{ "error": "...", "limit": 100, "received": 150 }Batch too large
429{ "error": "...", "quota": { "current": ..., "limit": ..., "remaining": 0 } }Quota exceeded