Skip to main content

Before you start

You need two things from PicklX, both provisioned per venue during integration:
  • The Pulse host address on the venue network — http://<pulse-host>:4000.
  • A shared bearer token for that venue.
Treat the token like a password — it authenticates every request.

Send an event

1

Build the request

One POST to /v1/events, with a bearer token and a single event in the body.
2

Send it

curl -X POST http://<pulse-host>:4000/v1/events \
  -H "Authorization: Bearer <shared-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "event_id": "b7e3a91c4f25d8a0c1e6f3b2",
    "session_id": "session-court1-20260609-001",
    "venue_id": "venue-la-01",
    "court_id": "court-1",
    "eot": "2026-06-09T20:00:06.120Z",
    "type": "BALL_BOUNCE",
    "confidence": 0.95,
    "source": "your-system",
    "schema_version": "1.0",
    "revision": 0,
    "payload": { "x_ft": 4.2, "y_ft": 19.3, "is_in": true }
  }'
3

Read the response

A success returns 202 Accepted:
{ "accepted": 1, "duplicates": 0 }
accepted is how many events were newly stored; duplicates is how many were already seen and safely ignored (resending is safe — see Delivery semantics).

Next

Full envelope

Every field, the headers, and batching up to 500 events.

Handle errors

Which responses to retry, and which to fix.