Watch on VseeBox API
Read-only JSON data about what you can watch on VseeBox: the Heat VOD and VOD Ultra apps (100,000+ movies and TV series, with IMDb, Rotten Tomatoes and Metacritic scores, languages and cast) and Heat Live TV (1,700+ channels with their channel numbers, the program guide, and sports games).
- No key needed. GET requests only; responses are JSON (UTF-8).
- Rate limit: 120 requests a minute per IP address. Over it you get HTTP 429 with a Retry-After header.
- Errors look like {"error": {"status": 400, "message": "..."}}.
- Every title and channel has links.page (its page on watchonvseebox.com) to show people, and titles have links.api for the full record.
- CORS is open, so browser apps can call it. Adult titles are never included.
- Data is refreshed daily (see /api/v1/meta). Ratings come from IMDb's datasets, Wikidata and Rotten Tomatoes; posters from TMDB and the streaming services. Not affiliated with VseeBox or HeatVOD.
Using it from an AI agent
Point the agent at https://watchonvseebox.com/llms.txt (a plain-text guide to the API) or load https://watchonvseebox.com/api/v1/openapi.json as a tool definition (ChatGPT custom GPT actions, LangChain or any OpenAPI-aware framework). Each endpoint has an operationId the agent can call by name.
GET/api/v1/titles
Search and filter the catalog. Movies and series in the Heat VOD and VOD Ultra apps. Full-text search over titles, original titles and cast, plus filters. 48 results a page.
| Parameter | Type | Description |
|---|---|---|
q | string | Words to search for: a title or cast name ("tom hanks") |
type | string | movie or show |
genre | string | One or more genres, comma separated (see /api/v1/genres) |
genre_mode | string | any (default: in any of the genres) or all |
lang | string | Original language codes, comma separated (en, ko, es...) |
year_min | integer | Released in or after this year |
year_max | integer | Released in or before this year |
imdb_min | number | Minimum IMDb rating, 0-10 |
rt_min | integer | Minimum Rotten Tomatoes score, 0-100 |
votes_min | integer | Minimum number of IMDb votes |
sort | string | relevance (default with q), popular (default without), imdb, rt, year, title |
exclude | string | Titles to leave out, e.g. ones already seen or already suggested: comma separated and/or repeated, up to 200. Each is an IMDb id (tt0111161), a type and slug (movie/inception-2010), a page URL, or an exact title ("The Matrix", any case; matches every title with that name). Use an id or slug for titles that contain commas. |
page | integer | Page number, from 1 |
GET/api/v1/titles/{type}/{slug}
One title in full. Synopsis, cast, languages, which apps have it, and upcoming airings on Heat Live TV. The type and slug come from search results.
| Parameter | Type | Description |
|---|---|---|
type path | string | movie or show |
slug path | string | The title's slug, e.g. inception-2010 |
Examplecurl 'https://watchonvseebox.com/api/v1/titles/movie/inception-2010'
GET/api/v1/genres
Genres and how many titles each has. Use the names as the genre filter in /api/v1/titles.
| Parameter | Type | Description |
|---|---|---|
type | string | movie or show; both when left out |
Examplecurl 'https://watchonvseebox.com/api/v1/genres?type=show'
GET/api/v1/new
Titles recently added to the apps. Newest first, each with the date it first appeared. The apps are checked daily; tracking began 2026-11-14, so titles already in the apps then aren't listed.
| Parameter | Type | Description |
|---|---|---|
type | string | movie or show |
page | integer | Page number, from 1 |
per_page | integer | 1-100, default 48 |
Examplecurl 'https://watchonvseebox.com/api/v1/new?type=movie'
GET/api/v1/live/now
What's on Heat Live TV right now. Channels with what's on now and next. Times are UTC (ISO 8601). Channel numbers are the ones in the Heat Live app.
| Parameter | Type | Description |
|---|---|---|
q | string | A channel name, number or call sign ("cnn", "37", "WBBM"), or a program on in the next 3 hours ("football") |
category | string | sports, local, news, movies, entertainment, kids, latino, canadian, uk |
page | integer | Page number, from 1 |
per_page | integer | 1-200, default 50 |
Examplecurl 'https://watchonvseebox.com/api/v1/live/now?q=cnn'
GET/api/v1/live/channels/{slug}
A channel's schedule. Programs from now on. The slug comes from /api/v1/live/now results.
| Parameter | Type | Description |
|---|---|---|
slug path | string | The channel's slug, e.g. cnn |
hours | integer | How far ahead, 1-72 (default 24) |
Examplecurl 'https://watchonvseebox.com/api/v1/live/channels/cnn?hours=6'
GET/api/v1/sports/games
Upcoming and live games, with the channels showing them. From 6 hours ago onwards (so games in progress are included), with scores when the app has them.
| Parameter | Type | Description |
|---|---|---|
league | string | nfl, nba, nhl, mlb, ncaaf, ncaab, mls |
Examplecurl 'https://watchonvseebox.com/api/v1/sports/games?league=nfl'
GET/api/v1/meta
When the data was last updated, and title counts. The catalog and the live guide are refreshed daily.