Docs
API

Events API

This page records a planned event-query contract. The interactive example loads prepared challenge data and formats it in the browser; it does not call a hosted Praxis API.

There is no public hosted endpoint or API key flow in this repository. Thesample-boulevard example is derived from the same prepared static records used by the challenge.

Planned endpoint#

request
$ curl "$PRAXIS_API/v1/feeds/{feed_id}/events" \
    -H "Authorization: Bearer $PRAXIS_KEY"

This request is a contract sketch for future runtime work. This site does not issue base URLs or keys, and no availability or compatibility commitment is implied by the example.

Planned query parameters#

feed_idstringrequired
The source to read events from. Path parameter.
zonestring
Restrict to events from one zone, e.g. zone_a. Omit for all zones on the feed.
typestring
Event type filter: zone.entry, zone.exit, zone.dwell, or lock.acquired.
sincefloat
Only events with t greater than this value, in seconds from feed start. Useful for polling.
evidenceboolean
Request evidence references when supporting artifacts exist and are retained. The planned default is false to keep payloads small.

Try it#

This control fetches /challenge/zone.json, a prepared static file for a 15.6 second aerial clip, then builds an API-shaped preview in this browser. The file contains 15 scored entry rows. Loading it does not execute detection, tracking, or event evaluation.

STATIC/challenge/zone.json

Each preview element represents one prepared scored entry with a timestamp, saved track ID, and normalized position. Deduplication was applied while preparing the artifacts. The browser does not independently establish that every row maps to a distinct physical car.

Planned polling pattern#

A future client could poll with since set to the timestamp of the last event it processed:

poll.py
last_t = 0.0
while True:
    r = get(f"/v1/feeds/{feed}/events", params={"since": last_t})
    for ev in r.json()["events"]:
        handle(ev)          # your logic
        last_t = ev["t"]
    sleep(1.0)

Ordering, immutability, retry behavior, retention, and evidence durability are not guarantees of the current site. Those semantics must be specified and tested when the hosted service is implemented.