Fixture Results
Getting Started
Make sure to follow the instructions at https://developer.opticodds.com/docs/getting-started#/ to get the information you need.
⚙️ Enable Your Queue
To initialize your message queue and begin receiving data:
- Make a POST request to: v3/fixtures/results/queue/start
- This will return your queue details. Example response:
{
"data": [
{
"id": 3,
"queue_name": "AAAAAAA_2_cop_4HOEXAMPLEQUEUE",
"enabled": true,
"sports": [],
"leagues": [
"nba"
],
"num_consumers": null,
"num_messages": null,
"messages_per_second": null
}
]
}
📦 Message Types
All messages are sent as JSON-encoded byte streams. Below are examples of supported event types.
🔄 ping
A basic heartbeat message.
{
"event": "ping",
"timestamp": "1743541426",
"data": "2024-08-28T18:57:49Z"
}
🎯 fixture-results
Live score updates for fixtures.
{
"event":"fixture-results",
"timestamp":1746109375,
"data":{
"fixture_id":"2025050128AD6D61",
"sport":"tennis",
"league":"ITF Women",
"is_live":true,
"score":{
"sport":{
"id":"tennis",
"name":"Tennis",
"numerical_id":25
},
"league":{
"id":"itf_women",
"name":"ITF Women",
"numerical_id":605
},
"fixture":{
"id":"2025050128AD6D61",
"numerical_id":242184,
"game_id":"45040-10517-2025-17",
"start_date":"2025-05-01T08:00:00+00:00",
"home_competitors":[
{
"id":"F8ED4FE9C4698E9D",
"name":"Amandine Hesse",
"numerical_id":43219,
"base_id":2213,
"abbreviation":"",
"logo":"https://cdn.opticodds.com/team-logos/tennis/2213.png"
}
],
"away_competitors":[
{
"id":"03C08D67548BE1EE",
"name":"Aravane Rezai",
"numerical_id":67335,
"base_id":52105,
"abbreviation":"",
"logo":"https://cdn.oddsjam.com/team-logos/unknown.jpg"
}
],
"home_team_display":"Amandine Hesse",
"away_team_display":"Aravane Rezai",
"status":"live",
"is_live":true,
"season_type":"ITF W50 Yecla Women",
"season_year":"2025",
"season_week":"round of 16",
"venue_name":null,
"venue_location":null,
"venue_neutral":false
},
"scores":{
"home":{
"total":1.0,
"periods":{
"period_1":6.0,
"period_2":3.0
},
"aggregate":null
},
"away":{
"total":0.0,
"periods":{
"period_1":1.0,
"period_2":2.0
},
"aggregate":null
}
},
"in_play":{
"period":"2",
"clock":null,
"last_play":null,
"time_min":null,
"time_sec":null,
"balls":null,
"outs":null,
"strikes":null,
"runners":null,
"batter":null,
"pitcher":null,
"possession":null,
"down":null,
"distance_to_go":null,
"field_position":null,
"game_score":null
},
"events":[
],
"stats":{
"home":[
{
"period":"all",
"stats":{
"aces":4.0,
"double_faults":4.0,
"service_games_won":6.0,
"max_games_in_a_row":4.0,
"service_points_won":27.0,
"max_points_in_a_row":10.0
}
}
],
"away":[
{
"period":"all",
"stats":{
"aces":2.0,
"double_faults":3.0,
"service_games_won":3.0,
"max_games_in_a_row":1.0,
"service_points_won":20.0,
"max_points_in_a_row":7.0
}
}
]
},
"extra":{
"id":"2025050128AD6D61",
"clock":null,
"sport":"tennis",
"league":"ITF Women",
"period":"2",
"source":"sofascore",
"status":"Live",
"game_id":"45040-10517-2025-17",
"is_live":true,
"away_team":"Aravane Rezai",
"home_team":"Amandine Hesse",
"start_date":"2025-05-01T08:00:00+00:00",
"team_stats":{
"away_stats":{
"stat_aces":2.0,
"stat_double_faults":3.0,
"stat_service_games_won":3.0,
"stat_max_games_in_a_row":1.0,
"stat_service_points_won":20.0,
"stat_max_points_in_a_row":7.0
},
"home_stats":{
"stat_aces":4.0,
"stat_double_faults":4.0,
"stat_service_games_won":6.0,
"stat_max_games_in_a_row":4.0,
"stat_service_points_won":27.0,
"stat_max_points_in_a_row":10.0
}
},
"description":"A. Rezai vs A. Hesse",
"away_team_id":"03C08D67548BE1EE",
"home_team_id":"F8ED4FE9C4698E9D",
"is_clock_stopped":false,
"score_away_total":0.0,
"score_home_total":1.0,
"score_away_period_1":1.0,
"score_away_period_2":2.0,
"score_home_period_1":6.0,
"score_home_period_2":3.0
},
"retirement_info":null
},
"player_results":[
{
"player":{
"id":"F8ED4FE9C4698E9D",
"name":"Amandine Hesse",
"position":null,
"number":null,
"numerical_id":1365689,
"base_id":39572
},
"team":{
"id":"F8ED4FE9C4698E9D",
"name":"Amandine Hesse",
"numerical_id":43219,
"base_id":2213
},
"status":"live",
"stats":[
{
"period":"all",
"stats":{
"aces":4.0,
"double_faults":4.0,
"service_games_won":6.0,
"max_games_in_a_row":4.0,
"service_points_won":27.0,
"max_points_in_a_row":10.0
}
}
],
"is_starter":false
},
{
"player":{
"id":"03C08D67548BE1EE",
"name":"Aravane Rezai",
"position":null,
"number":null,
"numerical_id":1449774,
"base_id":723855
},
"team":{
"id":"03C08D67548BE1EE",
"name":"Aravane Rezai",
"numerical_id":67335,
"base_id":52105
},
"status":"live",
"stats":[
{
"period":"all",
"stats":{
"aces":2.0,
"double_faults":3.0,
"service_games_won":3.0,
"max_games_in_a_row":1.0,
"service_points_won":20.0,
"max_points_in_a_row":7.0
}
}
],
"is_starter":false
}
]
}
}
⚠️ Error Handling
If more than 1,500 unread messages accumulate in your queue:
- The queue will be automatically cleared and deleted.
- You must re-initiate the /queue/start flow to resume consumption
Updated 7 days ago