{
"service": "sports-odds-api",
"version": 1,
"proxy": {
"configured": true,
"policy": "scrapingbee basic → premium → brightdata unblocker (no stealth)"
},
"cache": {
"live_odds_ttl_seconds": 20,
"prematch_odds_ttl_seconds": 120
},
"sources": [
{
"id": "sofascore",
"status": "production",
"markets": [
"1x2"
],
"notes": "Live events + per-event odds JSON; bookmaker labels are internal fids."
},
{
"id": "flashscore",
"status": "production",
"notes": "Live feed, match detail, statistics and summary (scores context; no odds)."
},
{
"id": "betexplorer",
"status": "production",
"markets": [
"1x2",
"ou25",
"btts"
],
"competitions": [
"epl",
"laliga",
"serie-a",
"ucl"
],
"notes": "Pre-match multi-bookmaker comparator; snapshot history on odds refresh."
},
{
"id": "oddsportal",
"status": "not_available",
"notes": "Legacy .dat feeds 404; Next.js render not stable — spike only in mvp-odds."
},
{
"id": "betfair_exchange",
"status": "production",
"markets": [
"MATCH_ODDS"
],
"notes": "Exchange matched volume (GBP), best back/lay; requires BETFAIR_* on origin."
}
],
"endpoints": [
{
"method": "GET",
"path": "/health",
"auth": false
},
{
"method": "GET",
"path": "/v1/meta",
"auth": true
},
{
"method": "GET",
"path": "/v1/sofascore/live-events",
"auth": true
},
{
"method": "GET",
"path": "/v1/sofascore/matches/{eventId}/odds",
"auth": true
},
{
"method": "GET",
"path": "/v1/flashscore/live",
"auth": true
},
{
"method": "GET",
"path": "/v1/flashscore/matches/{matchId}",
"auth": true
},
{
"method": "GET",
"path": "/v1/flashscore/matches/{matchId}/stats",
"auth": true
},
{
"method": "GET",
"path": "/v1/flashscore/matches/{matchId}/summary",
"auth": true
},
{
"method": "GET",
"path": "/v1/comparator/epl/fixtures",
"auth": true
},
{
"method": "GET",
"path": "/v1/comparator/epl/featured",
"auth": true,
"query": {
"limit": "1–20, default 5"
}
},
{
"method": "GET",
"path": "/v1/comparator/epl/lookup",
"auth": true,
"query": {
"home": "required",
"away": "required",
"include": "optional best — adds best odds block"
}
},
{
"method": "GET",
"path": "/v1/comparator/{competition}/fixtures",
"auth": true
},
{
"method": "GET",
"path": "/v1/comparator/matches/{matchId}/odds",
"auth": true,
"query": {
"competition": "epl|laliga|serie-a|ucl",
"market": "1x2|ou25|btts",
"path": "optional fixture path",
"fields": "full or best",
"format": "full or compact",
"bookmakers": "comma-separated filter"
}
},
{
"method": "GET",
"path": "/v1/comparator/matches/{matchId}/odds/history",
"auth": true,
"query": [
"competition",
"market",
"limit"
]
},
{
"method": "GET",
"path": "/v1/comparator/competitions",
"auth": true
},
{
"method": "GET",
"path": "/v1/comparator/{competition}/board",
"auth": true,
"query": {
"limit": "featured matches with best + market_signal"
}
},
{
"method": "GET",
"path": "/v1/comparator/matches/{matchId}/market-signal",
"auth": true
},
{
"method": "GET",
"path": "/v1/comparator/matches/{matchId}/analysis",
"auth": true,
"query": {
"format": "full|compact — odds + signal + history bundle"
}
},
{
"method": "GET",
"path": "/v1/odds/{competition}",
"auth": true,
"query": {
"0": "home",
"1": "away",
"format": "full|compact",
"include": "optional betfair — adds betfair_exchange block when configured"
}
},
{
"method": "GET",
"path": "/v1/exchange/betfair/lookup",
"auth": true,
"query": {
"home": "required",
"away": "required"
}
},
{
"method": "GET",
"path": "/v1/exchange/betfair/markets/{marketId}",
"auth": true
}
],
"capabilities": {
"market_signal": "Steam index, line movement, liquidity proxy — not currency volume",
"cross_line_gap": "Prematch BetExplorer vs live SofaScore best lines",
"betfair_exchange": "Matched volume and back/lay from Betfair Exchange API (GBP)",
"sitemap_paths": "Competition slugs resolved from BetExplorer fixtures sitemap (24h cache)"
},
"betfair": {
"configured": true,
"market_cache_seconds": 45
},
"audiences": {
"recreational": {
"label": "Recreativo / comparador",
"goal": "Mejor cuota y casas sin fricción.",
"endpoints": [
"GET /v1/comparator/epl/lookup?home=&away=&include=best",
"GET /v1/comparator/matches/{id}/odds?fields=best",
"GET /v1/comparator/matches/{id}/odds?fields=full",
"GET /v1/sofascore/live-events",
"GET /v1/sofascore/matches/{eventId}/odds",
"GET /v1/flashscore/live",
"GET /v1/flashscore/matches/{matchId}",
"GET /v1/flashscore/matches/{matchId}/stats",
"GET /v1/flashscore/matches/{matchId}/summary"
],
"fields": [
"best",
"bookmakers[]",
"selections.implied_pct",
"edge_vs_best_pct",
"bookmaker_key"
]
},
"semi_pro": {
"label": "Semi-pro / line shoppers",
"goal": "Movimiento de línea + mejor precio + contexto pre-match vs live.",
"endpoints": [
"GET /v1/odds/{competition}?home=&away=",
"GET /v1/comparator/matches/{id}/market-signal",
"GET /v1/comparator/matches/{id}/odds/history",
"GET /v1/comparator/matches/{id}/analysis",
"GET /v1/comparator/{competition}/board"
],
"fields": [
"market_signal.steam_index",
"market_signal.line_movement",
"history.delta",
"cross_line_gap",
"consensus_spread_pct"
],
"notes": "market_signal is odds-based activity — not currency betting volume."
},
"exchange_pro": {
"label": "Pro / exchange (v2 — no publicar aún)",
"goal": "Matched volume en exchange (Betfair GBP). Fuera del listing v1.",
"status": "planned_v2",
"endpoints": [],
"planned": [
"Origin prod: BETFAIR_ENABLED=true — SSO/API vía proxy.zylalabs.com (ScrapingBee premium + country_code=gb); Forge US no llega a Betfair directo.",
"GET /v1/exchange/betfair/lookup?home=&away= y GET /v1/exchange/betfair/markets/{marketId} — matched volume GBP, back/lay (Delayed app key).",
"Unified opcional: GET /v1/odds/{competition}?home=&away=&include=betfair añade bloque betfair_exchange.",
"No confundir con comparador/SofaScore (cuotas de casas). Exchange = liquidez peer-to-peer Betfair.",
"Tomás: no crear endpoints Hub ni listing “Betfair” en v1; ver /doc §10."
],
"notes": "No incluir este bloque en el master del Hub en v1."
}
},
"competitions": [
{
"key": "epl",
"label": "Premier League",
"betexplorer_path": "england/premier-league",
"betexplorer_path_config": "england/premier-league",
"path_source": "sitemap_canonical",
"sitemap_indexed_at": "2026-09-23T14:18:42+00:00"
},
{
"key": "laliga",
"label": "La Liga",
"betexplorer_path": "spain/laliga",
"betexplorer_path_config": "spain/laliga"
}
],
"_note": "Response truncated for documentation purposes"
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32118/api+metadata' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "sofascore",
"sport": "football",
"count": 330,
"events": [
{
"eventState": [],
"tournament": {
"name": "U17 Friendly Games",
"slug": "u17-friendly-games",
"category": {
"name": "World",
"slug": "world",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 20,
"country": [],
"id": 1468,
"flag": "international",
"fieldTranslations": {
"nameTranslation": {
"ar": "العالم",
"bn": "বিশ্ব",
"hi": "विश्व",
"ru": "Мир"
},
"shortNameTranslation": []
}
},
"uniqueTournament": {
"name": "U17 Friendly Games",
"slug": "u17-friendly-games",
"primaryColorHex": "#25497d",
"secondaryColorHex": "#d38f1d",
"category": {
"name": "World",
"slug": "world",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 20,
"country": [],
"id": 1468,
"flag": "international",
"fieldTranslations": {
"nameTranslation": {
"ar": "العالم",
"bn": "বিশ্ব",
"hi": "विश्व",
"ru": "Мир"
},
"shortNameTranslation": []
}
},
"userCount": 2043,
"hasPerformanceGraphFeature": false,
"showBanner": true,
"liveActivityEnabled": false,
"country": [],
"id": 858,
"hasEventPlayerStatistics": false,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"ar": "مباريات ودية تحت 17",
"ru": "Товарищеские игры до 17 лет"
},
"shortNameTranslation": []
}
},
"priority": 0,
"isGroup": false,
"isLive": false,
"id": 5842,
"fieldTranslations": {
"nameTranslation": {
"ar": "مباريات ودية تحت 17",
"ru": "Товарищеские игры U17"
},
"shortNameTranslation": []
}
},
"season": {
"name": "U17 Friendly Games 2026",
"year": "2026",
"editor": false,
"id": 88540
},
"customId": "zZisccj",
"status": {
"code": 31,
"description": "Halftime",
"type": "inprogress"
},
"homeTeam": {
"name": "Finland U17",
"slug": "finland-u17",
"shortName": "Finland U17",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 367,
"nameCode": "FIN",
"disabled": false,
"national": true,
"type": 0,
"country": {
"alpha2": "FI",
"alpha3": "FIN",
"name": "Finland",
"slug": "finland"
},
"id": 22602,
"subTeams": [],
"teamColors": {
"primary": "#ffffff",
"secondary": "#0066b3",
"text": "#0066b3"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "فنلندا تحت 17",
"hi": "फ़िनलैंड U17",
"ru": "Финляндия U17"
},
"shortNameTranslation": {
"ar": "فنلندا تحت 17"
}
}
},
"awayTeam": {
"name": "France U17",
"slug": "france-u17",
"shortName": "France U17",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 8356,
"nameCode": "FRA",
"disabled": false,
"national": true,
"type": 0,
"country": {
"alpha2": "FR",
"alpha3": "FRA",
"name": "France",
"slug": "france"
},
"id": 22474,
"subTeams": [],
"teamColors": {
"primary": "#01509e",
"secondary": "#e30613",
"text": "#e30613"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "فرنسا تحت 17",
"hi": "फ्रांस U17",
"ru": "Франция U17"
},
"shortNameTranslation": {
"ar": "فرنسا تحت 17"
}
}
},
"homeScore": {
"current": 2,
"display": 2,
"period1": 2,
"normaltime": 2
},
"awayScore": {
"current": 1,
"display": 1,
"period1": 1,
"normaltime": 1
},
"coverage": -1,
"time": {
"currentPeriodStartTimestamp": 1790172120,
"lastPeriodEndTimestamp": 1790174891
},
"changes": {
"changes": [
"status.code",
"status.description",
"homeScore.period1",
"homeScore.normaltime",
"awayScore.period1",
"awayScore.normaltime",
"time.lastPeriodEnd"
],
"changeTimestamp": 1790174891
},
"hasGlobalHighlights": false,
"crowdsourcingDataDisplayEnabled": false,
"id": 17157205,
"varInProgress": {
"homeTeam": false,
"awayTeam": false
},
"slug": "finland-u17-france-u17",
"startTimestamp": 1790172000,
"finalResultOnly": false,
"feedLocked": false,
"isEditor": false,
"eventFilters": {
"category": [
"national"
],
"level": [
"pro",
"youth"
],
"gender": [
"M"
]
}
},
{
"eventState": [],
"tournament": {
"name": "South American Games, Women, Bronze medal match",
"slug": "south-american-games-playoffs",
"category": {
"name": "South America",
"slug": "south-america",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 18,
"country": [],
"id": 1470,
"flag": "south-america",
"fieldTranslations": {
"nameTranslation": {
"ar": "أمريكا الجنوبية",
"ru": "Южная Америка"
},
"shortNameTranslation": []
}
},
"uniqueTournament": {
"name": "South American Games, Women",
"slug": "south-american-games-women",
"category": {
"name": "South America",
"slug": "south-america",
"sport": {
"name": "Football"
}
}
}
}
}
],
"_note": "Response truncated for documentation purposes"
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32119/sofascore+live+football+events' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "sofascore",
"match_id": "14083104",
"market": "1x2",
"bookmaker_count": 2,
"bookmakers": [
{
"name": "sofascore_fid_182658084",
"selections": {
"home": 3.2,
"draw": 3.1,
"away": 2.4,
"implied_pct": {
"home": 31.25,
"draw": 32.26,
"away": 41.67
},
"edge_vs_best_pct": {
"home": -14.67,
"draw": 0,
"away": -20
}
},
"overround_pct": 5.17
},
{
"name": "sofascore_fid_182658084",
"selections": {
"home": 3.75,
"draw": 2.05,
"away": 3,
"implied_pct": {
"home": 26.67,
"draw": 48.78,
"away": 33.33
},
"edge_vs_best_pct": {
"home": 0,
"draw": -33.87,
"away": 0
}
},
"overround_pct": 8.78
}
],
"best": {
"home": {
"odds": 3.75,
"bookmaker": "sofascore_fid_182658084",
"implied_pct": 26.67
},
"draw": {
"odds": 3.1,
"bookmaker": "sofascore_fid_182658084",
"implied_pct": 32.26
},
"away": {
"odds": 3,
"bookmaker": "sofascore_fid_182658084",
"implied_pct": 33.33
}
},
"home": "Real Oviedo",
"away": "Osasuna",
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T14:57:11+00:00",
"from_cache": false
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32120/sofascore+match+odds+1x2' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "flashscore",
"count": 226,
"matches": [
{
"source": "flashscore",
"source_event_id": "OUrBkM6m",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790182800,
"updated_timestamp": 1789153771,
"is_live": false,
"home": {
"id": "QDJF1BmN",
"name": "Stammersdorf",
"short_code": "STA",
"slug": "sv-gerasdorf-stammersdorf"
},
"away": {
"id": "dfF86oXf",
"name": "Sportunion Mauer",
"short_code": "SPO",
"slug": "sportunion-mauer"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "vDJrnwQs",
"sport": "football",
"status_code": 3,
"start_timestamp": 1790141400,
"updated_timestamp": 1790148153,
"is_live": true,
"home": {
"id": "Us2VHLIq",
"name": "Иран U23",
"short_code": "IRN",
"slug": "iran"
},
"away": {
"id": "8x5txsAF",
"name": "Северная Корея U23",
"short_code": "PRK",
"slug": "north-korea"
},
"score": {
"home": 1,
"away": 4
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "AcTCia2K",
"sport": "football",
"status_code": 3,
"start_timestamp": 1790141400,
"updated_timestamp": 1790148187,
"is_live": true,
"home": {
"id": "KvDnIMwk",
"name": "Китай U23",
"short_code": "CHI",
"slug": "china"
},
"away": {
"id": "88mfeE0h",
"name": "ОАЭ U23",
"short_code": "UNI",
"slug": "united-arab-emirates"
},
"score": {
"home": 0,
"away": 0
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "AwwJVHu1",
"sport": "football",
"status_code": 3,
"start_timestamp": 1790159400,
"updated_timestamp": 1790165996,
"is_live": true,
"home": {
"id": "SYF3M1AS",
"name": "Кыргызстан U23",
"short_code": "КЫР",
"slug": "kyrgyzstan"
},
"away": {
"id": "Gb0wGamd",
"name": "Гонконг U23",
"short_code": "HON",
"slug": "hong-kong"
},
"score": {
"home": 4,
"away": 0
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "riyRTeAD",
"sport": "football",
"status_code": 3,
"start_timestamp": 1790159400,
"updated_timestamp": 1790166023,
"is_live": true,
"home": {
"id": "K4AKHlkC",
"name": "Япония U23",
"short_code": "JPN",
"slug": "japan"
},
"away": {
"id": "zchuuC0a",
"name": "Таиланд U23",
"short_code": "Таил",
"slug": "thailand"
},
"score": {
"home": 3,
"away": 0
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "WbAG8ncS",
"sport": "football",
"status_code": 12,
"start_timestamp": 1790173800,
"updated_timestamp": 1790174022,
"is_live": true,
"home": {
"id": "K8aAGt6r",
"name": "Ирак",
"short_code": "IRQ",
"slug": "iraq"
},
"away": {
"id": "EDZck0CK",
"name": "Оман",
"short_code": "OMA",
"slug": "oman"
},
"score": {
"home": 1,
"away": 0
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "boC8A8SF",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790186400,
"updated_timestamp": null,
"is_live": true,
"home": {
"id": "biSY8ox4",
"name": "Саудовская Аравия",
"short_code": "SAU",
"slug": "saudi-arabia"
},
"away": {
"id": "UTDwCIKD",
"name": "Кувейт",
"short_code": "KUW",
"slug": "kuwait"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "lQiVwvEO",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790186400,
"updated_timestamp": null,
"is_live": true,
"home": {
"id": "rDX0q8Z3",
"name": "Борхэм Вуд",
"short_code": "БОР",
"slug": "boreham-wood"
},
"away": {
"id": "67gs3wiJ",
"name": "Эвертон U21",
"short_code": "ЭВЕ",
"slug": "everton"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "4n92vE3E",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790189100,
"updated_timestamp": null,
"is_live": false,
"home": {
"id": "2JC8cPU3",
"name": "Exmouth Town",
"short_code": "EXM",
"slug": "exmouth-town"
},
"away": {
"id": "CYvNst7n",
"name": "Тейм",
"short_code": "THM",
"slug": "thame-united"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "zoKl6Kb4",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790186400,
"updated_timestamp": null,
"is_live": true,
"home": {
"id": "4W00G1qP",
"name": "Кристал Пэлас (Ж)",
"short_code": "CRY",
"slug": "crystal-palace"
},
"away": {
"id": "Kn1rnLwU",
"name": "Уотфорд (Ж)",
"short_code": "УОТ",
"slug": "watford"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "rBNd4bTG",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790186400,
"updated_timestamp": null,
"is_live": true,
"home": {
"id": "Ye260xTF",
"name": "Ливерпуль (Ж)",
"short_code": "ЛИВ",
"slug": "liverpool"
},
"away": {
"id": "tUgFr9bg",
"name": "Сандерленд (Ж)",
"short_code": "САН",
"slug": "sunderland"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": null
}
},
{
"source": "flashscore",
"source_event_id": "QirPkaEN",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790186400,
"updated_timestamp": null,
"is_live": true,
"home": {
"id": "4EeCFcxJ"
}
}
],
"_note": "Response truncated for documentation purposes"
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32121/flashscore+football+live+matches' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "flashscore",
"source_event_id": "OUrBkM6m",
"sport": "football",
"status_code": 1,
"start_timestamp": 1790182800,
"updated_timestamp": 1789153771,
"is_live": false,
"home": {
"id": "QDJF1BmN",
"name": "Stammersdorf",
"short_code": "STA",
"slug": "sv-gerasdorf-stammersdorf"
},
"away": {
"id": "dfF86oXf",
"name": "Sportunion Mauer",
"short_code": "SPO",
"slug": "sportunion-mauer"
},
"score": {
"home": null,
"away": null
},
"tournament": {
"name": "АВСТРИЯ: Вена"
},
"meta": {
"status_code": 1,
"last_update_timestamp": 1789153771,
"kickoff_timestamp": 1790182800,
"is_live": false
},
"cache": {
"hit": false,
"ttl_seconds": 20
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32122/flashscore+match+detail&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "flashscore",
"source_event_id": "2DZAXwBl",
"count": 38,
"statistics": [
{
"period": "Матч",
"group": "Главное",
"stat_id": "12",
"name": "Владение мячом",
"home": "46%",
"away": "54%"
},
{
"period": "Матч",
"group": "Главное",
"stat_id": "34",
"name": "Всего ударов",
"home": "5",
"away": "10"
},
{
"period": "Матч",
"group": "Главное",
"stat_id": "13",
"name": "Удары в створ",
"home": "1",
"away": "3"
},
{
"period": "Матч",
"group": "Главное",
"stat_id": "16",
"name": "Угловые",
"home": "1",
"away": "4"
},
{
"period": "Матч",
"group": "Главное",
"stat_id": "23",
"name": "Желтые карточки",
"home": "1",
"away": "1"
},
{
"period": "Матч",
"group": "Удары",
"stat_id": "34",
"name": "Всего ударов",
"home": "5",
"away": "10"
},
{
"period": "Матч",
"group": "Удары",
"stat_id": "13",
"name": "Удары в створ",
"home": "1",
"away": "3"
},
{
"period": "Матч",
"group": "Удары",
"stat_id": "14",
"name": "Удары мимо",
"home": "4",
"away": "7"
},
{
"period": "Матч",
"group": "Атака",
"stat_id": "16",
"name": "Угловые",
"home": "1",
"away": "4"
},
{
"period": "Матч",
"group": "Атака",
"stat_id": "17",
"name": "Офсайды",
"home": "2",
"away": "0"
},
{
"period": "Матч",
"group": "Атака",
"stat_id": "15",
"name": "Штрафные",
"home": "9",
"away": "7"
},
{
"period": "Матч",
"group": "Передачи",
"stat_id": "18",
"name": "Вбрасывания",
"home": "26",
"away": "10"
},
{
"period": "Матч",
"group": "Оборона",
"stat_id": "21",
"name": "Фолы",
"home": "5",
"away": "9"
},
{
"period": "1-й тайм",
"group": "Главное",
"stat_id": "12",
"name": "Владение мячом",
"home": "52%",
"away": "48%"
},
{
"period": "1-й тайм",
"group": "Главное",
"stat_id": "34",
"name": "Всего ударов",
"home": "3",
"away": "5"
},
{
"period": "1-й тайм",
"group": "Главное",
"stat_id": "13",
"name": "Удары в створ",
"home": "1",
"away": "1"
},
{
"period": "1-й тайм",
"group": "Главное",
"stat_id": "16",
"name": "Угловые",
"home": "1",
"away": "2"
},
{
"period": "1-й тайм",
"group": "Удары",
"stat_id": "34",
"name": "Всего ударов",
"home": "3",
"away": "5"
},
{
"period": "1-й тайм",
"group": "Удары",
"stat_id": "13",
"name": "Удары в створ",
"home": "1",
"away": "1"
},
{
"period": "1-й тайм",
"group": "Удары",
"stat_id": "14",
"name": "Удары мимо",
"home": "2",
"away": "4"
},
{
"period": "1-й тайм",
"group": "Атака",
"stat_id": "16",
"name": "Угловые",
"home": "1",
"away": "2"
},
{
"period": "1-й тайм",
"group": "Атака",
"stat_id": "17",
"name": "Офсайды",
"home": "2",
"away": "0"
},
{
"period": "1-й тайм",
"group": "Атака",
"stat_id": "15",
"name": "Штрафные",
"home": "4",
"away": "4"
},
{
"period": "1-й тайм",
"group": "Передачи",
"stat_id": "18",
"name": "Вбрасывания",
"home": "10",
"away": "6"
},
{
"period": "1-й тайм",
"group": "Оборона",
"stat_id": "21",
"name": "Фолы",
"home": "2",
"away": "4"
},
{
"period": "2-й тайм",
"group": "Главное",
"stat_id": "12",
"name": "Владение мячом",
"home": "40%",
"away": "60%"
},
{
"period": "2-й тайм",
"group": "Главное",
"stat_id": "34",
"name": "Всего ударов",
"home": "2",
"away": "5"
},
{
"period": "2-й тайм",
"group": "Главное",
"stat_id": "13",
"name": "Удары в створ",
"home": "0",
"away": "2"
},
{
"period": "2-й тайм",
"group": "Главное",
"stat_id": "16",
"name": "Угловые",
"home": "0",
"away": "2"
},
{
"period": "2-й тайм",
"group": "Главное",
"stat_id": "23",
"name": "Желтые карточки",
"home": "1",
"away": "1"
},
{
"period": "2-й тайм",
"group": "Удары",
"stat_id": "34",
"name": "Всего ударов",
"home": "2",
"away": "5"
},
{
"period": "2-й тайм",
"group": "Удары",
"stat_id": "13",
"name": "Удары в створ",
"home": "0",
"away": "2"
},
{
"period": "2-й тайм",
"group": "Удары",
"stat_id": "14",
"name": "Удары мимо",
"home": "2",
"away": "3"
},
{
"period": "2-й тайм",
"group": "Атака",
"stat_id": "16",
"name": "Угловые",
"home": "0",
"away": "2"
},
{
"period": "2-й тайм",
"group": "Атака",
"stat_id": "17",
"name": "Офсайды",
"home": "0",
"away": "0"
},
{
"period": "2-й тайм",
"group": "Атака",
"stat_id": "15",
"name": "Штрафные",
"home": "5",
"away": "3"
},
{
"period": "2-й тайм",
"group": "Передачи",
"stat_id": "18",
"name": "Вбрасывания",
"home": "16",
"away": "4"
},
{
"period": "2-й тайм",
"group": "Оборона",
"stat_id": "21",
"name": "Фолы",
"home": "3",
"away": "5"
}
],
"cache": {
"hit": false,
"ttl_seconds": 20
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32123/flashscore+match+statistics&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "flashscore",
"source_event_id": "2DZAXwBl",
"count": 14,
"periods": [
{
"name": "1-й тайм",
"score": {
"home": 0,
"away": 1
},
"incidents": [
{
"id": "xnZSsk9M",
"minute": "5'",
"team_side": 2,
"type_code": 8,
"label": "Голевой пас",
"player": "Jumaev A.",
"player_id": "2XWmPO99",
"player_url": "/player/jumaev-asilbek/2XWmPO99/",
"score_home": 0,
"score_away": 1,
"reason": ""
},
{
"id": "Ik0BH7D7",
"minute": "34'",
"team_side": 1,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Nguyen Quang V.",
"player_id": "fTY9fXoL",
"player_url": "/player/nguyen-quang-vinh/fTY9fXoL/",
"score_home": null,
"score_away": null,
"reason": ""
}
]
},
{
"name": "2-й тайм",
"score": {
"home": 0,
"away": 1
},
"incidents": [
{
"id": "z55eBo9O",
"minute": "46'",
"team_side": 2,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Khayrullaev R.",
"player_id": "UguShtS1",
"player_url": "/player/khavrullaev-ravshan/UguShtS1/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "jHu5Vlft",
"minute": "46'",
"team_side": 2,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Ibraimov N.",
"player_id": "2FVDI1JJ",
"player_url": "/player/ibraimov-nurlan/2FVDI1JJ/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "YNc8xO7N",
"minute": "46'",
"team_side": 1,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Nguyen Quoc Viet",
"player_id": "lYp55SJN",
"player_url": "/player/nguyen-quoc/lYp55SJN/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "UgqvX1Vp",
"minute": "46'",
"team_side": 1,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Nguyen Phi Hoang",
"player_id": "tflJJSSI",
"player_url": "/player/nguyen-phi-hoang/tflJJSSI/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "YLYJQK94",
"minute": "60'",
"team_side": 1,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Dang Tuan Phong",
"player_id": "rXwzoOmq",
"player_url": "/player/phong-dang-tuan/rXwzoOmq/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "pKpIi9VH",
"minute": "67'",
"team_side": 2,
"type_code": 8,
"label": "Голевой пас",
"player": "Jumaev A.",
"player_id": "2XWmPO99",
"player_url": "/player/jumaev-asilbek/2XWmPO99/",
"score_home": 0,
"score_away": 2,
"reason": ""
},
{
"id": "xCtFMTUi",
"minute": "70'",
"team_side": 1,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Hoang Q. D.",
"player_id": "f3F6xCyK",
"player_url": "/player/hoang-quang-dung/f3F6xCyK/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "z172XpqA",
"minute": "73'",
"team_side": 2,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Saidnurullaev S.",
"player_id": "t8ue6XTd",
"player_url": "/player/saidnurullayev-saidumarkhon/t8ue6XTd/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "6mUZExTr",
"minute": "73'",
"team_side": 2,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Urmonjonov O.",
"player_id": "xhKaTWXR",
"player_url": "/player/urmonjonov-oybek/xhKaTWXR/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "IotYuRld",
"minute": "84'",
"team_side": 2,
"type_code": 7,
"label": "Замена (уходит)",
"player": "Reimov M.",
"player_id": "ldsNOPvS",
"player_url": "/player/reimov-mukhammadali/ldsNOPvS/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "lnbIL22l",
"minute": "86'",
"team_side": 1,
"type_code": 1,
"label": "Желтая карточка",
"player": "Nguyen Quang V.",
"player_id": "fTY9fXoL",
"player_url": "/player/nguyen-quang-vinh/fTY9fXoL/",
"score_home": null,
"score_away": null,
"reason": ""
},
{
"id": "l8TOyFhn",
"minute": "88'",
"team_side": 2,
"type_code": 1,
"label": "Желтая карточка",
"player": "Rizakulov G.",
"player_id": "02JUdokh",
"player_url": "/player/rizoqulov-giyosjon/02JUdokh/",
"score_home": null,
"score_away": null,
"reason": ""
}
]
}
],
"cache": {
"hit": false,
"ttl_seconds": 20
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32124/flashscore+match+summary&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "betexplorer",
"competition": "epl",
"competition_label": "Premier League",
"betexplorer_path": "england/premier-league",
"count": 20,
"fixtures": [
{
"match_id": "xtmHKGT0",
"path": "/football/england/premier-league/arsenal-leeds/xtmHKGT0/",
"slug": "arsenal-leeds",
"home": "Arsenal",
"away": "Leeds",
"kickoff_unix": 1791635400,
"kickoff_iso": "2026-10-10T12:30:00+00:00"
},
{
"match_id": "p6jPIfbD",
"path": "/football/england/premier-league/aston-villa-brentford/p6jPIfbD/",
"slug": "aston-villa-brentford",
"home": "Aston Villa",
"away": "Brentford",
"kickoff_unix": 1791644400,
"kickoff_iso": "2026-10-10T15:00:00+00:00"
},
{
"match_id": "8I6zQB5t",
"path": "/football/england/premier-league/chelsea-bournemouth/8I6zQB5t/",
"slug": "chelsea-bournemouth",
"home": "Chelsea",
"away": "Bournemouth",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "UZ96Io4U",
"path": "/football/england/premier-league/ipswich-fulham/UZ96Io4U/",
"slug": "ipswich-fulham",
"home": "Ipswich",
"away": "Fulham",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "Qw1VY6lB",
"path": "/football/england/premier-league/sunderland-brighton/Qw1VY6lB/",
"slug": "sunderland-brighton",
"home": "Sunderland",
"away": "Brighton",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "hQ2NzTJb",
"path": "/football/england/premier-league/manchester-united-tottenham/hQ2NzTJb/",
"slug": "manchester-united-tottenham",
"home": "Manchester Utd",
"away": "Tottenham",
"kickoff_unix": 1791653400,
"kickoff_iso": "2026-10-10T17:30:00+00:00"
},
{
"match_id": "ld8jMT45",
"path": "/football/england/premier-league/crystal-palace-nottingham/ld8jMT45/",
"slug": "crystal-palace-nottingham",
"home": "Crystal Palace",
"away": "Nottingham",
"kickoff_unix": 1791727200,
"kickoff_iso": "2026-10-11T14:00:00+00:00"
},
{
"match_id": "dMBbK7ZH",
"path": "/football/england/premier-league/hull-city-everton/dMBbK7ZH/",
"slug": "hull-city-everton",
"home": "Hull",
"away": "Everton",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "p0aFxkkn",
"path": "/football/england/premier-league/liverpool-manchester-city/p0aFxkkn/",
"slug": "liverpool-manchester-city",
"home": "Liverpool",
"away": "Manchester City",
"kickoff_unix": 1791736200,
"kickoff_iso": "2026-10-11T16:30:00+00:00"
},
{
"match_id": "tW4rOkzg",
"path": "/football/england/premier-league/coventry-newcastle-utd/tW4rOkzg/",
"slug": "coventry-newcastle-utd",
"home": "Coventry",
"away": "Newcastle",
"kickoff_unix": 1791835200,
"kickoff_iso": "2026-10-12T20:00:00+00:00"
},
{
"match_id": "2wo3m634",
"path": "/football/england/premier-league/everton-chelsea/2wo3m634/",
"slug": "everton-chelsea",
"home": "Everton",
"away": "Chelsea",
"kickoff_unix": 1792240200,
"kickoff_iso": "2026-10-17T12:30:00+00:00"
},
{
"match_id": "2Jf9ROto",
"path": "/football/england/premier-league/brentford-liverpool/2Jf9ROto/",
"slug": "brentford-liverpool",
"home": "Brentford",
"away": "Liverpool",
"kickoff_unix": 1792249200,
"kickoff_iso": "2026-10-17T15:00:00+00:00"
},
{
"match_id": "A3lBopYG",
"path": "/football/england/premier-league/fulham-hull-city/A3lBopYG/",
"slug": "fulham-hull-city",
"home": "Fulham",
"away": "Hull",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "hjYlv2Qj",
"path": "/football/england/premier-league/manchester-city-ipswich/hjYlv2Qj/",
"slug": "manchester-city-ipswich",
"home": "Manchester City",
"away": "Ipswich",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "KdQz25Ic",
"path": "/football/england/premier-league/newcastle-utd-aston-villa/KdQz25Ic/",
"slug": "newcastle-utd-aston-villa",
"home": "Newcastle",
"away": "Aston Villa",
"kickoff_unix": 1792258200,
"kickoff_iso": "2026-10-17T17:30:00+00:00"
},
{
"match_id": "Y34wXpJN",
"path": "/football/england/premier-league/bournemouth-sunderland/Y34wXpJN/",
"slug": "bournemouth-sunderland",
"home": "Bournemouth",
"away": "Sunderland",
"kickoff_unix": 1792332000,
"kickoff_iso": "2026-10-18T14:00:00+00:00"
},
{
"match_id": "fDsekSYi",
"path": "/football/england/premier-league/brighton-crystal-palace/fDsekSYi/",
"slug": "brighton-crystal-palace",
"home": "Brighton",
"away": "Crystal Palace",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "rHnJqO2T",
"path": "/football/england/premier-league/leeds-manchester-united/rHnJqO2T/",
"slug": "leeds-manchester-united",
"home": "Leeds",
"away": "Manchester Utd",
"kickoff_unix": null,
"kickoff_iso": null
},
{
"match_id": "hAOr0qmA",
"path": "/football/england/premier-league/nottingham-arsenal/hAOr0qmA/",
"slug": "nottingham-arsenal",
"home": "Nottingham",
"away": "Arsenal",
"kickoff_unix": 1792341000,
"kickoff_iso": "2026-10-18T16:30:00+00:00"
},
{
"match_id": "0zSjbNHM",
"path": "/football/england/premier-league/tottenham-coventry/0zSjbNHM/",
"slug": "tottenham-coventry",
"home": "Tottenham",
"away": "Coventry",
"kickoff_unix": 1792440000,
"kickoff_iso": "2026-10-19T20:00:00+00:00"
}
],
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T16:04:26+00:00",
"from_cache": false
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32125/comparator+epl+fixtures' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "betexplorer",
"competition": "epl",
"count": 1,
"fixtures": [
{
"match_id": "xtmHKGT0",
"path": "/football/england/premier-league/arsenal-leeds/xtmHKGT0/",
"slug": "arsenal-leeds",
"home": "Arsenal",
"away": "Leeds",
"kickoff_unix": 1791635400,
"kickoff_iso": "2026-10-10T12:30:00+00:00"
}
],
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T16:08:03+00:00",
"from_cache": true
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32126/comparator+featured+epl?limit=1' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "betexplorer",
"competition": "epl",
"count": 1,
"fixtures": [
{
"match_id": "xtmHKGT0",
"path": "/football/england/premier-league/arsenal-leeds/xtmHKGT0/",
"slug": "arsenal-leeds",
"home": "Arsenal",
"away": "Leeds",
"kickoff_unix": 1791635400,
"kickoff_iso": "2026-10-10T12:30:00+00:00"
}
],
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T16:04:26+00:00",
"from_cache": true
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32127/comparator+featured+epl?limit=1' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "betexplorer",
"competition": "epl",
"match_id": "xtmHKGT0",
"path": "/football/england/premier-league/arsenal-leeds/xtmHKGT0/",
"home": "Arsenal",
"away": "Leeds",
"kickoff_unix": 1791635400,
"kickoff_iso": "2026-10-10T12:30:00+00:00",
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T16:08:03+00:00",
"from_cache": false
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32128/comparator+lookup+by+team+names?home=Arsenal&away=Leeds' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "betexplorer",
"competition": "epl",
"match_id": "xtmHKGT0",
"home": "Arsenal",
"away": "Leeds",
"market": "1x2",
"bookmaker_count": 14,
"best": {
"home": {
"odds": 1.39,
"bookmaker": "bwin",
"implied_pct": 71.94
},
"draw": {
"odds": 5.28,
"bookmaker": "Betfair",
"implied_pct": 18.94
},
"away": {
"odds": 9.36,
"bookmaker": "Betfair",
"implied_pct": 10.68
}
},
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T17:00:49+00:00",
"from_cache": false
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32129/comparator+match+odds+comparison?fields=best&market=1x2&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "betexplorer",
"competition": "epl",
"match_id": "xtmHKGT0",
"market": "1x2",
"count": 3,
"snapshots": [
{
"recorded_at": "2026-09-23T16:48:55+00:00",
"market": "1x2",
"bookmaker_count": 9,
"best": {
"home": {
"odds": 1.37,
"bookmaker": "versus.es",
"implied_pct": 72.99
},
"draw": {
"odds": 5.05,
"bookmaker": "retabet",
"implied_pct": 19.8
},
"away": {
"odds": 8.75,
"bookmaker": "sportium.es",
"implied_pct": 11.43
}
}
},
{
"recorded_at": "2026-09-23T16:54:00+00:00",
"market": "1x2",
"bookmaker_count": 14,
"best": {
"home": {
"odds": 1.39,
"bookmaker": "bwin",
"implied_pct": 71.94
},
"draw": {
"odds": 5.28,
"bookmaker": "Betfair",
"implied_pct": 18.94
},
"away": {
"odds": 9.36,
"bookmaker": "Betfair",
"implied_pct": 10.68
}
}
},
{
"recorded_at": "2026-09-23T17:00:49+00:00",
"market": "1x2",
"bookmaker_count": 14,
"best": {
"home": {
"odds": 1.39,
"bookmaker": "bwin",
"implied_pct": 71.94
},
"draw": {
"odds": 5.28,
"bookmaker": "Betfair",
"implied_pct": 18.94
},
"away": {
"odds": 9.36,
"bookmaker": "Betfair",
"implied_pct": 10.68
}
}
}
],
"delta": {
"best_odds_change": {
"home": 0,
"draw": 0,
"away": 0
},
"from": "2026-09-23T16:54:00+00:00",
"to": "2026-09-23T17:00:49+00:00"
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32130/comparator+odds+history&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "sports-odds-api",
"competition": "epl",
"fixture": {
"source": "betexplorer",
"competition": "epl",
"match_id": "xtmHKGT0",
"path": "/football/england/premier-league/arsenal-leeds/xtmHKGT0/",
"home": "Arsenal",
"away": "Leeds",
"kickoff_unix": 1791635400,
"kickoff_iso": "2026-10-10T12:30:00+00:00",
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T17:03:04+00:00",
"from_cache": true
}
},
"prematch": {
"source": "betexplorer",
"market": "1x2",
"bookmaker_count": 9,
"best": {
"home": {
"odds": 1.37,
"bookmaker": "versus.es",
"implied_pct": 72.99
},
"draw": {
"odds": 5.05,
"bookmaker": "retabet",
"implied_pct": 19.8
},
"away": {
"odds": 8.75,
"bookmaker": "sportium.es",
"implied_pct": 11.43
}
},
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T17:04:37+00:00",
"from_cache": false
}
},
"live_sofascore": {
"matched": false,
"event_id": null,
"best": null,
"bookmaker_count": 0
},
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "medium",
"label": "Moderate bookmaker coverage"
},
"bookmaker_count": 9,
"favorite_outcome": "home",
"consensus_spread_pct": {
"home": 2.96,
"draw": 11.52,
"away": 18.75
},
"line_movement": {
"period": {
"from": "2026-09-23T17:00:49+00:00",
"to": "2026-09-23T17:04:37+00:00"
},
"by_outcome": {
"home": {
"odds_change": -0.02,
"direction": "shortening"
},
"draw": {
"odds_change": -0.23,
"direction": "shortening"
},
"away": {
"odds_change": -0.61,
"direction": "shortening"
}
},
"strongest_move_outcome": "away",
"strongest_move_size": 0.61
},
"steam_index": 60,
"steam_label": "active"
},
"cross_line_gap": null,
"history": {
"snapshot_count": 4,
"delta": {
"best_odds_change": {
"home": -0.02,
"draw": -0.23,
"away": -0.61
},
"from": "2026-09-23T17:00:49+00:00",
"to": "2026-09-23T17:04:37+00:00"
}
},
"cache": {
"prematch": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T17:04:37+00:00",
"from_cache": false
},
"live": null
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32131/unified+odds+by+team+names?home=Arsenal&away=Leeds' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "sports-odds-api",
"competition": "epl",
"match_id": "xtmHKGT0",
"home": "Arsenal",
"away": "Leeds",
"market": "1x2",
"best": {
"home": {
"odds": 1.37,
"bookmaker": "versus.es",
"implied_pct": 72.99
},
"draw": {
"odds": 5.05,
"bookmaker": "retabet",
"implied_pct": 19.8
},
"away": {
"odds": 8.75,
"bookmaker": "sportium.es",
"implied_pct": 11.43
}
},
"bookmaker_count": 9,
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "medium",
"label": "Moderate bookmaker coverage"
},
"bookmaker_count": 9,
"favorite_outcome": "home",
"consensus_spread_pct": {
"home": 2.96,
"draw": 11.52,
"away": 18.75
},
"line_movement": {
"period": {
"from": "2026-09-23T17:00:49+00:00",
"to": "2026-09-23T17:04:37+00:00"
},
"by_outcome": {
"home": {
"odds_change": -0.02,
"direction": "shortening"
},
"draw": {
"odds_change": -0.23,
"direction": "shortening"
},
"away": {
"odds_change": -0.61,
"direction": "shortening"
}
},
"strongest_move_outcome": "away",
"strongest_move_size": 0.61
},
"steam_index": 60,
"steam_label": "active"
},
"history": {
"snapshot_count": 4,
"delta": {
"best_odds_change": {
"home": -0.02,
"draw": -0.23,
"away": -0.61
},
"from": "2026-09-23T17:00:49+00:00",
"to": "2026-09-23T17:04:37+00:00"
}
},
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T17:04:37+00:00",
"from_cache": true
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32132/market+signal&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "sports-odds-api",
"competition": "epl",
"match_id": "xtmHKGT0",
"home": "Arsenal",
"away": "Leeds",
"market": "1x2",
"market_label": "Full time 1X2",
"best": {
"home": {
"odds": 1.39,
"bookmaker": "betmgm.us",
"implied_pct": 71.94
},
"draw": {
"odds": 5.2,
"bookmaker": "stake.com",
"implied_pct": 19.23
},
"away": {
"odds": 8.2,
"bookmaker": "stake.com",
"implied_pct": 12.2
}
},
"bookmaker_count": 4,
"bookmakers": [
{
"name": "bet365",
"selections": {
"home": 1.33,
"draw": 5,
"away": 8,
"implied_pct": {
"home": 75.19,
"draw": 20,
"away": 12.5
},
"edge_vs_best_pct": {
"home": -4.32,
"draw": -3.85,
"away": -2.44
}
},
"bookmaker_key": "bet365",
"overround_pct": 7.69
},
{
"name": "betmgm.us",
"selections": {
"home": 1.39,
"draw": 5,
"away": 7.5,
"implied_pct": {
"home": 71.94,
"draw": 20,
"away": 13.33
},
"edge_vs_best_pct": {
"home": 0,
"draw": -3.85,
"away": -8.54
}
},
"bookmaker_key": "betmgmus",
"overround_pct": 5.28
},
{
"name": "fanduel",
"selections": {
"home": 1.32,
"draw": 5.1,
"away": 8,
"implied_pct": {
"home": 75.76,
"draw": 19.61,
"away": 12.5
},
"edge_vs_best_pct": {
"home": -5.04,
"draw": -1.92,
"away": -2.44
}
},
"bookmaker_key": "fanduel",
"overround_pct": 7.87
},
{
"name": "stake.com",
"selections": {
"home": 1.35,
"draw": 5.2,
"away": 8.2,
"implied_pct": {
"home": 74.07,
"draw": 19.23,
"away": 12.2
},
"edge_vs_best_pct": {
"home": -2.88,
"draw": 0,
"away": 0
}
},
"bookmaker_key": "stakecom",
"overround_pct": 5.5
}
],
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "low",
"label": "Limited bookmakers — treat movement cautiously"
},
"bookmaker_count": 4,
"favorite_outcome": "home",
"consensus_spread_pct": {
"home": 5.17,
"draw": 3.92,
"away": 8.92
},
"line_movement": {
"period": {
"from": "2026-09-23T17:04:37+00:00",
"to": "2026-09-23T17:07:24+00:00"
},
"by_outcome": {
"home": {
"odds_change": 0.02,
"direction": "drifting"
},
"draw": {
"odds_change": 0.15,
"direction": "drifting"
},
"away": {
"odds_change": -0.55,
"direction": "shortening"
}
},
"strongest_move_outcome": "away",
"strongest_move_size": 0.55
},
"steam_index": 52,
"steam_label": "active"
},
"history": {
"snapshot_count": 5,
"delta": {
"best_odds_change": {
"home": 0.02,
"draw": 0.15,
"away": -0.55
},
"from": "2026-09-23T17:04:37+00:00",
"to": "2026-09-23T17:07:24+00:00"
},
"recent_snapshots": [
{
"recorded_at": "2026-09-23T16:48:55+00:00",
"market": "1x2",
"bookmaker_count": 9,
"best": {
"home": {
"odds": 1.37,
"bookmaker": "versus.es",
"implied_pct": 72.99
},
"draw": {
"odds": 5.05,
"bookmaker": "retabet",
"implied_pct": 19.8
},
"away": {
"odds": 8.75,
"bookmaker": "sportium.es",
"implied_pct": 11.43
}
}
},
{
"recorded_at": "2026-09-23T16:54:00+00:00",
"market": "1x2",
"bookmaker_count": 14,
"best": {
"home": {
"odds": 1.39,
"bookmaker": "bwin",
"implied_pct": 71.94
},
"draw": {
"odds": 5.28,
"bookmaker": "Betfair",
"implied_pct": 18.94
},
"away": {
"odds": 9.36,
"bookmaker": "Betfair",
"implied_pct": 10.68
}
}
},
{
"recorded_at": "2026-09-23T17:00:49+00:00",
"market": "1x2",
"bookmaker_count": 14,
"best": {
"home": {
"odds": 1.39,
"bookmaker": "bwin",
"implied_pct": 71.94
},
"draw": {
"odds": 5.28,
"bookmaker": "Betfair",
"implied_pct": 18.94
},
"away": {
"odds": 9.36,
"bookmaker": "Betfair",
"implied_pct": 10.68
}
}
},
{
"recorded_at": "2026-09-23T17:04:37+00:00",
"market": "1x2",
"bookmaker_count": 9,
"best": {
"home": {
"odds": 1.37,
"bookmaker": "versus.es",
"implied_pct": 72.99
},
"draw": {
"odds": 5.05,
"bookmaker": "retabet",
"implied_pct": 19.8
},
"away": {
"odds": 8.75,
"bookmaker": "sportium.es",
"implied_pct": 11.43
}
}
},
{
"recorded_at": "2026-09-23T17:07:24+00:00",
"market": "1x2",
"bookmaker_count": 4,
"best": {
"home": {
"odds": 1.39,
"bookmaker": "betmgm.us",
"implied_pct": 71.94
},
"draw": {
"odds": 5.2,
"bookmaker": "stake.com",
"implied_pct": 19.23
},
"away": {
"odds": 8.2,
"bookmaker": "stake.com",
"implied_pct": 12.2
}
}
}
]
},
"cache": {
"ttl_seconds": 120,
"cached_at": "2026-09-23T17:07:24+00:00",
"from_cache": false
}
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32133/match+analysis+bundle&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY'
{
"source": "sports-odds-api",
"competition": "epl",
"count": 5,
"matches": [
{
"match_id": "xtmHKGT0",
"home": "Arsenal",
"away": "Leeds",
"kickoff_iso": "2026-10-10T12:30:00+00:00",
"best": {
"home": {
"odds": 1.39,
"bookmaker": "betmgm.us",
"implied_pct": 71.94
},
"draw": {
"odds": 5.2,
"bookmaker": "stake.com",
"implied_pct": 19.23
},
"away": {
"odds": 8.2,
"bookmaker": "stake.com",
"implied_pct": 12.2
}
},
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "low",
"label": "Limited bookmakers — treat movement cautiously"
},
"bookmaker_count": 4,
"favorite_outcome": "home",
"consensus_spread_pct": {
"home": 5.17,
"draw": 3.92,
"away": 8.92
},
"line_movement": {
"period": {
"from": "2026-09-23T17:04:37+00:00",
"to": "2026-09-23T17:07:24+00:00"
},
"by_outcome": {
"home": {
"odds_change": 0.02,
"direction": "drifting"
},
"draw": {
"odds_change": 0.15,
"direction": "drifting"
},
"away": {
"odds_change": -0.55,
"direction": "shortening"
}
},
"strongest_move_outcome": "away",
"strongest_move_size": 0.55
},
"steam_index": 52,
"steam_label": "active"
}
},
{
"match_id": "p6jPIfbD",
"home": "Aston Villa",
"away": "Brentford",
"kickoff_iso": "2026-10-10T15:00:00+00:00",
"best": {
"home": {
"odds": 2.68,
"bookmaker": "betinasia",
"implied_pct": 37.31
},
"draw": {
"odds": 3.7,
"bookmaker": "betinasia",
"implied_pct": 27.03
},
"away": {
"odds": 2.63,
"bookmaker": "888sport",
"implied_pct": 38.02
}
},
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "high",
"label": "Deep comparator coverage"
},
"bookmaker_count": 14,
"favorite_outcome": "away",
"consensus_spread_pct": {
"home": 6.95,
"draw": 8.45,
"away": 9.15
},
"line_movement": {
"period": {
"from": "2026-09-23T16:48:56+00:00",
"to": "2026-09-23T17:06:12+00:00"
},
"by_outcome": {
"home": {
"odds_change": 0.07,
"direction": "drifting"
},
"draw": {
"odds_change": 0.15,
"direction": "drifting"
},
"away": {
"odds_change": 0,
"direction": "stable"
}
},
"strongest_move_outcome": "draw",
"strongest_move_size": 0.15
},
"steam_index": 41,
"steam_label": "active"
}
},
{
"match_id": "hQ2NzTJb",
"home": "Manchester Utd",
"away": "Tottenham",
"kickoff_iso": "2026-10-10T17:30:00+00:00",
"best": {
"home": {
"odds": 1.74,
"bookmaker": "Betfair",
"implied_pct": 57.47
},
"draw": {
"odds": 4.45,
"bookmaker": "betinasia",
"implied_pct": 22.47
},
"away": {
"odds": 4.55,
"bookmaker": "betsson",
"implied_pct": 21.98
}
},
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "high",
"label": "Deep comparator coverage"
},
"bookmaker_count": 14,
"favorite_outcome": "home",
"consensus_spread_pct": {
"home": 4.71,
"draw": 13.17,
"away": 12.87
},
"line_movement": {
"period": {
"from": "2026-09-23T16:49:00+00:00",
"to": "2026-09-23T17:06:15+00:00"
},
"by_outcome": {
"home": {
"odds_change": 0.04,
"direction": "drifting"
},
"draw": {
"odds_change": 0.15,
"direction": "drifting"
},
"away": {
"odds_change": 0.05,
"direction": "drifting"
}
},
"strongest_move_outcome": "draw",
"strongest_move_size": 0.15
},
"steam_index": 41,
"steam_label": "active"
}
},
{
"match_id": "ld8jMT45",
"home": "Crystal Palace",
"away": "Nottingham",
"kickoff_iso": "2026-10-11T14:00:00+00:00",
"best": {
"home": {
"odds": 2.7,
"bookmaker": "bet365",
"implied_pct": 37.04
},
"draw": {
"odds": 3.4,
"bookmaker": "fanduel",
"implied_pct": 29.41
},
"away": {
"odds": 2.7,
"bookmaker": "stake.com",
"implied_pct": 37.04
}
},
"market_signal": {
"disclaimer": "Market activity proxy from odds movement and bookmaker depth — not betting volume in currency.",
"liquidity": {
"tier": "low",
"label": "Limited bookmakers — treat movement cautiously"
},
"bookmaker_count": 3,
"favorite_outcome": "home",
"consensus_spread_pct": {
"home": 5.71,
"draw": 12.5,
"away": 2.63
},
"line_movement": {
"period": {
"from": "2026-09-23T16:49:03+00:00",
"to": "2026-09-23T17:06:17+00:00"
},
"by_outcome": {
"home": {
"odds_change": 0,
"direction": "stable"
},
"draw": {
"odds_change": 0,
"direction": "stable"
},
"away": {
"odds_change": 0,
"direction": "stable"
}
},
"strongest_move_outcome": null,
"strongest_move_size": 0
},
"steam_index": 3,
"steam_label": "flat"
}
},
{
"match_id": "p0aFxkkn",
"home": "Liverpool",
"away": "Manchester City",
"kickoff_iso": "2026-10-11T16:30:00+00:00",
"best": {
"home": {
"odds": 2.8,
"bookmaker": "stake.com",
"implied_pct": 35.71
},
"draw": {
"odds": 3.7,
"bookmaker": "fanduel"
}
}
}
],
"_note": "Response truncated for documentation purposes"
}
curl --location --request GET 'https://zylalabs.com/api/13931/sports+odds+api/32134/competition+board' --header 'Authorization: Bearer YOUR_API_KEY'
साइन अप करने के बाद, प्रत्येक डेवलपर को एक पर्सनल API एक्सेस की असाइन की जाती है, जो अक्षरों और अंकों का एक यूनिक संयोजन होता है, जिसका उपयोग हमारे API एंडपॉइंट तक पहुंचने के लिए किया जाता है। प्रमाणीकरण के लिए खेल के अवसर API के साथ बस अपने बेयरर टोकन को Authorization हेडर में शामिल करें।
| हेडर | विवरण |
|---|---|
Authorization
|
आवश्यक
होना चाहिए Bearer access_key. जब आप सब्सक्राइब हों तो ऊपर "Your API Access Key" देखें।
|
कोई लंबी अवधि की प्रतिबद्धता नहीं। कभी भी अपग्रेड, डाउनग्रेड या कैंसल करें। फ्री ट्रायल में 50 रिक्वेस्ट तक शामिल हैं।
(वार्षिक बिलिंग के साथ 2 महीने बचाएँ 🎉)
प्रत्येक एंडपॉइंट फुटबॉल ऑड्स और लाइव स्कोर से संबंधित विशिष्ट डेटा लौटाता है उदाहरण के लिए सोफा स्कोर लाइव फुटबॉल इवेंट्स एंडपॉइंट खेल के दौरान इवेंट विवरण प्रदान करता है जबकि मैच ऑड्स 1X2 एंडपॉइंट सामान्यीकृत ऑड्स निहित संभावनाएं और बुकमेकर जानकारी लौटाता है
मुख्य क्षेत्र.endpoint के अनुसार भिन्न होते हैं उदाहरण के लिए मैच ऑड्स 1X2.endpoint में match_id, bookmaker_count और selections (होम, ड्रॉ, अपवाद ऑड्स) जैसे क्षेत्र शामिल होते हैं FlashScore मैच सांख्यिकी.endpoint में सांख्यिकी जैसे कब्जा और कुल शॉट शामिल होते हैं
संदेश डेटा JSON प्रारूप में संरचित है जो नेस्टेड ऑब्जेक्ट्स में व्यवस्थित है उदाहरण के लिए मैच विवरण एंडपॉइंट में घरेलू और मेहमान टीमों स्कोर टूर्नामेंट विवरण और मेटाडेटा के लिए अनुभाग शामिल हैं जिससे विशिष्ट जानकारी तक आसान पहुंच मिलती है
पैरामीटर.endpoint के अनुसार भिन्न होते हैं मैच ऑड्स तुलना.endpoint के लिए उपयोगकर्ता प्रतिस्पर्धा बाज़ार प्रकार (1x2 ou25 btts) और फ़ील्ड (पूर्ण या सर्वोत्तम) निर्दिष्ट कर सकते हैं यह उपयोगकर्ता की आवश्यकताओं के आधार पर अनुकूलित डेटा अनुरोध करने की अनुमति देता है
डेटा कई प्रदाताओं से लिया गया है जिनमें सोफा स्कोर और फ्लैश स्कोर शामिल हैं प्रत्येक स्रोत का उल्लेख प्रतिक्रिया में किया गया है ताकि डेटा की उत्पत्ति के बारे में पारदर्शिता सुनिश्चित की जा सके जो उपयोगकर्ताओं को विश्वसनीयता का आकलन करने में मदद करता है
विशिष्ट उपयोग के मामलों में खेल सट्टेबाजी विश्लेषण लाइव स्कोर ट्रैकिंग और प्रतिस्पर्धात्मक ऑड्स की तुलना शामिल हैं डेवलपर्स डेटा का उपयोग वास्तविक समय के खेल अंतर्दृष्टि सट्टेबाजी रणनीतियों और बाजार के रुझानों पर केंद्रित अनुप्रयोगों के लिए कर सकते हैं
उपयोगकर्ता अपने अनुप्रयोगों के लिए प्रासंगिक जानकारी निकालने के लिए संरचित JSON प्रतिक्रियाओं का लाभ उठा सकते हैं उदाहरण के लिए वे ऑड्स के रूझानों का विश्लेषण कर सकते हैं बुकमाकर के प्रस्तावों की तुलना कर सकते हैं या उपयोगकर्ता इंटरफेस में लाइव मैच के आंकड़े प्रदर्शित कर सकते हैं
डेटा की सटीकता को विश्वसनीय स्रोतों और गुणवत्ता जांचों से नियमित अपडेट के माध्यम से बनाए रखा जाता है प्रत्येक स्रोत की स्थिति एपीआई मेटाडेटा में संकेतित होती है जिससे उपयोगकर्ता डेटा की विश्वसनीयता और ताजगी के बारे में अवगत रहते हैं