Yextof Sportsbook Feed API
Complete documentation for integrating with the Yextof Sportsbook Feed API
Getting Started
Introduction
The Yextof Sportbook Feed API provides real-time sports data, including sports, countries, leagues, events (pre-match and live), and betting functionalities. This documentation covers all endpoints, request parameters, and response formats for seamless integration.
Authentication
All POST requests require an api-key and hash in the payload for authentication.
Endpoints
Sport All
Retrieve a list of all supported sports.
GET https://[URL]/api/sport/all
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | Yes | Language (en, tr, ru). |
Example Response:
{
"success": true,
"data": [{
"sport_id": 1,
"sport_name": "Football",
"live_count": 65,
"pre_count": 828
}]
}
Country All
Retrieve countries by optional sport filter.
GET https://[URL]/api/country/all
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | Yes | Language (en, tr, ru). |
| sport_id | number | No | Filter by sport ID. |
Example Response:
{
"success": true,
"data": [{
"country_id": 1,
"country_name": "Russia",
"sport_id": 1,
"live_count": 0,
"pre_count": 33,
"country_img": "b7dedc4fa91fd807153524c6477d9cc2.png",
"country_img_alt": "f24c23c68887df581cbbb1ae853ede46.png"
}]
}
League All
Retrieve leagues with optional sport/country filters.
GET https://[URL]/api/league/all
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | Yes | Language (en, tr, ru). |
| sport_id | number | No | Filter by sport ID. |
| country_id | number | No | Filter by country ID. |
Example Response:
{
"success": true,
"data": [{
"league_id": 2708505,
"league_name": "2026 World Cup Qualifiers. Europe",
"country_id": 225,
"live_count": 0,
"pre_count": 7,
"league_img": "7f149b0eb3af37e1ea8f011fe05f216c.png"
}]
}
Pre-Match Events
Retrieve pre-match events with filters.
GET https://[URL]/api/event/pre-all
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | Yes | Language (en, tr, ru). |
| sport_id | number | Yes | Filter by sport ID. |
| count | number | No | Limit results (e.g., first 10). |
| date1 | string | No | Start date (ISO format). |
| date2 | string | No | End date (ISO format). |
Example Response:
{
"success": true,
"data": [{
"event_id": 647717517,
"competitor_home_id": 12643,
"competitor_home_name": "Ireland",
"competitor_home_img": "12643.png",
"competitor_away_id": 12795,
"competitor_away_name": "Hungary",
"competitor_away_img": "12795.png",
"sport_id": 1,
"sport_name": "Football",
"country_id": 225,
"country_name": "World",
"kind": 3,
"league_id": 2708505,
"league_name": "2026 World Cup Qualifiers. Europe",
"event_time": 1757184300,
"event_location": "Aviva (Dublin)",
"event_tst": "Group Stage. Group F",
"markets": [{
"market_id": 1,
"market_name": "1x2",
"market_group_id": 3,
"odds": [
{
"odd_id": 1,
"odd_price": 2.54,
"market_id": 1,
"odd_name": "1",
"stat": "fix",
"player": null
},
{
"odd_id": 2,
"odd_price": 3.025,
"market_id": 1,
"odd_name": "X",
"stat": "fix",
"player": null
},
{
"odd_id": 3,
"odd_price": 3.045,
"market_id": 1,
"odd_name": "2",
"stat": "fix",
"player": null
}
]
}],
"market_count": 1263,
"groups": [
{
"group_id": 647717517,
"group_odd_length": 801,
"group_name": "Regular Time",
"group_tag": "",
"event_real_id": 647717517
},
{
"group_id": 647717518,
"group_odd_length": 251,
"group_name": "1st Half",
"group_tag": "",
"event_real_id": 647717517
},
{
"group_id": 647717519,
"group_odd_length": 261,
"group_name": "2nd Half",
"group_tag": "",
"event_real_id": 647717517
}
],
"is_live": "false"
}]
}
Live Events
Retrieve live events with grouping option.
GET https://[URL]/api/event/live-all
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | string | Yes | Language (en, tr, ru). |
| sport_id | number | Yes | Filter by sport ID. |
| count | number | No | Limit results (e.g., first 10). |
| date1 | string | No | Start date (ISO format). |
| date2 | string | No | End date (ISO format). |
| group_league | string | No | Group by league (true/false). Default: false. |
Example Response:
{
"success": true,
"data": [{
"event_id": 651315594,
"sort": 0,
"competitor_home_id": 28447,
"competitor_home_name": "Nepal",
"competitor_home_img": "28447.png",
"competitor_away_id": 25705,
"competitor_away_name": "Bangladesh",
"competitor_away_img": "25705.png",
"kind": 1,
"sport_id": 1,
"sport_name": "Football",
"country_id": 225,
"event_result": {
"event_period": 1,
"event_period_title": "1st Half",
"final_score": {
"home": 0,
"away": 0
},
"period_score": [
{
"period": 1,
"period_name": "1st Half"
}
],
"live_time": 1214,
"statisctic": [
{
"statisctic_name": "Attacks",
"statisctic_id": 45,
"home": "30",
"away": "11"
},
{
"statisctic_name": "Dangerous attacks",
"statisctic_id": 58,
"home": "21",
"away": "11"
},
{
"statisctic_name": "Ball possession %",
"statisctic_id": 29,
"home": "50",
"away": "50"
},
{
"statisctic_name": "Shots on target",
"statisctic_id": 59,
"home": "0",
"away": "1"
},
{
"statisctic_name": "Shots off target",
"statisctic_id": 60,
"home": "0",
"away": "1"
},
{
"statisctic_name": "Yellow cards",
"statisctic_id": 26,
"home": "0",
"away": "0"
},
{
"statisctic_name": "Corner",
"statisctic_id": 70,
"home": "0",
"away": "1"
},
{
"statisctic_name": "Red card",
"statisctic_id": 71,
"home": "0",
"away": "0"
},
{
"statisctic_name": "Penalty",
"statisctic_id": 72,
"home": "0",
"away": "0"
},
{
"statisctic_name": "Substitutions",
"statisctic_id": 92,
"home": "0",
"away": "0"
}
]
},
"country_name": "World",
"league_id": 125983,
"league_name": "Friendly Matches. National Teams",
"event_time": 1757159100,
"event_location": "Dasarath Rangasala (Kathmandu)",
"markets": [{
"market_id": 1,
"market_name": "1x2",
"market_group_id": 3,
"odds": [
{
"odd_id": 1,
"odd_price": 2.68,
"market_id": 1,
"odd_name": "1",
"stat": "fix",
"player": null
},
{
"odd_id": 2,
"odd_price": 2.552,
"market_id": 1,
"odd_name": "X",
"stat": "fix",
"player": null
},
{
"odd_id": 3,
"odd_price": 3.47,
"market_id": 1,
"odd_name": "2",
"stat": "fix",
"player": null
}
]
}],
"market_count": 376,
"groups": [],
"is_live": "true"
}]
}
Event Details
Retrieve details for a specific event.
GET https://[URL]/api/event/event
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| event_id | number | Yes | Event ID. |
| lang | string | Yes | Language (en, tr, ru). |
Example Response:
{
"success": true,
"data": {
"event_id": 651315594,
"competitor_home_id": 28447,
"competitor_home_name": "Nepal",
"competitor_home_img": "28447.png",
"competitor_away_id": 25705,
"competitor_away_name": "Bangladesh",
"competitor_away_img": "25705.png",
"sport_id": 1,
"sport_name": "Football",
"country_id": 225,
"event_result": {
"event_period": 1,
"event_period_title": "1st Half",
"final_score": {
"home": 0,
"away": 0
},
"period_score": [
{
"period": 1,
"period_name": "1st Half"
}
],
"live_time": 1304,
"statisctic": [
{
"statisctic_name": "Attacks",
"statisctic_id": 45,
"home": "31",
"away": "12"
},
{
"statisctic_name": "Dangerous attacks",
"statisctic_id": 58,
"home": "21",
"away": "12"
},
{
"statisctic_name": "Ball possession %",
"statisctic_id": 29,
"home": "50",
"away": "50"
},
{
"statisctic_name": "Shots on target",
"statisctic_id": 59,
"home": "0",
"away": "1"
},
{
"statisctic_name": "Shots off target",
"statisctic_id": 60,
"home": "0",
"away": "1"
},
{
"statisctic_name": "Yellow cards",
"statisctic_id": 26,
"home": "0",
"away": "0"
},
{
"statisctic_name": "Corner",
"statisctic_id": 70,
"home": "0",
"away": "2"
},
{
"statisctic_name": "Red card",
"statisctic_id": 71,
"home": "0",
"away": "0"
},
{
"statisctic_name": "Penalty",
"statisctic_id": 72,
"home": "0",
"away": "0"
},
{
"statisctic_name": "Substitutions",
"statisctic_id": 92,
"home": "0",
"away": "0"
}
]
},
"kind": 1,
"country_name": "World",
"league_id": 125983,
"league_name": "Friendly Matches. National Teams",
"event_time": 1757159100,
"event_location": "Dasarath Rangasala (Kathmandu)",
"markets": [{
"market_id": 1,
"market_name": "1x2",
"market_group_id": 3,
"odds": [
{
"odd_id": 1,
"odd_price": 2.8,
"market_id": 1,
"odd_name": "1",
"stat": "fix",
"player": null
},
{
"odd_id": 2,
"odd_price": 2.54,
"market_id": 1,
"odd_name": "X",
"stat": "fix",
"player": null
},
{
"odd_id": 3,
"odd_price": 3.3,
"market_id": 1,
"odd_name": "2",
"stat": "fix",
"player": null
}
]
}],
"market_count": 376,
"groups": [
{
"group_id": "651315594",
"group_odd_length": 339,
"group_name": "Regular Time",
"group_tag": "",
"event_real_id": "651315594"
},
{
"group_id": 651315611,
"group_odd_length": 79,
"group_name": "1st Half",
"group_tag": "",
"event_real_id": 651315594
},
{
"group_id": 651315615,
"group_odd_length": 118,
"group_name": "2nd Half",
"group_tag": "",
"event_real_id": 651315594
}
],
"stadium_detail": {
"Address": "",
"Architect": "Nepal Professional Architectures",
"Capacity": "30000",
"Category": "",
"Circuits": [],
"City": "Kathmandu",
"CoordLat": "27.695077",
"CoordLon": "85.314829",
"Cost": "",
"CountryId": 130,
"Covering": null,
"Developer": "",
"Email": "",
"HasInfo": true,
"History": "",
"HomeTeams": "",
"Images": [],
"Info": "",
"IsHideImages": false,
"MajorEvents": "",
"Name": "Dasarath Rangasala (Kathmandu)",
"OldName": "",
"Opened": "1958",
"Owner": "",
"Phone": "+977 1-4261873",
"Website": "",
"ZipCode": "",
"WeatherDet": [
{
"K": 2,
"V": "Dasarath Rangasala (Kathmandu)"
},
{
"K": 9,
"V": "+26°C"
},
{
"K": 27,
"V": "77"
},
{
"K": 28,
"V": "Humidity, %"
},
{
"K": 25,
"V": "760"
},
{
"K": 26,
"V": "Pressure, mmHg"
},
{
"K": 23,
"V": "2"
},
{
"K": 22,
"V": "13"
},
{
"K": 24,
"V": "W wind, m/s"
},
{
"K": 20,
"V": "11"
},
{
"K": 21,
"V": "Gloomy"
},
{
"K": 7,
"V": "Kathmandu"
}
]
},
"is_live": "true",
"cache_time": 1757160649695
}
}
Coupon Operations
Create Coupon
POST https://[URL]/api/coupon/create
Payload:
{
"api-key": "xxxxxx",
"hash": "xxxxxx",
"total_amount": "100",
"lang": "tr",
"changed_odd": true,
"coupon": [
{
"event_id": 635597821,
"market_id": 1,
"odd_id": 1,
"odd_price": 2.19,
"spov": "optional"
}
]
}
Response:
{
"success": true,
"coupon_id": 33
}
Bet Report History
Retrieve coupon/bet history with various filters.
POST https://[URL]/api/coupon/bet-report-history
Payload:
{
"api-key": "xxxxxx",
"hash": "xxxxxx",
"date1": "2023-01-01",
"date2": "2023-12-31",
"attempt": 0,
"is_live": 0,
"user_id": 8606,
"sport_id": 3,
"league_id": 123,
"event_id": 456,
"market_type_id": 1
}
Response:
{
"success": true,
"code": 200,
"data": [
{
"bet_id": 127,
"sport_ids": [
3
],
"player_id": 8606,
"currency": "USD",
"amount": 3000,
"total_odd": 2.1,
"win_amount": 6300,
"type": 1,
"status": 1,
"name": "John Caster",
"username": "john2",
"createdAt": "2025-06-03T18:14:20.000Z",
"detail": [
{
"event_date": "2025-08-03T18:15:00.000Z",
"sport": 3,
"sport_name": "Basketball",
"country": "Europe",
"league": "FIBA Europe Championship",
"event_name": "Home vs. Away",
"market_name": "Total 1st Half",
"odd_name": "Total (82.5) Over",
"odd_price": 2.1,
"status": "Win",
"event_info": "Event End",
"event_result": "95:90"
}
],
"ip": "1.1.1.1.1",
"is_live": 0,
"attempt": 0,
"event_count": 1
}
]
}
Cashback Check
POST https://[URL]/api/coupon/cash-back-check
Payload:
{
"coupon_id": 33,
"api-key": "xxxxxx",
"hash": "xxxxxx"
}
Response:
{
"success": true,
"cash_amount": 7.5
}
Cashback Execute
POST https://[URL]/api/coupon/cash-back
Payload:
{
"coupon_id": 33,
"api-key": "xxxxxx",
"hash": "xxxxxx"
}
Response:
{
"success": true,
"message": "Success!"
}
Extra
CDN (Images/Docs)
GET https://[URL]/cdn/docs/view?doc_id=1c73d57a48e2686087dd3e17248fe578.png
Best Practices
Best Practices
- Always use real odds for coupons to avoid cashback issues.
- Max 1-month date range for coupon history requests.
Support
For issues, contact Yextof at tg: @wega_manage.
Documentation version: 1.0