Authentication
Every request must carry a bearer token:401. The token is a per-venue shared
secret, provisioned during integration.
Request body
Send either a single event object, or an array of up to 500 events. A batch is all-or-nothing: if any event in the array is invalid, the whole batch is rejected and nothing is stored.Event envelope
Unique, stable id for the event. Resends MUST carry the same
event_id — this is how
Pulse de-duplicates.The play session this event belongs to.
Assigned venue identifier.
Assigned court identifier.
Event Occurrence Time — when the event happened, not when it was sent. Pulse orders
by this. Must include a timezone offset (e.g. the trailing
Z).One of the event types:
BALL_BOUNCE, BALL_HIT, BALL_SPEED,
PLAYER_POSITION, PLAYER_IDENTITY.Detection confidence,
0.0–1.0.The event source, e.g.
your-system.Protocol version. Currently
"1.0".0 for a first (preliminary) emission; a higher revision confirms or corrects it. See
preliminary → confirmed.Type-specific fields — see Event types.
Response
A success returns202 Accepted:
Number of events newly stored.
Number of events already seen (same
session_id + event_id + revision) and safely
ignored.