---
title: "Streaming API v2: EPG"
description: "Upcoming programs of a channel, the guide in a time range, and now and next for many channels at once."
---

## `GET short-epg`

Parameters: `id` (the channel `id`, required), `limit` (default `10`,
`1`-`200`). From the program airing now onwards.

```json
{
  "channel_id": 123,
  "programs": [
    { "start": 978307200, "end": 4102444800, "title": "News at 6",
      "description": "The day in an hour.", "lang": "en", "now_playing": true,
      "category": "News", "icon": null, "season": null, "episode": null,
      "year": null, "rating": null }
  ]
}
```

- `start`/`end`: unix seconds (UTC). `now_playing`: on air now; there may be
  none if the guide has a gap.
- `category`, `icon`, `season`, `episode`, `year` and `rating` (a parental
  rating such as `TV-G`, as text) are `null` when the guide does not have
  them.
- A channel without guide data returns an empty list; a channel outside the
  line's package, `403 not_in_package`.

## `GET epg`

Parameters: `id` (required), `from` and `to` (unix; default from now to 24 h
later; `to` - `from` at most 7 days). Programs overlapping that range,
**including past ones**, up to 500. Same body as `short-epg`.

## `GET epg-now`

Parameter: `ids` (comma-separated channel ids, up to 100). The program on air
and the next one for each channel, in one request: what a guide grid needs.

```json
{ "channels": { "123": [ { "start": 978307200, "end": 4102444800, "title": "News at 6", "now_playing": true, "…": "…" },
                         { "start": 4102444800, "end": 4102446600, "title": "Weather", "now_playing": false, "…": "…" } ] } }
```

Keys are channel ids as strings. Channels without guide data, or outside the
line's package, are left out. The next program is included only if it starts
within 12 hours; for a longer gap use `epg`.
