{
"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/13933/flashscore+football+api/32136/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/13933/flashscore+football+api/32137/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/13933/flashscore+football+api/32138/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/13933/flashscore+football+api/32139/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/13933/flashscore+football+api/32140/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/13933/flashscore+football+api/32141/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/13933/flashscore+football+api/32142/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/13933/flashscore+football+api/32143/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/13933/flashscore+football+api/32144/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/13933/flashscore+football+api/32145/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/13933/flashscore+football+api/32146/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/13933/flashscore+football+api/32147/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/13933/flashscore+football+api/32148/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/13933/flashscore+football+api/32149/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/13933/flashscore+football+api/32150/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/13933/flashscore+football+api/32152/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/13933/flashscore+football+api/32154/competition+board' --header 'Authorization: Bearer YOUR_API_KEY'
Após se cadastrar, cada desenvolvedor recebe uma chave de acesso à API pessoal, uma combinação única de letras e dígitos para acessar nosso endpoint de API. Para autenticar com a FlashScore Football API basta incluir seu token Bearer no cabeçalho Authorization.
| Cabeçalho | Descrição |
|---|---|
Authorization
|
Obrigatório
Deve ser Bearer access_key. Veja "Sua chave de acesso à API" acima quando você estiver inscrito.
|
Sem compromisso de longo prazo. Faça upgrade, downgrade ou cancele a qualquer momento. O teste gratuito inclui até 50 requisições.
(Economize 2 meses com cobrança anual 🎉)
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.
Cada endpoint retorna dados específicos relacionados a odds de futebol e resultados ao vivo Por exemplo o endpoint de eventos de futebol ao vivo do SofaScore fornece detalhes de eventos em andamento enquanto o endpoint de odds para partida 1X2 retorna odds normalizadas probabilidades implícitas e informações sobre as casas de apostas
Os campos-chave variam conforme o endpoint Por exemplo o endpoint de odds de partida 1X2 inclui campos como match_id bookmaker_count e seleções (odds de casa empate e fora) O endpoint de estatísticas de partida do FlashScore inclui estatísticas como posse de bola e total de chutes
Os dados de resposta são estruturados em formato JSON, organizados em objetos aninhados. Por exemplo, o endpoint de detalhes da partida inclui seções para equipes da casa e visitantes, pontuações, detalhes do torneio e metadados, permitindo o acesso fácil a informações específicas
Os parâmetros variam conforme o ponto final Para o ponto final de comparação de odds de partidas os usuários podem especificar competição tipo de mercado (1x2 ou25 btts) e campos (completo ou melhor) Isso permite solicitações de dados personalizadas com base nas necessidades do usuário
Os dados são provenientes de vários fornecedores, incluindo SofaScore e FlashScore. Cada fonte é mencionada na resposta, garantindo transparência sobre a origem dos dados, o que ajuda os usuários a avaliar a confiabilidade
Casos de uso típicos incluem análise de apostas esportivas rastreamento de pontuações ao vivo e comparação de odds competitivas Os desenvolvedores podem usar os dados para aplicativos focados em insights esportivos em tempo real estratégias de apostas e tendências de mercado
Os usuários podem aproveitar as respostas JSON estruturadas para extrair informações relevantes para suas aplicações Por exemplo eles podem analisar tendências de odds comparar ofertas de casas de apostas ou exibir estatísticas de partidas ao vivo nas interfaces dos usuários
A precisão dos dados é mantida através de atualizações regulares de fontes confiáveis e verificações de qualidade O status de cada fonte é indicado nos metadados da API garantindo que os usuários estejam cientes da confiabilidade e atualidade dos dados