Developer API
Free, no key required. Fixtures, live scores and a ready-to-use embed URL for every match.
What you get
Match metadata and an embed_url
per event. Playback happens inside our player, so you never handle streams, tokens or geo issues —
drop in an iframe and it works. Direct stream URLs are not part of the public API.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/schedule |
Fixtures. ?date=YYYY-MM-DD, ?watchable=1 for
matches with a channel, ?live=1 for in-play only. |
| GET | /api/v1/events/{id} | One fixture + its channels + embed url. |
| GET | /api/v1/live | Everything in play, with the current minute. |
| GET | /api/v1/channels | Channels we index. |
Example
curl "https://matchora-site.abdouphphtml.workers.dev/api/v1/schedule?watchable=1"
{
"events": [{
"id": "2511759",
"home": "St Pauli", "away": "Kaiserslautern",
"league": "German 2. Bundesliga",
"kickoff": 1788104000, "status": "1H", "minute": "22", "score": "0-0", "live": true,
"channel_count": 7,
"embed_url": "https://matchora-site.abdouphphtml.workers.dev/embed/match/2511759"
}]
}
Embedding
Works on any domain. No key, no registration.
<iframe src="https://matchora-site.abdouphphtml.workers.dev/embed/match/{event_id}"
width="100%" height="480" frameborder="0"
allowfullscreen allow="autoplay; fullscreen"></iframe>
Also available per channel: /embed/channel/{channel_id}.
Add ?ch={channel_id} to a match embed to preselect a broadcaster.
Fair use
Rate limited per IP. The embed carries our advertising, which is what keeps the API free — please don't strip or overlay it.