Skip to main content
nozle.track() sends one event to eventsUrl/api/v1/events.

Signature

Subscription resolution

When subscriptionId is omitted, the SDK queries eventsUrl/api/v1/subscriptions for active subscriptions belonging to the customer:
  • exactly one active subscription: its external ID is cached and used;
  • no active subscriptions: track() rejects;
  • multiple active subscriptions: track() rejects and requires an explicit subscriptionId.
Pass subscriptionId explicitly for customers with multiple active subscriptions and for latency-sensitive event paths that should avoid the initial lookup.

Request payload

Idempotency

Generate a deterministic transaction ID and capture the event timestamp from the business operation whenever possible. Retry the same logical event with both values unchanged.

Operational guidance

  • Await track() when the request must know whether ingestion succeeded.
  • For high-volume workloads, publish through your own durable queue and call track() from a worker.
  • Do not create a new random transaction ID on each retry.
  • Do not regenerate the timestamp when retrying an accepted business event.
  • Match property names to the Feature aggregation configuration exactly.
  • Use usage.track() instead when the operation must atomically enforce and deduct product credits.