API Reference

The base URL is /api/v1. Every endpoint returns JSON and requires an active API key.

Authentication

Create an account, generate a key from your dashboard, and wait for an admin to activate it. Send the key one of three ways:

Authenticating a request
# 1. Authorization header (recommended)
curl https://your-domain.com/api/v1/trending \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"

# 2. x-api-key header
curl https://your-domain.com/api/v1/trending \
  -H "x-api-key: mvx_live_YOUR_KEY"

# 3. Query parameter
curl "https://your-domain.com/api/v1/trending?api_key=mvx_live_YOUR_KEY"

Rate limits & errors

Each key has a per-minute request limit (default 60). Exceeding it returns 429. Other errors use standard status codes and a JSON error field.

200Success
400Missing or invalid parameter
401Missing or invalid API key
403Key pending activation or revoked
404Title not found
429Rate limit exceeded
5xxUpstream or server error
Example error
{
  "error": "This API key is pending admin activation. You'll be able to use it once an admin approves it."
}

Streaming & downloads

There is no separate “get download links” endpoint. A title's /movie or /tv response already carries a qualities array (each with a signed CDN url, resolution, size, and a vipLocked flag). To play or download, pass that url through the /api/stream or /api/download proxy, which injects the CDN's required Referer/UA and forwards range requests. Those two proxies need no API key so they can be dropped straight into a <video> tag or an anchor href.

Movie → quality → play / download
# 1. Get a title's playable qualities
curl "https://your-domain.com/api/v1/movie/oppenheimer-Akh5Nrwl7o" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"

# The response includes a "qualities" array and a "best_free" pick:
# {
#   "title": "Oppenheimer",
#   "best_free": { "resolution": 1080, "url": "https://bcdnxw.hakunaymatata.com/...mp4?sign=..." },
#   "qualities": [
#     { "resolution": 1080, "size_mb": 2140, "vipLocked": false, "url": "https://bcdnxw...mp4?sign=..." },
#     { "resolution": 480,  "size_mb": 729,  "vipLocked": false, "url": "https://bcdnxw...mp4?sign=..." }
#   ]
# }

# 2. Play it: feed the quality url into the stream proxy (no key needed)
#    <video src="/api/stream?url=<ENCODED_QUALITY_URL>"></video>

# 3. Download it: same url through the download proxy with a filename
curl -L "https://your-domain.com/api/download?url=<ENCODED_QUALITY_URL>&filename=Oppenheimer_1080P.mp4" \
  -o Oppenheimer_1080P.mp4

Endpoints

GET/api/v1/home

Home feed

Banners, curated sections, platforms and a flat list of every featured subject.

Example
curl "https://your-domain.com/api/v1/home" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/details/{detailPath}

Title details

Full details for a title: synopsis, genre, rating, cast, trailer, dubs and subtitle tracks.

ParameterRequiredDescription
detailPathrequiredThe title's detailPath from search/home.
Example
curl "https://your-domain.com/api/v1/details/oppenheimer-Akh5Nrwl7o" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/seasons/{detailPath}

Seasons

All seasons of a TV show with episode counts and available resolutions.

ParameterRequiredDescription
detailPathrequiredThe show's detailPath.
Example
curl "https://your-domain.com/api/v1/seasons/lucifer-UQASHYbVPB2" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/movie/{detailPath}

Movie streams

All quality stream URLs for a movie, plus the best free quality.

ParameterRequiredDescription
detailPathrequiredThe movie's detailPath.
Example
curl "https://your-domain.com/api/v1/movie/oppenheimer-Akh5Nrwl7o" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/tv/{detailPath}

TV episode streams

All quality stream URLs for a specific TV episode.

ParameterRequiredDescription
detailPathrequiredThe show's detailPath.
seasonoptionalSeason number (default 1).
episodeoptionalEpisode number (default 1).
Example
curl "https://your-domain.com/api/v1/tv/lucifer-UQASHYbVPB2?season=1&episode=1" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/captions/{detailPath}

Captions

Subtitle tracks for a movie or a specific episode.

ParameterRequiredDescription
detailPathrequiredThe title's detailPath.
seasonoptionalSeason number (0 for movies).
episodeoptionalEpisode number (0 for movies).
Example
curl "https://your-domain.com/api/v1/captions/lucifer-UQASHYbVPB2?season=1&episode=1" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/browse

Browse & filter

Browse by type, genre, country, year and sort. Pass ?filters=true to get available filter values.

ParameterRequiredDescription
typeoptionalmovie | tv | animation | all.
genreoptionalGenre name.
countryoptionalCountry name.
yearoptionalRelease year.
sortoptionalLatest | Hottest | ForYou | Rating.
pageoptionalPage number (default 1).
limitoptionalMax results (default 20).
Example
curl "https://your-domain.com/api/v1/browse?type=movie&genre=Action&year=2024&limit=20" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/v1/catalog

Catalog

Unfiltered, paginated listing of every title of a given type. Good for building library grids.

ParameterRequiredDescription
typeoptionalmovie | tv | animation (default movie).
pageoptionalPage number (default 1).
limitoptionalMax results (default 20).
Example
curl "https://your-domain.com/api/v1/catalog?type=movie&page=1&limit=20" \
  -H "Authorization: Bearer mvx_live_YOUR_KEY"
GET/api/streamno key

Stream proxy

Byte-range streaming proxy for a CDN stream URL (from /movie or /tv). Injects the required Referer/UA and forwards Range headers so it plays directly in a <video> tag. No API key required. Note: the video CDN blocks datacenter IPs, so bytes are only served from an allowlisted/residential egress; otherwise it returns a clean 502 JSON error.

ParameterRequiredDescription
urlrequiredA whitelisted CDN stream URL, URL-encoded.
Example
curl "https://your-domain.com/api/stream?url=<encoded-cdn-url>"
GET/api/downloadno key

Download proxy

Same proxy as /stream but sets Content-Disposition so the browser downloads the file. No API key required. Same CDN caveat as /stream: datacenter IPs are blocked upstream and get a clean 502 JSON error.

ParameterRequiredDescription
urlrequiredA whitelisted CDN stream URL, URL-encoded.
filenameoptionalSuggested download filename.
Example
curl "https://your-domain.com/api/download?url=<encoded-cdn-url>&filename=Movie.mp4"
GET/api/statusno key

System status

Current system health indicator plus active and recent incidents. Powers the status page. No API key required.

Example
curl "https://your-domain.com/api/status"
GET/api/changelogno key

Changelog

Published changelog entries, newest first. No API key required.

Example
curl "https://your-domain.com/api/changelog"