Skip to main content
All API requests require an API Key passed via the X-API-Key header. Obtain yours at Dashboard → Settings → API Keys.

Event Types

Sports events follow a full ticket lifecycle. All events are sent to POST /api/v1/sport. The Kafka topic is fixed: atlas.events.raw.sportsbook.
A ticket can have multiple selections (parlay/multiple bet). Sending a win, lose, or cashout event with only the changed selections allows the ticket to remain open until all selections resolve. The ticket_status reflects the overall ticket state, while each selection_status reflects individual outcomes.
All events for the same ticket share the same bet_id.

Track Ticket Open

Track Ticket Win

Track Ticket Lose

Track Ticket Cashout

Request Fields

Envelope Fields (all events)

string
required
Organization identifier.
string
required
Brand identifier.
string
required
Event type. Allowed values: open, win, lose, cashout, refund, cancel, pending.
string
Player IP address at event time.
number
Player latitude at event time.
number
Player longitude at event time.
boolean
Marks the event as operator test traffic. When true, the event is accepted (202) but rerouted to an audit-only store — it never appears in analytics, dashboards or risk scoring. Defaults to false when omitted.

Ticket Fields

string
required
Your internal user identifier. Must be consistent for the player.
string
required
ISO 4217 currency code (for example: BRL).
string
required
Ticket identifier used to correlate open, win, lose and cashout events.
string
required
ISO 8601 timestamp for the event in the ticket lifecycle.
string
required
Current ticket status. Allowed values: open, win, lose, cashout, cancel, reject, refund.
string
Allowed values: SINGLE, MULTIPLE, SYSTEM.
number
Bet amount (real + bonus according to your accounting model).
number
Bonus portion of the stake.
number
Combined odds for the ticket.
string
Allowed values: WEB, MOBILE, APP.
string
Allowed values: LIVE, PREMATCH.
boolean
Indicates whether this is a virtual sports ticket.
number
Amount won. 0 or omit for open. 0 for a losing ticket.
number
Balance before ticket update.
number
Balance after ticket update.

Selection Fields

array
required
Always required (min 1). For open, send the full snapshot of all selections. For win, lose, and cashout, send only the selections that changed status.
string
required
Stable selection identifier inside the ticket.
string
required
Current status of the selection. Allowed values: open, win, lose, cashout, cancel, refund, partial_win, partial_lose.
string
Chosen option inside the market (for market 1x2, the choice can be Vasco).
string
Sport category (for example Soccer, Basketball).
string
League or competition name.
array
Competitor names as provided by your trading feed.
string
Home team name.
string
Away team name.
string
Market name (for example 1x2, Handicap, Total Goals).
number
Odds for this selection.
boolean
Indicates whether selection was in-play.
boolean
Indicates whether selection belongs to a virtual event.
string
Match identifier in your sportsbook feed.
string
Optional event name for the selection in your feed model.

GGR Calculation (Sports)