POST /v1/events

Send a single event

Use this for one-off events from server-side code or low-volume client paths. For repeated ingestion the batch endpoint is more efficient.

POST /v1/events HTTP/1.1
Host: api.getfluxly.com
Authorization: Bearer gflux_pub_abcdef1234
Content-Type: application/json

{
  "event": "subscription_started",
  "anonymous_id": "anon_a8f3c2",
  "external_id": "user_42",
  "properties": {
    "plan": "pro",
    "currency": "usd",
    "value": 99
  },
  "timestamp": "2026-05-16T07:00:00Z"
}

Request body

FieldTypeRequiredNotes
eventstringyesSnake_case event name, ≤ 64 chars
anonymous_idstringone ofBrowser-side identifier from the SDK
external_idstringone ofYour application's user ID
user_idstringone ofGetFluxly resolved profile ID (server-side flows)
propertiesobjectnoEvent-specific properties, ≤ 32 keys
timestampISO 8601noDefaults to server receipt time
contextobjectnoOptional client/device context envelope

At least one of anonymous_id, external_id, or user_id must be present. See Identity model.

Response, 202 Accepted

{
  "accepted": 1,
  "rejected": 0,
  "request_id": "req_b3a8c2d1e"
}

The response confirms intake, not delivery. Events are processed asynchronously by the analytics + identity workers.

Errors

HTTPerrorWhen
400validation_errorMissing required field, bad shape
401unauthenticatedMissing or invalid API key
403wrong_key_typePublishable key used on a server-only event shape
413payload_too_largeEvent body over 32 KB
429rate_limitedPer-key bucket exhausted, see Retry-After header

Full table at errors.