π¬ MovieBox API
Stream movies & TV series with full subtitle support, video seeking, and download pause/resume
Search
Search movies & TV series from MovieBox database with live results
Multi-Quality
Download links in 360p, 480p, 720p, and 1080p
Subtitles
Multiple languages in SRT format with proxy support
Video Seeking
HTTP Range support β skip to any position in the video
Pause/Resume
Pause downloads and resume where you left off
Region Bypass
Built-in rotation with 19 Kenyan IPs for unrestricted access
Search for movies and TV series. Returns titles, IDs, posters, year, rating, and available subtitle languages.
Detailed movie/series information β cast, description, ratings, seasons, episodes, and metadata.
Get download links (direct + proxy URLs) in multiple qualities, plus captions and processedSubtitles.
For TV episodes, add ?season=1&episode=1 query parameters.
Homepage content β featured movies, recommendations, and categories from MovieBox.
Currently trending movies and TV series. Supports ?page=0&perPage=18 pagination.
Video download proxy β bypasses CDN restrictions with proper headers. Supports HTTP Range requests for video seeking and download pause/resume.
URLs are provided automatically in the /api/sources response as proxyUrl.
Range header and get 206 Partial Content back β your video player can skip to any position.β Pause/Resume: Stop a download, then resume later by requesting the remaining byte range.
Subtitle proxy β serves .srt files through the proxy with proper CDN headers. Also supports Range requests.
URLs are provided in the /api/sources response under processedSubtitles[].proxyUrl.
Subtitles are returned automatically when you call the /api/sources/:movieId endpoint. You get them in two formats:
1. Raw Captions β captions array
The original caption data from the upstream API.
2. Processed Subtitles β processedSubtitles array
Enhanced version with proxy URLs ready to use. This is what you should use in your app/website.
HTML5 Video Player
JavaScript / Fetch Example
No! The subtitle data is additive β it's just new fields added to the
/api/sources response. Your existing code that reads processedSources or downloads won't be affected. The processedSubtitles and captions fields are simply new data you can choose to use or ignore.
The /api/download/* proxy endpoint supports HTTP Range requests. This is the standard protocol used by video players and download managers.
How It Works
When you play a video through the proxy URL, the browser/player sends requests like:
Video Seeking in a Player
Just use the proxyUrl from the sources response as the video source. Seeking works automatically β the browser handles Range requests.
Download Pause/Resume
Download managers and apps can pause and resume by requesting byte ranges:
No! If you are already using the
proxyUrl from /api/sources, video seeking and pause/resume work automatically. The browser's <video> element and download managers already know how to send Range headers. The API now responds correctly to them β no code changes needed on your side.
Range header still return the full file with 200 OK, just like before. Nothing breaks.
Will the new changes break my existing website or app?
No. All changes are backward compatible. The API still returns the same response structure β it just adds new fields (processedSubtitles, captions) and supports Range headers on proxy endpoints. Your existing code will continue to work without any modifications.
Does video seeking work when streaming through the proxy?
Yes! The /api/download/* proxy now forwards Range headers to the upstream CDN and returns 206 Partial Content with the correct Content-Range. Any standard video player (browser <video>, VLC, mobile apps) will be able to seek automatically.
Can I pause and resume a download through the proxy?
Yes. The proxy advertises Accept-Ranges: bytes and correctly handles partial requests. Download managers (IDM, wget -c, curl with Range headers) can pause and continue downloads.
How do I add subtitles to my video player?
Call /api/sources/:id and use the processedSubtitles array. Each entry has a proxyUrl you can use as a <track> source in HTML5 video, or load directly in your mobile app's subtitle renderer.
What subtitle format is used?
All subtitles are in SRT format. The format field in processedSubtitles confirms this. SRT is supported by virtually all video players.
What languages are available for subtitles?
It depends on the movie. Common languages include English, French, Spanish, Arabic, Indonesian (in_id), and many more. Check the processedSubtitles array for available options per title.
Do I need to use the proxy URL for subtitles?
The directUrl may work in some cases, but it can be blocked by CDN restrictions. Using the proxyUrl (/api/subtitles/...) is recommended because it adds the proper headers to bypass CDN blocks.