Football Betting Lines API

API ID 13938

Access real-time sports betting odds effortlessly with our Odds Fetcher API, designed for bettors and enthusiasts alike.

API Documentation

Endpoints

Request
Sources, TTLs, endpoint index. Same auth as odds routes.
Endpoint ID: 32221
GET https://zylalabs.com/api/13938/football+betting+lines+api/32221/api+metadata
INPUT PARAMETERS

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{
    "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"
}
API Metadata — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32221/api+metadata' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
In-play football events for odds context. Use event id in match odds call.
Endpoint ID: 32222
GET https://zylalabs.com/api/13938/football+betting+lines+api/32222/sofascore+live+football+events
INPUT PARAMETERS

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{
    "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"
}
SofaScore Live football events — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32222/sofascore+live+football+events' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Normalized 1X2 with best line, implied probability and cache metadata.
Endpoint ID: 32223
GET https://zylalabs.com/api/13938/football+betting+lines+api/32223/sofascore+match+odds+1x2
INPUT PARAMETERS

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{
    "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
    }
}
SofaScore Match odds 1X2 — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32223/sofascore+match+odds+1x2' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Live football feed (FlashScore ninja feeds via proxy). Match ids for detail/stats/summary.
Endpoint ID: 32224
GET https://zylalabs.com/api/13938/football+betting+lines+api/32224/flashscore+football+live+matches
INPUT PARAMETERS

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{
    "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"
}
FlashScore Football live matches — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32224/flashscore+football+live+matches' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Match detail from day feed + meta. ID from /v1/flashscore/live.
Endpoint ID: 32225
GET https://zylalabs.com/api/13938/football+betting+lines+api/32225/flashscore+match+detail
INPUT PARAMETERS

FlashScore Match detail — Endpoint Features

Object Description
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "source": "flashscore",
    "source_event_id": "OUrBkM6m",
    "sport": "football",
    "status_code": 3,
    "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": 0,
        "away": 2
    },
    "tournament": {
        "name": "АВСТРИЯ: Вена"
    },
    "meta": {
        "status_code": 3,
        "last_update_timestamp": 1789153771,
        "kickoff_timestamp": 1790182800,
        "is_live": false
    },
    "cache": {
        "hit": false,
        "ttl_seconds": 20
    }
}
FlashScore Match detail — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32225/flashscore+match+detail&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
ed match statistics (df_st feed) for a FlashScore match.
Endpoint ID: 32226
GET https://zylalabs.com/api/13938/football+betting+lines+api/32226/flashscore+match+statistics
INPUT PARAMETERS

FlashScore Match statistics — Endpoint Features

Object Description
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "source": "flashscore",
    "source_event_id": "C2VSgiFl",
    "count": 42,
    "statistics": [
        {
            "period": "Match",
            "group": "Top stats",
            "stat_id": "12",
            "name": "Ball possession",
            "home": "50%",
            "away": "50%"
        },
        {
            "period": "Match",
            "group": "Top stats",
            "stat_id": "34",
            "name": "Total shots",
            "home": "17",
            "away": "9"
        },
        {
            "period": "Match",
            "group": "Top stats",
            "stat_id": "13",
            "name": "Shots on target",
            "home": "7",
            "away": "7"
        },
        {
            "period": "Match",
            "group": "Top stats",
            "stat_id": "16",
            "name": "Corner kicks",
            "home": "4",
            "away": "8"
        },
        {
            "period": "Match",
            "group": "Top stats",
            "stat_id": "23",
            "name": "Yellow cards",
            "home": "3",
            "away": "2"
        },
        {
            "period": "Match",
            "group": "Shots",
            "stat_id": "34",
            "name": "Total shots",
            "home": "17",
            "away": "9"
        },
        {
            "period": "Match",
            "group": "Shots",
            "stat_id": "13",
            "name": "Shots on target",
            "home": "7",
            "away": "7"
        },
        {
            "period": "Match",
            "group": "Shots",
            "stat_id": "14",
            "name": "Shots off target",
            "home": "6",
            "away": "1"
        },
        {
            "period": "Match",
            "group": "Shots",
            "stat_id": "158",
            "name": "Ударов заблокировано",
            "home": "4",
            "away": "1"
        },
        {
            "period": "Match",
            "group": "Attack",
            "stat_id": "16",
            "name": "Corner kicks",
            "home": "4",
            "away": "8"
        },
        {
            "period": "Match",
            "group": "Attack",
            "stat_id": "17",
            "name": "Offsides",
            "home": "2",
            "away": "2"
        },
        {
            "period": "Match",
            "group": "Attack",
            "stat_id": "15",
            "name": "Fouls",
            "home": "14",
            "away": "17"
        },
        {
            "period": "Match",
            "group": "Passes",
            "stat_id": "18",
            "name": "Passes",
            "home": "21",
            "away": "20"
        },
        {
            "period": "Match",
            "group": "Defence",
            "stat_id": "21",
            "name": "Goalkeeper saves",
            "home": "15",
            "away": "12"
        },
        {
            "period": "1st half",
            "group": "Top stats",
            "stat_id": "12",
            "name": "Ball possession",
            "home": "59%",
            "away": "41%"
        },
        {
            "period": "1st half",
            "group": "Top stats",
            "stat_id": "34",
            "name": "Total shots",
            "home": "6",
            "away": "4"
        },
        {
            "period": "1st half",
            "group": "Top stats",
            "stat_id": "13",
            "name": "Shots on target",
            "home": "4",
            "away": "4"
        },
        {
            "period": "1st half",
            "group": "Top stats",
            "stat_id": "16",
            "name": "Corner kicks",
            "home": "2",
            "away": "1"
        },
        {
            "period": "1st half",
            "group": "Top stats",
            "stat_id": "23",
            "name": "Yellow cards",
            "home": "2",
            "away": "0"
        },
        {
            "period": "1st half",
            "group": "Shots",
            "stat_id": "34",
            "name": "Total shots",
            "home": "6",
            "away": "4"
        },
        {
            "period": "1st half",
            "group": "Shots",
            "stat_id": "13",
            "name": "Shots on target",
            "home": "4",
            "away": "4"
        },
        {
            "period": "1st half",
            "group": "Shots",
            "stat_id": "14",
            "name": "Shots off target",
            "home": "1",
            "away": "0"
        },
        {
            "period": "1st half",
            "group": "Shots",
            "stat_id": "158",
            "name": "Ударов заблокировано",
            "home": "1",
            "away": "0"
        },
        {
            "period": "1st half",
            "group": "Attack",
            "stat_id": "16",
            "name": "Corner kicks",
            "home": "2",
            "away": "1"
        },
        {
            "period": "1st half",
            "group": "Attack",
            "stat_id": "17",
            "name": "Offsides",
            "home": "0",
            "away": "2"
        },
        {
            "period": "1st half",
            "group": "Attack",
            "stat_id": "15",
            "name": "Fouls",
            "home": "9",
            "away": "5"
        },
        {
            "period": "1st half",
            "group": "Passes",
            "stat_id": "18",
            "name": "Passes",
            "home": "14",
            "away": "8"
        },
        {
            "period": "1st half",
            "group": "Defence",
            "stat_id": "21",
            "name": "Goalkeeper saves",
            "home": "5",
            "away": "7"
        },
        {
            "period": "2nd half",
            "group": "Top stats",
            "stat_id": "12",
            "name": "Ball possession",
            "home": "41%",
            "away": "59%"
        },
        {
            "period": "2nd half",
            "group": "Top stats",
            "stat_id": "34",
            "name": "Total shots",
            "home": "11",
            "away": "5"
        },
        {
            "period": "2nd half",
            "group": "Top stats",
            "stat_id": "13",
            "name": "Shots on target",
            "home": "3",
            "away": "3"
        },
        {
            "period": "2nd half",
            "group": "Top stats",
            "stat_id": "16",
            "name": "Corner kicks",
            "home": "2",
            "away": "7"
        },
        {
            "period": "2nd half",
            "group": "Top stats",
            "stat_id": "23",
            "name": "Yellow cards",
            "home": "1",
            "away": "2"
        },
        {
            "period": "2nd half",
            "group": "Shots",
            "stat_id": "34",
            "name": "Total shots",
            "home": "11",
            "away": "5"
        },
        {
            "period": "2nd half",
            "group": "Shots",
            "stat_id": "13",
            "name": "Shots on target",
            "home": "3",
            "away": "3"
        },
        {
            "period": "2nd half",
            "group": "Shots",
            "stat_id": "14",
            "name": "Shots off target",
            "home": "5",
            "away": "1"
        },
        {
            "period": "2nd half",
            "group": "Shots",
            "stat_id": "158",
            "name": "Ударов заблокировано",
            "home": "3",
            "away": "1"
        },
        {
            "period": "2nd half",
            "group": "Attack",
            "stat_id": "16",
            "name": "Corner kicks",
            "home": "2",
            "away": "7"
        },
        {
            "period": "2nd half",
            "group": "Attack",
            "stat_id": "17",
            "name": "Offsides",
            "home": "2",
            "away": "0"
        },
        {
            "period": "2nd half",
            "group": "Attack",
            "stat_id": "15",
            "name": "Fouls",
            "home": "5",
            "away": "12"
        },
        {
            "period": "2nd half",
            "group": "Passes",
            "stat_id": "18",
            "name": "Passes",
            "home": "7",
            "away": "12"
        },
        {
            "period": "2nd half",
            "group": "Defence",
            "stat_id": "21",
            "name": "Goalkeeper saves",
            "home": "10",
            "away": "5"
        }
    ],
    "cache": {
        "hit": true,
        "ttl_seconds": 20
    }
}
FlashScore Match statistics — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32226/flashscore+match+statistics&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Incidents / summary by period (goals, cards, etc.).
Endpoint ID: 32227
GET https://zylalabs.com/api/13938/football+betting+lines+api/32227/flashscore+match+summary
INPUT PARAMETERS

FlashScore Match summary — Endpoint Features

Object Description
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "source": "flashscore",
    "source_event_id": "C2VSgiFl",
    "count": 18,
    "periods": [
        {
            "name": "1-й тайм",
            "score": {
                "home": 2,
                "away": 1
            },
            "incidents": [
                {
                    "id": "0OGoSBSg",
                    "minute": "4'",
                    "team_side": 1,
                    "type_code": 10,
                    "label": "Пенальти",
                    "player": "Bounkong B.",
                    "player_id": "rZsGa1l2",
                    "player_url": "/player/bounkong-bounphachan/rZsGa1l2/",
                    "score_home": 1,
                    "score_away": 0,
                    "reason": ""
                },
                {
                    "id": "nmRsiSK5",
                    "minute": "24'",
                    "team_side": 1,
                    "type_code": 8,
                    "label": "Голевой пас",
                    "player": "Sangvilay P.",
                    "player_id": "8UTnVQlC",
                    "player_url": "/player/sangvilay-photthavong/8UTnVQlC/",
                    "score_home": 2,
                    "score_away": 0,
                    "reason": ""
                },
                {
                    "id": "bowtIGtJ",
                    "minute": "30'",
                    "team_side": 1,
                    "type_code": 1,
                    "label": "Желтая карточка",
                    "player": "Bounkong B.",
                    "player_id": "rZsGa1l2",
                    "player_url": "/player/bounkong-bounphachan/rZsGa1l2/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "bNroj1h2",
                    "minute": "33'",
                    "team_side": 1,
                    "type_code": 1,
                    "label": "Желтая карточка",
                    "player": "Singsavang X.",
                    "player_id": "b7FHtuph",
                    "player_url": "/player/singsavang-xayasith/b7FHtuph/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "2yDye5dK",
                    "minute": "45+1'",
                    "team_side": 2,
                    "type_code": 8,
                    "label": "Голевой пас",
                    "player": "Ali Rahman A.",
                    "player_id": "tKQ81Oci",
                    "player_url": "/player/ali-rahman-azwan/tKQ81Oci/",
                    "score_home": 2,
                    "score_away": 1,
                    "reason": ""
                }
            ]
        },
        {
            "name": "2-й тайм",
            "score": {
                "home": 1,
                "away": 0
            },
            "incidents": [
                {
                    "id": "IwhK6HDM",
                    "minute": "46'",
                    "team_side": 1,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Keonuchanh K.",
                    "player_id": "vNLd5lYF",
                    "player_url": "/player/keonuchanh-khonesavanh/vNLd5lYF/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "h2PvfvUG",
                    "minute": "46'",
                    "team_side": 1,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Chernvanglien B.",
                    "player_id": "xvutlpDE",
                    "player_url": "/player/chernvanglien-bounchay/xvutlpDE/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "8A9uvuKc",
                    "minute": "57'",
                    "team_side": 2,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Ismail N.",
                    "player_id": "nRYMcg7U",
                    "player_url": "/player/ismail-nazirrudin/nRYMcg7U/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "M3lGS5HD",
                    "minute": "58'",
                    "team_side": 1,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Phommachanh S.",
                    "player_id": "A1xuu7x1",
                    "player_url": "/player/phommachan-sonesanith/A1xuu7x1/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "S6MC6tHF",
                    "minute": "61'",
                    "team_side": 1,
                    "type_code": 1,
                    "label": "Желтая карточка",
                    "player": "Thongkhamsavath D.",
                    "player_id": "zmtZEOO4",
                    "player_url": "/player/thongkhamsavath-damoth/zmtZEOO4/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "Q16SkChc",
                    "minute": "66'",
                    "team_side": 1,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Angot R.",
                    "player_id": "KCqx8yHG",
                    "player_url": "/player/angot-roman/KCqx8yHG/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "MVKjJmy2",
                    "minute": "66'",
                    "team_side": 2,
                    "type_code": 1,
                    "label": "Желтая карточка",
                    "player": "Syamra H.",
                    "player_id": "rTPMHIZq",
                    "player_url": "/player/naqiuddin-haziq/rTPMHIZq/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "WdU72kx3",
                    "minute": "67'",
                    "team_side": 1,
                    "type_code": 3,
                    "label": "Гол",
                    "player": "Chernvanglien B.",
                    "player_id": "xvutlpDE",
                    "player_url": "/player/chernvanglien-bounchay/xvutlpDE/",
                    "score_home": 3,
                    "score_away": 1,
                    "reason": ""
                },
                {
                    "id": "Gb58lHED",
                    "minute": "83'",
                    "team_side": 2,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Danial A.",
                    "player_id": "2TCOKzYg",
                    "player_url": "/player/azrin-danial/2TCOKzYg/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "8MZu3GT6",
                    "minute": "83'",
                    "team_side": 2,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Azman H.",
                    "player_id": "AcN7HxaM",
                    "player_url": "/player/azman-hanif/AcN7HxaM/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "lIMrL96k",
                    "minute": "87'",
                    "team_side": 2,
                    "type_code": 1,
                    "label": "Желтая карточка",
                    "player": "Ismail N.",
                    "player_id": "nRYMcg7U",
                    "player_url": "/player/ismail-nazirrudin/nRYMcg7U/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "lAQPK0C6",
                    "minute": "88'",
                    "team_side": 2,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Munawwar A.",
                    "player_id": "nymYuDkh",
                    "player_url": "/player/munawwar-ali/nymYuDkh/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                },
                {
                    "id": "KArA0xQb",
                    "minute": "89'",
                    "team_side": 1,
                    "type_code": 7,
                    "label": "Замена (уходит)",
                    "player": "Latsavong T.",
                    "player_id": "neoEHG4j",
                    "player_url": "/player/latsavong-thavisok/neoEHG4j/",
                    "score_home": null,
                    "score_away": null,
                    "reason": ""
                }
            ]
        }
    ],
    "cache": {
        "hit": false,
        "ttl_seconds": 20
    }
}
FlashScore Match summary — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32227/flashscore+match+summary&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Premier League fixture list with BetExplorer match_id, path, teams and kickoff when available.
Endpoint ID: 32228
GET https://zylalabs.com/api/13938/football+betting+lines+api/32228/comparator+epl+fixtures
INPUT PARAMETERS

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

This endpoint does not require any input parameters.

API EXAMPLE RESPONSE
JSON
{
    "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
    }
}
Comparator EPL fixtures — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32228/comparator+epl+fixtures' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Upcoming-oriented slice of fixtures for widgets and demos.
Endpoint ID: 32229
GET https://zylalabs.com/api/13938/football+betting+lines+api/32229/comparator+featured+epl
INPUT PARAMETERS

Comparator Featured EPL — Endpoint Features

Object Description
limit Required Enter the number of results

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

limit
API EXAMPLE RESPONSE
JSON
{
    "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
    }
}
Comparator Featured EPL — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32229/comparator+featured+epl?limit=1' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Resolve match_id/path from home and away names. Optional include=best.
Endpoint ID: 32231
GET https://zylalabs.com/api/13938/football+betting+lines+api/32231/comparator+lookup+by+team+names
INPUT PARAMETERS

Comparator Lookup by team names — Endpoint Features

Object Description
away Required Enter the name of the visiting team
home Required Enter the name of the home team

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

away
home
API EXAMPLE RESPONSE
JSON
{
    "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
    }
}
Comparator Lookup by team names — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32231/comparator+lookup+by+team+names?away=Leeds&home=Arsenal' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Multi-bookmaker odds. Query: competition, market (1x2, |ou25, btts), path, fields, format, bookmakers. Note: Fields parameter: full: Returns the odds for all bookmakers for the match. best: Returns only the best odds for each outcome. Market parameter: 1x2: final result—home win, draw, or away win. ou25: over or under 2.5 goals. btts: both teams to score—yes or no.
Endpoint ID: 32232
GET https://zylalabs.com/api/13938/football+betting+lines+api/32232/comparator+match+odds+comparison
INPUT PARAMETERS

Comparator Match odds comparison — Endpoint Features

Object Description
fields Required (full or best)
market Required (1x2, ou25 or btts)
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

fields
market
API EXAMPLE RESPONSE
JSON
{
    "source": "betexplorer",
    "competition": "epl",
    "match_id": "xtmHKGT0",
    "home": "Arsenal",
    "away": "Leeds",
    "market": "1x2",
    "bookmaker_count": 5,
    "best": {
        "home": {
            "odds": 1.4,
            "bookmaker": "interwetten.de",
            "implied_pct": 71.43
        },
        "draw": {
            "odds": 5,
            "bookmaker": "bet365",
            "implied_pct": 20
        },
        "away": {
            "odds": 9.5,
            "bookmaker": "neobet",
            "implied_pct": 10.53
        }
    },
    "cache": {
        "ttl_seconds": 120,
        "cached_at": "2026-09-24T11:33:53+00:00",
        "from_cache": true
    }
}
Comparator Match odds comparison — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32232/comparator+match+odds+comparison?fields=best&market=1x2&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Snapshots recorded on each fresh harvest; delta vs previous best.
Endpoint ID: 32233
GET https://zylalabs.com/api/13938/football+betting+lines+api/32233/comparator+odds+history
INPUT PARAMETERS

Comparator Odds history — Endpoint Features

Object Description
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "source": "betexplorer",
    "competition": "epl",
    "match_id": "xtmHKGT0",
    "market": "1x2",
    "count": 3,
    "snapshots": [
        {
            "recorded_at": "2026-09-23T18:15:02+00:00",
            "market": "1x2",
            "bookmaker_count": 9,
            "best": {
                "home": {
                    "odds": 1.39,
                    "bookmaker": "bwin",
                    "implied_pct": 71.94
                },
                "draw": {
                    "odds": 5,
                    "bookmaker": "bet365",
                    "implied_pct": 20
                },
                "away": {
                    "odds": 9,
                    "bookmaker": "betfred",
                    "implied_pct": 11.11
                }
            }
        },
        {
            "recorded_at": "2026-09-24T11:23:55+00:00",
            "market": "1x2",
            "bookmaker_count": 6,
            "best": {
                "home": {
                    "odds": 1.38,
                    "bookmaker": "lv bet",
                    "implied_pct": 72.46
                },
                "draw": {
                    "odds": 5.2,
                    "bookmaker": "lv bet",
                    "implied_pct": 19.23
                },
                "away": {
                    "odds": 8.7,
                    "bookmaker": "fuksiarz.pl",
                    "implied_pct": 11.49
                }
            }
        },
        {
            "recorded_at": "2026-09-24T11:33:53+00:00",
            "market": "1x2",
            "bookmaker_count": 5,
            "best": {
                "home": {
                    "odds": 1.4,
                    "bookmaker": "interwetten.de",
                    "implied_pct": 71.43
                },
                "draw": {
                    "odds": 5,
                    "bookmaker": "bet365",
                    "implied_pct": 20
                },
                "away": {
                    "odds": 9.5,
                    "bookmaker": "neobet",
                    "implied_pct": 10.53
                }
            }
        }
    ],
    "delta": {
        "best_odds_change": {
            "home": 0.02,
            "draw": -0.2,
            "away": 0.8
        },
        "from": "2026-09-24T11:23:55+00:00",
        "to": "2026-09-24T11:33:53+00:00"
    }
}
Comparator Odds history — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32233/comparator+odds+history&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Fixture + pre-match best + live SofaScore + market_signal + cross_line_gap (sin exchange v1).
Endpoint ID: 32234
GET https://zylalabs.com/api/13938/football+betting+lines+api/32234/unified+odds+by+team+names
INPUT PARAMETERS

Unified Odds by team names — Endpoint Features

Object Description
home Required Enter the name of the home team
away Required Enter the name of the visiting team

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

home
away
API EXAMPLE RESPONSE
JSON
{
    "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
    }
}
Unified Odds by team names — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32234/unified+odds+by+team+names?home=Arsenal&away=Leeds' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Steam index, line movement from history, liquidity proxy — not € volume.
Endpoint ID: 32235
GET https://zylalabs.com/api/13938/football+betting+lines+api/32235/market+signal
INPUT PARAMETERS

Market signal — Endpoint Features

Object Description
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "source": "sports-odds-api",
    "competition": "epl",
    "match_id": "xtmHKGT0",
    "home": "Arsenal",
    "away": "Leeds",
    "market": "1x2",
    "best": {
        "home": {
            "odds": 1.4,
            "bookmaker": "interwetten.de",
            "implied_pct": 71.43
        },
        "draw": {
            "odds": 5,
            "bookmaker": "bet365",
            "implied_pct": 20
        },
        "away": {
            "odds": 9.5,
            "bookmaker": "neobet",
            "implied_pct": 10.53
        }
    },
    "bookmaker_count": 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": 5,
        "favorite_outcome": "home",
        "consensus_spread_pct": {
            "home": 7.41,
            "draw": 6.19,
            "away": 20.29
        },
        "line_movement": {
            "period": {
                "from": "2026-09-24T11:23:55+00:00",
                "to": "2026-09-24T11:33:53+00:00"
            },
            "by_outcome": {
                "home": {
                    "odds_change": 0.02,
                    "direction": "drifting"
                },
                "draw": {
                    "odds_change": -0.2,
                    "direction": "shortening"
                },
                "away": {
                    "odds_change": 0.8,
                    "direction": "drifting"
                }
            },
            "strongest_move_outcome": "away",
            "strongest_move_size": 0.8
        },
        "steam_index": 50,
        "steam_label": "active"
    },
    "history": {
        "snapshot_count": 3,
        "delta": {
            "best_odds_change": {
                "home": 0.02,
                "draw": -0.2,
                "away": 0.8
            },
            "from": "2026-09-24T11:23:55+00:00",
            "to": "2026-09-24T11:33:53+00:00"
        }
    },
    "cache": {
        "ttl_seconds": 120,
        "cached_at": "2026-09-24T11:33:53+00:00",
        "from_cache": true
    }
}
Market signal — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32235/market+signal&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
All bookmakers, best, market_signal, recent snapshots.
Endpoint ID: 32236
GET https://zylalabs.com/api/13938/football+betting+lines+api/32236/match+analysis+bundle
INPUT PARAMETERS

Match analysis bundle — Endpoint Features

Object Description
match_id Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "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
    }
}
Match analysis bundle — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32236/match+analysis+bundle&match_id=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Request
Upcoming featured matches with best odds and signal per row.
Endpoint ID: 32237
GET https://zylalabs.com/api/13938/football+betting+lines+api/32237/competition+board
INPUT PARAMETERS

Competition board — Endpoint Features

Object Description
competition Required

Free test requests remaining: 3 of 3.


INPUT PARAMETERS

API EXAMPLE RESPONSE
JSON
{
    "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.38,
                    "bookmaker": "lv bet",
                    "implied_pct": 72.46
                },
                "draw": {
                    "odds": 5.2,
                    "bookmaker": "lv bet",
                    "implied_pct": 19.23
                },
                "away": {
                    "odds": 8.7,
                    "bookmaker": "fuksiarz.pl",
                    "implied_pct": 11.49
                }
            },
            "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": 6,
                "favorite_outcome": "home",
                "consensus_spread_pct": {
                    "home": 2.94,
                    "draw": 13.33,
                    "away": 23.08
                },
                "line_movement": {
                    "period": {
                        "from": "2026-09-23T18:15:02+00:00",
                        "to": "2026-09-24T11:23:55+00:00"
                    },
                    "by_outcome": {
                        "home": {
                            "odds_change": -0.01,
                            "direction": "shortening"
                        },
                        "draw": {
                            "odds_change": 0.2,
                            "direction": "drifting"
                        },
                        "away": {
                            "odds_change": -0.3,
                            "direction": "shortening"
                        }
                    },
                    "strongest_move_outcome": "away",
                    "strongest_move_size": 0.3
                },
                "steam_index": 35,
                "steam_label": "quiet"
            }
        },
        {
            "match_id": "p6jPIfbD",
            "home": "Aston Villa",
            "away": "Brentford",
            "kickoff_iso": "2026-10-10T15:00:00+00:00",
            "best": {
                "home": {
                    "odds": 2.6,
                    "bookmaker": "bet365",
                    "implied_pct": 38.46
                },
                "draw": {
                    "odds": 3.57,
                    "bookmaker": "admiralbet.rs",
                    "implied_pct": 28.01
                },
                "away": {
                    "odds": 2.55,
                    "bookmaker": "bet365",
                    "implied_pct": 39.22
                }
            },
            "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": 2,
                "favorite_outcome": "away",
                "consensus_spread_pct": {
                    "home": 3.13,
                    "draw": 4.88,
                    "away": 1.98
                },
                "line_movement": {
                    "period": {
                        "from": "2026-09-23T18:15:51+00:00",
                        "to": "2026-09-24T11:23:57+00:00"
                    },
                    "by_outcome": {
                        "home": {
                            "odds_change": -0.01,
                            "direction": "shortening"
                        },
                        "draw": {
                            "odds_change": 0.02,
                            "direction": "drifting"
                        },
                        "away": {
                            "odds_change": -0.08,
                            "direction": "shortening"
                        }
                    },
                    "strongest_move_outcome": "away",
                    "strongest_move_size": 0.08
                },
                "steam_index": 19,
                "steam_label": "quiet"
            }
        },
        {
            "match_id": "hQ2NzTJb",
            "home": "Manchester Utd",
            "away": "Tottenham",
            "kickoff_iso": "2026-10-10T17:30:00+00:00",
            "best": {
                "home": {
                    "odds": 1.75,
                    "bookmaker": "betnacional",
                    "implied_pct": 57.14
                },
                "draw": {
                    "odds": 4.2,
                    "bookmaker": "segurobet",
                    "implied_pct": 23.81
                },
                "away": {
                    "odds": 4.55,
                    "bookmaker": "betano.br",
                    "implied_pct": 21.98
                }
            },
            "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": 7,
                "favorite_outcome": "home",
                "consensus_spread_pct": {
                    "home": 4.68,
                    "draw": 7.41,
                    "away": 8
                },
                "line_movement": {
                    "period": {
                        "from": "2026-09-23T18:15:54+00:00",
                        "to": "2026-09-24T11:24:00+00:00"
                    },
                    "by_outcome": {
                        "home": {
                            "odds_change": 0.05,
                            "direction": "drifting"
                        },
                        "draw": {
                            "odds_change": 0,
                            "direction": "stable"
                        },
                        "away": {
                            "odds_change": 0.05,
                            "direction": "drifting"
                        }
                    },
                    "strongest_move_outcome": "home",
                    "strongest_move_size": 0.05
                },
                "steam_index": 18,
                "steam_label": "quiet"
            }
        },
        {
            "match_id": "ld8jMT45",
            "home": "Crystal Palace",
            "away": "Nottingham",
            "kickoff_iso": "2026-10-11T14:00:00+00:00",
            "best": {
                "home": {
                    "odds": 2.7,
                    "bookmaker": "Unibet",
                    "implied_pct": 37.04
                },
                "draw": {
                    "odds": 3.6,
                    "bookmaker": "betinasia",
                    "implied_pct": 27.78
                },
                "away": {
                    "odds": 2.75,
                    "bookmaker": "Betfair",
                    "implied_pct": 36.36
                }
            },
            "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": 13,
                "favorite_outcome": "home",
                "consensus_spread_pct": {
                    "home": 7.69,
                    "draw": 18.18,
                    "away": 5.99
                },
                "line_movement": {
                    "period": {
                        "from": "2026-09-23T18:15:57+00:00",
                        "to": "2026-09-24T11:24:05+00:00"
                    },
                    "by_outcome": {
                        "home": {
                            "odds_change": 0,
                            "direction": "stable"
                        },
                        "draw": {
                            "odds_change": 0.2,
                            "direction": "drifting"
                        },
                        "away": {
                            "odds_change": 0.05,
                            "direction": "drifting"
                        }
                    },
                    "strongest_move_outcome": "draw",
                    "strongest_move_size": 0.2
                },
                "steam_index": 43,
                "steam_label": "active"
            }
        },
        {
            "match_id": "p0aFxkkn",
            "home": "Liverpool",
            "away": "Manchester City",
            "kickoff_iso": "2026-10-11T16:30:00+00:00",
            "best": {
                "home": {
                    "odds": 2.85,
                    "bookmaker": "Unibet",
                    "implied_pct": 35.09
                },
                "draw": {
                    "odds": 3.85,
                    "bookmaker": "betinasia"
                }
            }
        }
    ],
    "_note": "Response truncated for documentation purposes"
}
Competition board — CODE SNIPPETS

curl --location --request GET 'https://zylalabs.com/api/13938/football+betting+lines+api/32237/competition+board&competition=Required' --header 'Authorization: Bearer YOUR_API_KEY' 


    

API Access Key & Authentication

After signing up, every developer is assigned a personal API access key, a unique combination of letters and digits provided to access to our API endpoint. To authenticate with the Football Betting Lines API simply include your bearer token in the Authorization header.

Headers
Header Description
Authorization Required Should be Bearer access_key. See "Your API Access Key" above when you are subscribed.

No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.

(Save 2 months with annual billing 🎉)

🚀 Enterprise Plan

Starts at
$ 10,000/Year


  • Custom Volume
  • Custom Rate Limit
  • Specialized Customer Support
  • Real-Time API Monitoring

Overview

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.

Football Betting Lines API FAQs

Each endpoint returns specific data related to football odds and live scores. For example, the SofaScore Live football events endpoint provides in-play event details, while the Match odds 1X2 endpoint returns normalized odds, implied probabilities, and bookmaker information.

Key fields vary by endpoint. For instance, the Match odds 1X2 endpoint includes fields like match_id, bookmaker_count, and selections (home, draw, away odds). The FlashScore Match statistics endpoint includes statistics like possession and total shots.

Response data is structured in JSON format, organized into nested objects. For example, the Match detail endpoint includes sections for home and away teams, scores, tournament details, and metadata, allowing for easy access to specific information.

Parameters vary by endpoint. For the Match odds comparison endpoint, users can specify competition, market type (1x2, ou25, btts), and fields (full or best). This allows for tailored data requests based on user needs.

Data is sourced from multiple providers, including SofaScore and FlashScore. Each source is noted in the response, ensuring transparency about where the data originates, which helps users assess reliability.

Typical use cases include sports betting analysis, live score tracking, and competitive odds comparison. Developers can use the data for applications focused on real-time sports insights, betting strategies, and market trends.

Users can leverage the structured JSON responses to extract relevant information for their applications. For example, they can analyze odds trends, compare bookmaker offerings, or display live match statistics in user interfaces.

Data accuracy is maintained through regular updates from reliable sources and quality checks. Each source's status is indicated in the API metadata, ensuring users are aware of the data's reliability and freshness.

General FAQs

To obtain your API key, first sign in to your account and navigate to the API you want to use. From the API's Pricing section, choose a plan and complete the subscription process. Once subscribed, return to the API page and you will see your API Access Key displayed at the top of the documentation page. You can use this key to authenticate your requests.

You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.

The free trial lasts for 7 days and allows you to make up to 50 API requests.

No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.

Yes. If the API offers a free trial, you will see a "Free 7-Day Trial" option in its Pricing section. The trial lasts for 7 days and allows up to 50 API requests, enabling you to evaluate the API before subscribing to a paid plan.

Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.

Prices are listed in USD (United States Dollar), EUR (Euro), CAD (Canadian Dollar), AUD (Australian Dollar), and GBP (British Pound). We accept all major debit and credit cards. Our payment system uses the latest security technology and is powered by Stripe, one of the world's most reliable payment companies. If you have any trouble paying by card, just contact us at [email protected]

Additionally, if you already have an active subscription in any of these currencies (USD, EUR, CAD, AUD, GBP), that currency will remain for subsequent subscriptions. You can change the currency at any time as long as you don't have any active subscriptions.
The local currency shown on the pricing page is based on the country of your IP address and is provided for reference only. The actual prices are in USD (United States Dollar). When you make a payment, the charge will appear on your card statement in USD, even if you see the equivalent amount in your local currency on our website. This means you cannot pay directly with your local currency.
Occasionally, a bank may decline the charge due to its fraud protection settings. We suggest reaching out to your bank initially to check if they are blocking our charges. Also, you can access the Billing Portal and change the card associated to make the payment. If these does not work and you need further assistance, please contact our team at [email protected]
Prices are determined by a recurring monthly or yearly subscription, depending on the chosen plan.
API calls are deducted from your plan based on successful requests. Each plan comes with a specific number of calls that you can make per month. Only successful calls, indicated by a Status 200 response, will be counted against your total. This ensures that failed or incomplete requests do not impact your monthly quota.
Zyla API Hub works on a recurring monthly subscription system. Your billing cycle will start the day you purchase one of the paid plans, and it will renew the same day of the next month. So be aware to cancel your subscription beforehand if you want to avoid future charges.
To upgrade your current subscription plan, simply go to the pricing page of the API and select the plan you want to upgrade to. The upgrade will be instant, allowing you to immediately enjoy the features of the new plan. Please note that any remaining calls from your previous plan will not be carried over to the new plan, so be aware of this when upgrading. You will be charged the full amount of the new plan.
To check how many API calls you have left for the current month, refer to the 'X-Zyla-API-Calls-Monthly-Remaining' field in the response header. For example, if your plan allows 1,000 requests per month and you've used 100, this field in the response header will indicate 900 remaining calls.

You can monitor your API usage through the response headers included with every request:

x-zyla-api-calls-monthly-used: Shows the total number of API requests you have used during the current billing period.
x-zyla-api-calls-monthly-remaining: Shows the number of API requests you have remaining for the current billing period.

The 'X-Zyla-RateLimit-Reset' header shows the number of seconds until your rate limit resets. This tells you when your request count will start fresh. For example, if it displays 3,600, it means 3,600 seconds are left until the limit resets.

Yes, you can cancel your subscription at any time. Simply go to the Pricing section of the API you're subscribed to and click the "Unsubscribe" button.

Please note that upgrades, downgrades, and cancellations take effect immediately. Once your subscription is canceled, access to the service will end immediately, regardless of any remaining API calls in your quota.

After 7 days, you will be charged the full amount for the plan you were subscribed to during the trial. Therefore, it's important to cancel before the trial period ends. Refund requests for forgetting to cancel on time are not accepted.
When you subscribe to an API free trial, you can make up to 50 API calls. If you wish to make additional API calls beyond this limit, the API will prompt you to perform an "Start Your Paid Plan." You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab.
You can contact us through our chat channel to receive immediate assistance. We are always online from 8 am to 5 pm (EST). If you reach us after that time, we will get back to you as soon as possible. Additionally, you can contact us via email at [email protected]

Please have a look at our Refund Policy: https://zylalabs.com/terms#refund


Related APIs