tvschedule.org
API Docs / Directory

Find a channel

Free keyLive and CompleteMCP: find_channel

Find a channel by its name, an alias or a call sign, across every country or within one.

ReturnsChannels, best match first
Up to100 a call, 20 by default
FreshUp to 6 hours old
PlanEvery plan, the free key too
GEThttps://api.tvschedule.org/v1/channels/search/{q}

What it is for

When you know a channel by name rather than by id, start here. The search matches the channel's name, the other names it goes by and, for US stations, its call sign, so the name a viewer would type finds it.

Add country to keep the answer to one market, which helps with names used in several countries.

A search box

Behind a "find a channel" field in a guide or a settings page.

Matching feeds

Turn channel names from your own source into our ids.

Answering assistants

An assistant finds the channel, then asks for its day.

Try it

Calls the real API with your key and shows the answer below. Your key stays in this browser and fills in on every docs page.

Find a channel

Works on the free key

No key yet? Get a free key. It fills in here by itself once made.

https://api.tvschedule.org/v1/channels/search/BBC+One
Uses 1 call from your plan.
Calling

        

Code

Built from the form above, with your key in place. The language you pick is remembered.

curl "https://api.tvschedule.org/v1/channels/search/BBC+One" \
  -H "X-API-Key: <your key>"

Parameters

NameInTypeExampleWhat it does
qrequiredpathstringBBCA channel name, alias or call sign, two characters or more. Put a space as +.
countryquerystringGBOnly channels in this country, as a two-letter code.
limitqueryinteger5How many channels to return, best match first. 20 when left out.
1 to 100

Returns

A list under data, with meta.count beside it.

FieldTypeExampleWhat it holds
idstringch_jw83a3xgIts id, stable and used by every other endpoint
namestringBBC OneIts name
countrystringGBThe country, as a two-letter code
categoriesarray["general"]Its categories
in_registrybooleantrueIn registry

Example answer

A real answer from our data, cut to three rows, so you can see the shape before you run anything.

200 OKhttps://api.tvschedule.org/v1/channels/search/BBC+One
{
    "data": [
        {
            "id": "ch_jw83a3xg",
            "name": "BBC One",
            "country": "GB",
            "categories": [
                "general"
            ],
            "in_registry": true
        },
        {
            "id": "ch_k1f2134x",
            "name": "BBC One West",
            "country": null,
            "categories": [],
            "in_registry": false
        },
        {
            "id": "ch_gz4nnp40",
            "name": "BBC One East",
            "country": null,
            "categories": [],
            "in_registry": false
        }
    ],
    "meta": {
        "count": 5,
        "took_ms": 41
    }
}

Errors

StatusCodeWhenWhat to do
401unauthorizedNo key was sent, or it is not an active TV Schedule key.Send it as Authorization: Bearer <key> or X-API-Key. Your keys are in your account.
400bad_requestThe search has fewer than two characters.Fix the value the message names and send it again.
422unknown_parameterA query parameter this endpoint does not take.The message lists the ones it does take.
429rate_limitedFaster than your plan's pace per minute.Wait for Retry-After seconds. The X-RateLimit headers show where you are.
429quota_exceededYour plan's allowance for the day or month is used.It resets at the time in the message, or upgrade for a bigger allowance.
500server_errorSomething went wrong on our side, or the data was out of reach for a moment.Try again in a minute. It has been logged, and /status shows the state of the service.

Next calls