Open API
A small, free and open JSON API about official public bodies: parliaments, governments, central banks and public agencies. Which of them are live right now, and the broadcasts they have announced on their own websites. No key and no sign-up.
Endpoints
All endpoints answer GET with JSON (UTF-8), allow any origin (Access-Control-Allow-Origin: *) and may be cached for 60 seconds (Cache-Control: public, max-age=60).
/api/open/v1/official: every official body in the LiveRadar register./api/open/v1/official/live: the bodies that are live right now./api/open/v1/official/upcoming?country=SE&limit=50: announced broadcasts from the bodies' own websites, soonest first.countryis an ISO 3166-1 alpha-2 code (orINT,EU);limitis 1–200 (default 50)./api/open/v1/official/{slug}: one body, with its live and upcoming broadcasts./official/{slug}.ics: one body's broadcasts as an iCalendar feed for any calendar app.
Examples
curl https://liveradar.org/api/open/v1/official/live
curl "https://liveradar.org/api/open/v1/official/upcoming?country=SE&limit=10"
curl https://liveradar.org/api/open/v1/official/the-riksdag
curl -o riksdag.ics https://liveradar.org/official/the-riksdag.ics
Every JSON answer has the same frame:
{
"version": 1,
"attribution": "Data: LiveRadar (liveradar.org), register based on Wikidata (CC0); schedules from the public bodies' own websites",
"license": { "name": "CC BY 4.0", "url": "https://creativecommons.org/licenses/by/4.0/" },
"generated_at": "2026-10-14T12:00:00.000Z",
"count": 1,
"items": [ … ]
}
Fields
Official body
| Field | Type | Description |
|---|---|---|
slug | string | Stable identifier, also used in the LiveRadar address. |
name | string | Name, in English when known. |
country | string | ISO 3166-1 alpha-2 code, or INT for international bodies and EU. |
function | string[] | For example Parliament, Government, Central bank, Government agency. |
website | string[] | Official websites. |
web_tv | string[] | The body’s own web TV pages. |
wikidata | string | null | Wikidata item, for example Q272930. |
liveradar_url | string | The body’s page on LiveRadar, with where to watch it. |
In /official/{slug} the body also has live (boolean), ics_url and broadcasts with the lists live and upcoming. In /official/live each item has live: true and broadcasts.
Broadcast
| Field | Type | Description |
|---|---|---|
id | string | Stable identifier. |
title | string | Title as announced by the body. |
start | string | null | Scheduled start, ISO 8601 in UTC. |
status | string | upcoming or live. |
url | string | The announcement on the body’s own website (or its LiveRadar page). |
organization | object | Only in /official/upcoming: slug, name, country, liveradar_url. |
What is included, and what is not
The API only has data from the LiveRadar register (built on Wikidata) and from the public bodies’ own websites, calendars and feeds. It has no data from YouTube, Kick, Twitch or other video platforms: no stream titles, links, thumbnails or viewer numbers. When a body is live only on a video platform, it is marked live: true with a link to its page on LiveRadar, and broadcasts is empty. Viewer numbers are never included.
Rate limit
60 requests per minute per IP address, shared by all endpoints. Above that the answer is 429 Too Many Requests with a Retry-After header. Please cache: the data changes at most once a minute.
License and attribution
The compilation is available under CC BY 4.0. Credit “LiveRadar (liveradar.org)” with a link. The register is based on Wikidata (CC0). Schedules come from the public bodies’ own websites; titles are theirs.
Terms
- The API is free and provided as is, without any guarantee of availability or accuracy. It may change; breaking changes get a new version in the path.
- Do not use it to overload LiveRadar or the public bodies’ websites. Link to the body’s own website or to LiveRadar when you show a broadcast.
- The Terms of use and the Privacy policy apply. LiveRadar keeps no identifiers; the rate limit holds IP addresses in memory for a few minutes only.