Stremio Addons Documentation
Developers

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/categories

GET /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:

NameTypeDefaultNotes
pageint ≥11Ignored when after resolves.
limitint 1–100100Clamped to range.
searchstringCase-insensitive match on name, description, or slug.
nsfwenuminclude allonly | exclude.
categorystringCategory slug; repeatable (?category=a&category=b), OR-matched. Multi-word slugs use + (e.g. ?category=tv+shows).
sort_byenumcreatedAtcreatedAt | stars.
orderenumdescasc | desc.
afteruuidCursor: 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 after is applied, page is reported as 1 and hasPreviousPage is true.

  • 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.net

GET /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:

NameTypeDefaultNotes
limitint 1–10010Clamped to range.
nsfwenuminclude allonly | exclude.
categorystringCategory 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.

On this page