API
Public REST API reference.
We expose a public, read-only REST API under https://stremio-addons.net/api/v0/*. No authentication is required and CORS is open to all origins (*).
The /api/v0/* API is experimental and comes with no stability
guarantees; endpoints may change without notice.
Usage terms
Use of the API is subject to our Terms of use. In short:
- Attribution. If you display data from the API, include clear, visible credit link back to stremio-addons.net.
- No competing use. Using the data in any way that competes with, substitutes for, or otherwise harms Stremio Addons is not permitted without prior written permission.
Endpoints
GET /api/v0/categories
List all category labels.
Order: by name, ascending.
- 200:
CategoryList. - 500:
{ error: "Failed to fetch categories" }
Example
curl https://stremio-addons.net/api/v0/categoriesGET /api/v0/addons
Paginated approved addons. Only top-level addons are listed, each with its approved instances inline (an instance never appears as its own top-level entry).
Query parameters:
| Name | Type | Default | Notes |
|---|---|---|---|
page | int ≥1 | 1 | Ignored when after resolves. |
limit | int 1–100 | 100 | Clamped to range. |
search | string | Case-insensitive match on name, description, or slug. | |
nsfw | enum | include all | only | exclude. |
category | string | Category slug; repeatable (?category=a&category=b), OR-matched. Multi-word slugs use + (e.g. ?category=tv+shows). | |
sort_by | enum | createdAt | createdAt | stars. |
order | enum | desc | asc | desc. |
after | uuid | Cursor: skip rows up to and including this addon under the current sort. Falls back to offset paging if the uuid is not in the filtered set. |
Order: by sort_by (default createdAt) in the order direction (default desc).
Use whichever paging style fits your use case: the after cursor is ideal for infinite scroll, while page and limit work great for regular numbered pagination.
-
200:
AddonList:{ "addons": [ /* AddonWithInstances */ ], "pagination": { "page": 1, "limit": 100, "total": 0, "totalPages": 0, "hasNextPage": false, "hasPreviousPage": false } }When
afteris applied,pageis reported as1andhasPreviousPageistrue. -
400:
{ error: "Invalid query parameter(s): ..." } -
500:
{ error: "Failed to fetch addons" }
Example
curl "https://stremio-addons.net/api/v0/addons?search=torrent&sort_by=stars&order=desc&limit=25"GET /api/v0/addons/{uuidOrSlug}
Single approved addon by UUID or slug. Includes approved instances.
- 200:
AddonDetail - 400:
{ error: "UUID or slug is required" } - 404:
{ error: "Addon not found" } - 500:
{ error: "Internal Server Error" }
Example
curl https://stremio-addons.net/api/v0/addons/stremio-addons.netGET /api/v0/rising
Approved addons gaining the most stars in the last 24 hours ("Top Rising"), ranked by star velocity rather than lifetime totals. Only top-level addons are listed (instances are excluded).
Query parameters:
| Name | Type | Default | Notes |
|---|---|---|---|
limit | int 1–100 | 10 | Clamped to range. |
nsfw | enum | include all | only | exclude. |
category | string | Category slug; repeatable (?category=a&category=b), OR-matched. Multi-word slugs use + (e.g. ?category=tv+shows). |
Order: by stars gained in the last 24 hours, descending.
- 200:
{ "addons": RisingAddon[] } - 400:
{ error: "Invalid query parameter(s): ..." } - 500:
{ error: "Failed to fetch rising addons" }
Example
curl "https://stremio-addons.net/api/v0/rising?limit=5"Responses
All responses are JSON unless noted otherwise. Successful requests return 200; errors return the matching HTTP status with a { "error": string } body.
Responses are cached for up to a day (Cache-Control: public, max-age=86400), so newly approved addons and rating changes may take some time to appear.
Object shapes
Category
{
name: string; // human-readable label, e.g. "TV Shows"
slug: string; // url-safe identifier, e.g. "tv+shows"
}CategoryList
{
categories: Category[];
}Addon
{
uuid: string;
url: string; // {SITE_URL}/addons/{slug}
manifestUrl: string;
manifest: object; // Stremio manifest object at the time of indexation
slug: string;
stars: number; // number of users who starred the addon
categories: Category[];
configureUrl: string | null; // null unless manifest.behaviorHints.configurable
createdAt: string; // ISO 8601
updatedAt: string; // ISO 8601
}AddonWithInstances
Addon plus:
{
instances: Addon[];
}AddonDetail
Addon plus:
{
documentation: string | null; // raw markdown, not HTML
instances: AddonDetail[]; // approved instances
}RisingAddon
Addon plus:
{
recentStars: number; // stars gained in the last 24 hours (the ranking basis)
}Pagination
{
page: number;
limit: number;
total: number;
totalPages: number;
hasNextPage: boolean;
hasPreviousPage: boolean;
}AddonList
{
addons: AddonWithInstances[];
pagination: Pagination;
}Feedback
Have a use case the current endpoints don't cover? Let us know.