Odds360 Football
Odds360 football is a bookmaker-scoped odds feed. In the current SportMicro stack the normal flow is:
- Use the regular football SportMicro data endpoints to find the match.
- Use the same
match_idwith your Odds360 bookmaker feed. - Subscribe to live
updatesandoverridesif you need real-time refreshes.
Service URLs
SportMicro football data: https://football.sportmicro.com/
Odds360 football feed: https://odds360.sportmicro.com/
Two access patterns
- Public Odds360 API:
https://odds360.sportmicro.com/football - Dashboard and bookmaker flow used by
sportmicro-frontend:/bookmaker/{bookmakerId}/football/...
Supported football odd groups
The sportmicro-frontend match page only renders groups that contain data. For football, the supported groups are:
next-playhalf-timeplayerteamfull-time
Odd group mapping
next-play->odds.nextPlayhalf-time->odds.halfTimeplayer->odds.playerteam->odds.teamfull-time->odds.fullTime
Recommended integration flow
1. Discover the match in SportMicro
Use the football data service to obtain the same match_id used by Odds360.
Common discovery endpoints:
https://football.sportmicro.com/matches-livehttps://football.sportmicro.com/matches-by-datehttps://football.sportmicro.com/matcheshttps://football.sportmicro.com/leagueshttps://football.sportmicro.com/classes
Keep these values from the SportMicro response:
idormatch_idleague_idleague_namehome_team_nameaway_team_namestart_timestatus_type
2. Confirm that the bookmaker can access football
In the backend, Odds360 access is tied to a bookmaker UUID and a subscription that explicitly includes the sport.
The dashboard first loads:
GET /bookmaker/{bookmakerId}
That response contains the allowed sports list for the bookmaker.
3. Load the football match list that already has Odds360 prices
This is the endpoint used by /dashboard/odds360/{bookmakerId}/predictions in sportmicro-frontend:
GET /bookmaker/{bookmakerId}/football/matches?page=0
GET /bookmaker/{bookmakerId}/football/matches?page=0&status=live
GET /bookmaker/{bookmakerId}/football/matches?page=0&status=upcoming&league=Premier
Available query parameters:
pageleaguehomeTeamawayTeamstatuswithliveorupcoming
Backend behavior:
- page size is
100 - postponed and finished matches are excluded
- only matches with
totalOdds > 0are returned
4. Load the full football odds payload for one match
This is the endpoint used by /dashboard/odds360/{bookmakerId}/football/{matchId}:
GET /bookmaker/{bookmakerId}/football/{matchId}
Important response shape:
{
"matchId": 2450840,
"sport": "football",
"leagueName": "Premier League",
"homeTeamName": "Home Team",
"awayTeamName": "Away Team",
"odds": {
"nextPlay": {},
"halfTime": {},
"player": {},
"team": {},
"fullTime": {}
},
"override": []
}
The frontend also loads:
GET /bookmaker/{bookmakerId}/football/{matchId}/verify
to mark verified market groups.
5. Use the raw Odds360 REST service
The public Odds360 service exposes the raw football feed and related metadata:
GET https://odds360.sportmicro.com/football
GET https://odds360.sportmicro.com/football-history
GET https://odds360.sportmicro.com/football-classes
GET https://odds360.sportmicro.com/football-leagues
6. Subscribe to live updates
For the same bookmaker_id, sport, and match_id, you can subscribe with either WebSocket or SSE.
Updates
wss://odds360.sportmicro.com/live/{bookmaker_id}/football/{match_id}/updates
https://odds360.sportmicro.com/live/{bookmaker_id}/football/{match_id}/updates
Overrides
wss://odds360.sportmicro.com/live/{bookmaker_id}/football/{match_id}/overrides
https://odds360.sportmicro.com/live/{bookmaker_id}/football/{match_id}/overrides
The dashboard subscribes to the bookmaker-scoped routes:
GET /bookmaker/{bookmakerId}/football/{matchId}/updates
GET /bookmaker/{bookmakerId}/football/{matchId}/overrides
7. Optional manual overrides
The dashboard writes manual changes through:
PATCH /bookmaker/{bookmakerId}/football/{matchId}/{oddType}
Typical body:
{
"oddKey": "market_name#outcome_key",
"oddValue": 1.85,
"durationSeconds": 3600,
"suspended": false
}
WebSocket example
const ws = new WebSocket(
"wss://odds360.sportmicro.com/live/<bookmaker_id>/football/<match_id>/updates"
);
ws.addEventListener("message", (ev) => console.log(JSON.parse(ev.data)));
SSE example
const es = new EventSource(
"https://odds360.sportmicro.com/live/<bookmaker_id>/football/<match_id>/updates"
);
es.addEventListener("message", (ev) => console.log(JSON.parse(ev.data)));
Notes
match_idshould come from the football SportMicro match feed.bookmaker_idis the UUID assigned to your Odds360 bookmaker./bookmaker/...routes are the authenticated dashboard routes used bysportmicro-frontend.https://odds360.sportmicro.com/...routes are the public Odds360 API routes.- WebSocket and SSE access require the
websocketsaddon on the Odds360 plan.