IPTV-org API
Free IPTV-org API with no key: 10,000+ TV channels worldwide with countries, languages, categories, logos and stream metadata as static JSON. Tested example.
Endpoint tested and returned HTTP 200 on 19 Aug 2026
What is the IPTV-org API?
IPTV-org publishes a free, key-free API of global television channel metadata — more than 10,000 channels with country, language, category, logo and broadcast information — served as static JSON files.
IPTV-org is a community project cataloguing publicly available television channels worldwide. The API is a set of static JSON files on GitHub Pages, which means it is extremely fast, has no rate limit, and never goes down under load.
Because the files are static and complete, the usual pattern is to fetch once and filter locally rather than making repeated requests. There are separate files for channels, countries, languages, categories and streams, designed to be joined client-side.
Quick facts
- Base URL
https://iptv-org.github.io/api- Authentication
- No API key required — these are static JSON files.
- Rate limit
- None; served as static files from a CDN.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the IPTV-org API
Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Fetch the list of countries
GET https://iptv-org.github.io/api/countries.json
curl 'https://iptv-org.github.io/api/countries.json'const res = await fetch("https://iptv-org.github.io/api/countries.json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://iptv-org.github.io/api/countries.json", timeout=20)
res.raise_for_status()
print(res.json())[
{
"name": "Afghanistan",
"code": "AF",
"languages": [
"pus",
"prd",
"tuk"
],
"flag": "🇦🇫"
},
{
"name": "Aland",
"code": "AX",
"languages": [
"swe"
],
"flag": "🇦🇽"
},
{
"name": "Albania",
"code": "AL",
"languages": [
"sqi"
],
"flag": "🇦🇱"
},
{
"name": "Algeria",
"code": "DZ",
"languages": [
"ara"
],
"flag": "🇩🇿"
},
{
"name": "American Samoa",
"code": "AS",
"languages": [
"eng",
"smo"
],
"flag": "🇦🇸"
},
{
"name": "Andorra",
"code": "AD",
"languages": [
"cat"
],
"flag": "🇦🇩"
},
{
"name": "Angola",
"code": "AO",
"languages": [
"por"
],
"flag": "🇦🇴"
},
{
"name": "Anguilla",
"code": "AI",
"languages": [
"eng"
],
"flag": "🇦🇮"
},
{
"name": "Antarctica",
"code": "AQ",
"languages": [
"eng"
],
"flag": "🇦🇶"
},
{
"name": "Antigua and Barbuda",
"code": "AG",
"languages": [
"eng"
],
"flag": "🇦🇬"
},
{
"name": "Argentina",
"code": "AR",
"languages": [
"grn",
"spa"
],
"flag": "🇦🇷"
},
{
"name": "Armenia",
"code": "AM",
"languages": [
"hye"
],
"flag": "🇦🇲"
},
{
"name": "Aruba",
"code": "AW",
"languages": [
"nld",
"pap"
],
"flag": "🇦🇼"
},
{
"name": "Australia",
"code": "AU",
"languages": [
"eng"
],
"flag": "🇦🇺"
},
{
"name": "Austria",
"code"Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
countries.json | path | Optional | All countries with codes, languages and flags. countries.json |
channels.json | path | Optional | Every catalogued channel with metadata. channels.json |
categories.json | path | Optional | Channel categories such as news or sports. categories.json |
streams.json | path | Optional | Stream URLs mapped to channel ids. streams.json |
Response fields
namestring- Country or channel name.
codestring- ISO country code.
languagesarray- ISO 639-3 language codes.
flagstring- Flag emoji for the country.
(channels.json) idstring- Channel identifier used to join with streams.
(channels.json) categoriesarray- Category slugs for the channel.
(channels.json) logostring- Channel logo image URL.
What you can build with the IPTV-org API
- Build a TV channel directory filtered by country or language
- Create an IPTV player interface with channel logos
- Analyse global broadcast media by category and region
- Join channel metadata with stream URLs for a media app
Common errors and how to fix them
Large file downloads
channels.json contains every channel worldwide.
Fix: Fetch once and cache; filter locally rather than re-requesting.
Streams not matching channels
Streams and channels are separate files joined by id.
Fix: Join streams.json to channels.json on the channel id field.
Dead stream URLs
Streams are community-contributed and go offline.
Fix: Validate before playing, and handle failure gracefully.
IPTV-org API — frequently asked questions
Is the IPTV-org API free?
Yes, completely free and open source. It is served as static JSON files with no key and no rate limit.
How many channels are catalogued?
Over 10,000 from around the world, each with country, language, category and logo metadata.
How do I get stream URLs for a channel?
Streams live in a separate streams.json file, joined to channels by the channel id. Note that stream availability is community-maintained and varies.
Is it legal to use the streams?
IPTV-org catalogues publicly available streams, but legality depends on the broadcaster and your jurisdiction. The metadata API itself is uncontroversial; verify rights before redistributing any stream.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Alternatives to IPTV-org API
If IPTV-org does not fit, these video & streaming apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| TVmaze | Free TV show API with no key: series info, full episode guides, cast, air dates and daily schedules with images. Genuinely open, no signup. Tested example. | No key | Yes | 19 Aug 2026 |
| Noembed | Free oEmbed proxy API with no key: get embed HTML, thumbnails and metadata for YouTube, Vimeo, Twitter and 200+ other sites from one endpoint. Tested. | No key | Yes | 19 Aug 2026 |
| YouTube oEmbed | Free YouTube oEmbed endpoint with no API key: video title, author, thumbnail and embed HTML from any video URL. No quota, unlike the Data API. Tested. | No key | No | 20 Aug 2026 |
| Dailymotion | Free Dailymotion API with no key for public data: search videos, channels and playlists with views, duration, thumbnails and embed URLs. Tested example. | No key | Yes | 20 Aug 2026 |
| API One Piece | A free One Piece API with no key: characters with bounties and crews, Devil Fruits, boats, sagas and episodes, available in several languages. Tested example included. | No key | Yes | 21 Aug 2026 |
| Owen Wilson Wow | A free API cataloguing every 'wow' Owen Wilson has said on film, with movie, year, director, exact timestamp, full line and hosted video and audio clips. Live example included. | No key | Yes | 21 Aug 2026 |
IPTV-org is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.