Matchix API

Free JSON feeds for partner sites — every match, with ready-to-use player links.

Embed codes →
1
Pick an endpoint

All are GET, return JSON, and need no key or login.

2
Press Try it

It calls the live API from your browser, so you see exactly what your site will get.

3
Copy the code

curl, JavaScript, PHP or Python, ready to paste.

Good to know

  • Base url: https://matchix.org. Any website may call it (CORS is open).
  • Data refreshes about every 30 seconds, so polling faster than that gains nothing.
  • Matches play in our player only. Use embedUrl in an iframe or watchUrl as a link; raw stream urls are never returned.
  • A 503 {"error":"busy"} means try again in a few seconds.

Match feedRecommended

GET /api/feed

Every match on our slate with kickoff, artwork, a watch page and one embed url per stream. Scheduled matches are listed too, with an empty streams list until sources publish.

Options

/api/feed/<sport>
Only one sport, e.g. /api/feed/football (or ?category=football).

What you get

id, title, category
Match id, name and sport id.
startsAt
Kickoff, epoch milliseconds.
isLive, viewers
Live flag and the audience count (may be null).
poster, home, away
Artwork and team names/badges (home/away are null for races and fights).
watchUrl, embedUrl
Full watch page, and the player alone (first stream).
streams[]
streamNo, hd, language and an embedUrl for each stream.
meta
total, category, generatedAt and categories (count per sport, for the whole slate).

Test it

GET

Agenda (agenda18 format)Drop-in

GET /api/agenda.json

The same matches in the format of agenda18.com/agenda.json, so a site that already reads that file only changes the url.

Options

tz
Time zone for date_diary / diary_hour, e.g. America/Mexico_City. Default UTC.
category
One sport, with our sport ids (football, basketball, ...).
date
One day, YYYY-MM-DD, in that time zone.
v
Ignored (cache buster).

What you get

data[].attributes.diary_description
Match title.
date_diary, diary_hour
Kickoff date and time in the chosen zone.
deportes
Sport in Spanish (futbol, baloncesto, tenis ...).
embeds.data[].attributes
embed_name, idioma (language) and embed_iframe — a full url to our player.
meta.pagination
Always one page holding everything.

Test it

GET

Embed code list

GET /api/embed/matches

What this page is built from: the home page sections in order, and every match once with the id of each of its streams.

What you get

sections[]
key and the match ids in the order the home page shows them.
matches{}
Each match once: title, category, startsAt, isLive, viewers, home/away.
matches{}.links[]
id, source, streamNo, hd, language — use the id as ?s=<id> on an embed url.

Test it

GET

Show a match on your site

Take embedUrl from any match or stream above and put it in an iframe. Keep the sandbox attribute off and leave popups allowed: the player will not start without our ads.