MZ

MatchZone Live — API Reference

Powered by Prince API — api.princetechn.com

MatchZone Live fetches all sports data, streams, news and TV channels from the Prince API — a high-performance sports data platform built by PrinceTech. This page documents every endpoint the site uses and how you can integrate them yourself.

Base URL
https://api.princetechn.com

All endpoints below are relative to this base URL. When running the full-stack version locally or on Replit, the same Express server serves both the frontend and these API routes under /matchzone/data/.

Authentication
All requests to the Prince API must include your API key as a query parameter: ?apikey=YOUR_KEY. The MatchZone site ships with the free public key prince which gives access to all sports endpoints. Contact PrinceTech to get a dedicated key with higher rate limits.
# Example — append the key to any request GET /matchzone/data/football-live?apikey=prince # Or with other query params GET /matchzone/data/streaming?sport=football&apikey=prince
How MatchZone Uses the API

Live Scores

Polls /football-live and /basketball every 60 seconds to keep scores up to date in real time.

Streaming

Fetches watchable matches with HLS stream URLs via /streaming. Plays in the built-in cinematic player using HLS.js.

Sports News

Loads the latest headlines from /news with support for tag filtering and pagination.

Live TV

Loads 894+ TV channels from 49 countries via /tv-channels — all streamed live in the browser via HLS.js.

Endpoints
GET /matchzone/data/football-live

Returns all currently live and recently finished football matches with scores, status, and league info.

Response
{ "success": true, "result": { "matches": [ { "homeTeam": "Arsenal", "awayTeam": "Chelsea", "homeScore": 2, "awayScore": 1, "status": "2ND HALF", "league": "Premier League", "sport": "football" } ] } }
GET /matchzone/data/streaming

Returns live and upcoming matches that have watchable stream links.

Params
sportfootball | basketball | all (default: all)
{ "success": true, "result": { "matches": [ { "homeTeam": "Man Utd", "awayTeam": "Liverpool", "streams": [ { "title": "Stream 1", "url": "https://…/stream.m3u8" } ] } ] } }
GET /matchzone/data/basketball

Returns live basketball matches (NBA, EuroLeague, and more) with scores and status. Same response shape as /football-live.

GET /matchzone/data/news

Returns the latest sports news articles with titles, thumbnails, summaries and publication dates.

Params
tag — filter by topic (optional)
page — page number, default 1, 20 articles per page
GET /matchzone/data/tv-channels

Returns 894+ live TV channels from 49 countries. Each channel has a name, logo, language, and an HLS stream URL.

Params
country — ISO country code (e.g. cm, us, fr) — omit to get all channels
{ "success": true, "result": { "channels": [ { "name": "Afrique54 TV", "logo": "https://cdn.logos.tv/…", "url": "https://stream.afrique54.cm/live/hls/stream.m3u8", "language": "French" } ] } }
GET /matchzone/data/tv-countries

Returns the list of 49 available countries with their ISO code and flag emoji — used to populate the Live TV country selector.

Quick Integration Example

Fetch live football scores in any JavaScript project:

// Fetch live football matches const res = await fetch( 'https://api.princetechn.com/matchzone/data/football-live?apikey=prince' ); const { success, result } = await res.json(); if (success) { result.matches.forEach(match => { console.log( match.homeTeam, match.homeScore, '-', match.awayScore, match.awayTeam, '|', match.status ); }); }
Built-in Player

HLS Streaming

Uses HLS.js to play .m3u8 streams natively in the browser — no plugins needed. Falls back to native Safari HLS support on iOS.

Picture-in-Picture

Tap the PiP button to pop the stream into a floating window — it stays visible while you browse other tabs or switch apps on your phone.

Fullscreen

Full-device fullscreen on both desktop and mobile. Controls auto-hide after 3 seconds and reappear on mouse move or screen tap.

Mobile First

Tap to toggle controls. Tap the center play button to pause/resume. Volume slider and quality badge adapt to screen size automatically.

Deployment

Vercel recommended

Deploy the full Express app on Vercel in one command. The vercel.json at the project root handles routing automatically.

# Install Vercel CLI and deploy npm install -g vercel vercel # Or connect your GitHub repo in the Vercel dashboard # and it deploys automatically on every push.

Replit

Run locally on Replit with node index.js. The server starts on port 5000 and the site is available at /matchzone/.

node index.js # → http://localhost:5000/matchzone/

Built by PrinceTech · API hosted at api.princetechn.com · Free public key: prince