{
"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/13939/flashscore+match+statistics+data+api/32238/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/13939/flashscore+match+statistics+data+api/32239/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/13939/flashscore+match+statistics+data+api/32240/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/13939/flashscore+match+statistics+data+api/32241/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/13939/flashscore+match+statistics+data+api/32242/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/13939/flashscore+match+statistics+data+api/32243/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/13939/flashscore+match+statistics+data+api/32244/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/13939/flashscore+match+statistics+data+api/32245/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/13939/flashscore+match+statistics+data+api/32246/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/13939/flashscore+match+statistics+data+api/32247/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/13939/flashscore+match+statistics+data+api/32248/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/13939/flashscore+match+statistics+data+api/32249/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/13939/flashscore+match+statistics+data+api/32250/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/13939/flashscore+match+statistics+data+api/32251/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/13939/flashscore+match+statistics+data+api/32252/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/13939/flashscore+match+statistics+data+api/32253/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/13939/flashscore+match+statistics+data+api/32254/competition+board' --header 'Authorization: Bearer YOUR_API_KEY'
注册后,每个开发者都会被分配一个个人 API 访问密钥,这是一个唯一的字母和数字组合,用于访问我们的 API 端点。要使用 FlashScore Match Statistics Data API 进行身份验证,只需在 Authorization 标头中包含您的 bearer token。
| 标头 | 描述 |
|---|---|
授权
|
必需
应为 Bearer access_key. 订阅后,请查看上方的"您的 API 访问密钥"。
|
无长期承诺。随时升级、降级或取消。 免费试用包括最多 50 个请求。
(年度计费可节省 2 个月 🎉)
This API provides football betting prices and match context before and during a game. It covers football only: the Premier League, La Liga, Serie A, and the UEFA Champions League.
Before kickoff, prices from several bookmakers are shown for one fixture, either as a full board or as the best price for each outcome. Markets are the full-time result (home, draw, away), over or under 2.5 goals, and both teams to score. Each line includes decimal odds, the bookmaker, implied probability, and how the price compares with the best line. These figures describe published odds. They are not a prediction or a measure of money traded. Prices can move, recent checks are cached, and earlier snapshots show how a line changed.
During the match, live games and live full-time prices sit next to the score, separate from the pre-match board. Match context adds detail, statistics, and a period summary, such as possession, shots, cards, and goals. Context does not include betting prices, and a bookmaker reference is not the same as a live-score or live-odds reference.
每个端点返回与足球赔率和实时比分相关的特定数据 例如 SofaScore 实时足球赛事端点提供比赛中的事件细节而 Match odds 1X2 端点返回标准化赔率、隐含概率和博彩公司信息
关键字段因端点而异。例如,1X2比赛赔率端点包括如match_id、bookmaker_count和选择(主场、平局、客场赔率)等字段。FlashScore比赛统计端点包括如控球率和总射门等统计数据
响应数据采用JSON格式结构化,组织为嵌套对象。例如,比赛详细信息端点包括主队和客队、比分、赛事详情和元数据的部分,可方便地访问特定信息
参数因端点而异 对于比赛赔率比较端点 用户可以指定竞争、市场类型(1x2、ou25、btts)和字段(完整或最佳) 这允许根据用户需求量身定制数据请求
数据来自多个提供商,包括SofaScore和FlashScore。每个来源在回应中都有注明,确保透明度,帮助用户评估可靠性
典型的使用案例包括体育博彩分析 实时比分跟踪 和竞争赔率比较 开发者可以利用这些数据用于专注于实时体育洞察 博彩策略和市场趋势的应用程序
用户可以利用结构化的JSON响应提取相关信息以供其应用程序使用 例如,他们可以分析赔率趋势 对比博彩公司提供的服务 或在用户界面中显示实时比赛统计数据
数据准确性通过来自可靠来源的定期更新和质量检查得以保持 每个来源的状态在API元数据中指示 确保用户了解数据的可靠性和时效性