Sideline Exchange/
Dashboard →

Core concepts

Delta sync

Store one cursor and never re-download a season. GET /v1/changes is the cheapest way to stay current.

Every applied change writes an event. GET /v1/changes?cursor=… returns them oldest first: the entity id, its type, the oyss.* event that produced the change, the new version, and which fields changed. Store the returned next_cursor; pass it next time.

  • No cursor starts from the beginning of the stream.
  • types=fixture,team narrows what is returned — the cursor still advances past everything, so changing your filter never loses your place.
  • has_more tells you to keep paging before you sleep.

Webhooks and delta sync are complements: webhooks are the nudge, /v1/changes is the truth you reconcile against. A consumer that stores its cursor survives its own downtime without missing a change.

The exact shape of this