---
title: "Streaming API v2: Categories and lists"
description: "Categories, channels, movies, series, recently added and event channels."
---

## `GET` categories

`live-categories`, `vod-categories`, `series-categories`. Only categories
with content in the line's package, in the panel's order, with how many items
of the package each one has.

```json
[ { "id": 12, "name": "News", "order": 1, "is_adult": false, "count": 48 },
  { "id": 14, "name": "Sports", "order": 2, "is_adult": false, "count": 31 } ]
```

## `GET live-channels`

Parameters: `category_id`, `offset`, `limit`, `sort_by`, `sort_order`.

```json
{
  "total": 3, "offset": 0, "limit": 2, "next_offset": 2,
  "items": [
    { "id": 123, "type": "channel", "num": 1, "name": "News 24",
      "icon": "https://img.example.com/news24.png", "epg_id": "news24.uk",
      "category_ids": [12], "added": 978307200, "uuid": "0b9e3c2a-…", "is_event": false,
      "is_adult": false },
    { "id": 140, "type": "channel", "num": 2, "name": "Final Cup", "icon": null,
      "epg_id": null, "category_ids": [14], "added": 978307260, "uuid": "0b9e3c2a-…",
      "is_event": true, "event_start": 4102437600, "event_end": 4102444800, "is_live": false,
      "is_adult": false }
  ]
}
```

- `num`: the channel number, its position in the line's package (the same in
  every list and in search).
- `epg_id` matches the `<channel id>` of the panel's XMLTV, or `null`.
- Only event channels carry `event_start`, `event_end` (unix or `null`) and
  `is_live` (the event is on now).

## `GET vod-movies`

Parameters: `category_id`, `offset`, `limit`, `sort_by`, `sort_order`,
`genre_ids`, `genre_mode`, `fields`, `images`.

```json
{
  "total": 1, "offset": 0, "limit": 50, "next_offset": null,
  "items": [
    { "id": 4321, "type": "movie", "name": "The Matrix",
      "poster": "https://img.example.com/matrix.jpg", "rating": 8.7, "tmdb_id": 603,
      "category_ids": [8], "container_extension": "mkv", "added": 978307320, "uuid": "0b9e3c2a-…",
      "is_adult": false }
  ]
}
```

`container_extension` is the `ext` to play it with. With
`fields=plot,backdrop,year,duration_secs,genres` (example
`vod-movies-fields.json`):

```json
{ "id": 4321, "type": "movie", "name": "The Matrix", "…": "…",
  "plot": "A computer hacker learns the \"truth\" about his reality.",
  "backdrop": "https://img.example.com/matrix-bd.jpg", "year": 1999,
  "duration_secs": 8160, "genres": "Action, Sci-Fi", "is_adult": false }
```

## `GET series`

Parameters: like `vod-movies`, plus `full_info=1` to embed each series'
`seasons` and `episodes` (as in `series-info`; `limit` is then at most 20).
With `fields` the items are compact (section 3; example `series-fields.json`).

```json
{
  "total": 1, "offset": 0, "limit": 50, "next_offset": null,
  "items": [
    { "id": 88, "type": "series", "name": "Breaking Bad",
      "poster": "https://img.example.com/bb.jpg", "plot": "…", "cast": "Bryan Cranston, Aaron Paul",
      "director": "Vince Gilligan", "genres": "Drama, Crime", "release_date": "2008-01-20",
      "last_modified": 978307200, "rating": 9, "backdrops": ["https://img.example.com/bb-bd.jpg"],
      "youtube_trailer": "HhesaQXLuRY", "episode_run_time": 47, "tmdb_id": 1396, "category_ids": [11],
      "is_adult": false }
  ]
}
```

## `GET recently-added`

Parameters: `type` (`all` default, `channel`, `movie`, `series`), `limit`
(default 50, max 200), `fields`, `images`. Newest first, by `added` (series by
`last_modified`); paginated shape with `offset` always `0`.

## `GET events`

Parameters: `offset`, `limit`. Only event channels, paginated like
`live-channels`.
