📖 Overview
GoatAPI is a powerful streaming REST API that provides movie and TV series streaming links, subtitles, and metadata. All endpoints use TMDB IDs for content identification, making integration simple and standardized.
We offer three streaming providers (FebBox, Debrid, Lightning) and a dedicated subtitles API, all accessible through clean GET endpoints that return JSON responses.
🔗 Base URL
https://goatapi.imreallydagoatt.workers.dev
📦 Response Format
All endpoints return JSON. Successful responses include:
🔑 How to get the FebBox UI Key
- Sign in to FebBox: Go to febbox.com and sign in with Google. Note: Do not log out afterward, as it invalidates the token.
- Open Developer Tools: Right-click anywhere on the page and select Inspect, or press F12.
- Extract 'ui' Cookie: Go to the Application tab (or Storage in Firefox), select Cookies → https://www.febbox.com, and copy the value of the cookie named
ui.
🖥️ FebBox API
High-quality streams with multi-resolution support. Streams play perfectly in the browser natively, but the free plan has bandwidth limits. Note: A valid FebBox UI cookie token is required for all FebBox endpoints.
Get Movie Stream
/api/febbox/movie/{tmdb_id}?token={ui_cookie}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB movie ID |
token | string | FebBox UI Cookie Token (Required) |
Get TV Episode Stream
/api/febbox/tv/{tmdb_id}/{season}/{episode}?token={ui_cookie}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB TV show ID |
season | integer | Season number |
episode | integer | Episode number |
token | string | FebBox UI Cookie Token (Required) |
⚡ Debrid API
Premium uncapped debrid-powered streams. Provides massive files with superior quality, best suited for downloading or external streaming, as browser codec support is limited.
Note: By default, this uses the server's master Real-Debrid key. If you want to use your own, you can pass your Real-Debrid API Key in the token parameter.
Get Movie Stream
/api/debrid/movie/{tmdb_id}?token={optional_rd_key}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB movie ID |
token | string | Real-Debrid API Key (Optional) |
Get TV Episode Stream
/api/debrid/tv/{tmdb_id}/{season}/{episode}?token={optional_rd_key}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB TV show ID |
season | integer | Season number |
episode | integer | Episode number |
token | string | Real-Debrid API Key (Optional) |
🚀 Lightning API
Unlimited ultra-fast streaming. Offers a vast library of instantly playable streams, capped at reliable 1080p quality for maximum speed.
Get Movie Stream
/api/lightning/movie/{tmdb_id}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB movie ID |
Get TV Episode Stream
/api/lightning/tv/{tmdb_id}/{season}/{episode}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB TV show ID |
season | integer | Season number |
episode | integer | Episode number |
📝 Subtitles API
Dedicated subtitle endpoint returning multi-language subtitles for any movie or TV episode.
Get Movie Subtitles
/api/subtitles/movie/{tmdb_id}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB movie ID |
Get TV Episode Subtitles
/api/subtitles/tv/{tmdb_id}/{season}/{episode}
| Parameter | Type | Description |
|---|---|---|
tmdb_id | integer | TMDB TV show ID |
season | integer | Season number |
episode | integer | Episode number |
Subtitle Response Format
🔍 TMDB Search
Search for movies and TV shows to find their TMDB IDs. This proxies TMDB's search API.
/api/search?q={query}&type={movie|tv}
| Parameter | Type | Description |
|---|---|---|
q | string | Search query |
type | string | Content type: movie or tv (default: movie) |
⚠️ Error Handling
When an error occurs, the API returns an appropriate HTTP status code with details:
| Code | Description |
|---|---|
400 | Bad Request — Missing or invalid parameters |
403 | Forbidden — IP banned, or feature disabled by admin |
404 | Not Found — Content not found for the given TMDB ID |
429 | Too Many Requests — Rate limit exceeded (retry after wait time in response) |
500 | Internal Server Error — Something went wrong |
🚦 Rate Limits
Per-IP rate limits apply to prevent abuse:
| Endpoint | Cooldown |
|---|---|
| Debrid streams | 10 seconds between requests |
| Lightning / FebBox streams | 5 seconds between requests |
| Subtitles | 5 seconds between requests |
Exceeding the limit returns HTTP 429 with a waitMs value.
Contact us on Discord for higher limits.
💾 Caching
All streaming responses are cached at the edge for performance. Add ?fresh=true to any stream endpoint to bypass the cache and fetch fresh data:
| Provider | Cache Duration |
|---|---|
| Lightning | 6 hours |
| Debrid | 2 hours |
| Subtitles | 24 hours |