tvlogo.monstertvlogo.monster ☾ Dark

tvlogo.monster API v0.2.0

Generated from the live OpenAPI 3.1.0 document, so it always matches the running API. Raw: Swagger UI · AI prompt (paste into any AI assistant to have it write a tool against this API).

Free, non-profit, read-only API for TV channel logos (Canada first). One key in, one logo out: an iptv-org tvg-id, an epg.monster channel id, a Canadian call sign or a channel name.

Rate limits: per IP token bucket (burst 60, 2/s sustained for lookups). Every response carries RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset; over the limit you get 429 with Retry-After. Repeated violations lead to temporary blocks (15 min, 1 h, 24 h, 7 d).

Legal: logos are trademarks and/or copyright of their owners and are provided for identification only, as-is, without warranty; tvlogo.monster is not affiliated with any broadcaster. Metadata is CC BY 4.0. See https://search.tvlogo.monster/legal

Base URL https://api.tvlogo.monster · no API key · JSON over HTTPS.

GET /v1/stations

Find stations by place, distance, province, city, type, class or affiliate

ParameterTypeValues · defaultDescription
near
query
string
default ""
Centre point as lat,lon in decimal degrees (WGS84), e.g. 49.8951,-97.1384
radius_km
query
string
default ""
Search radius around near, km (default 50, max 1000); distance is great-circle (haversine)
country
query
string
default ""
ISO 3166-1 alpha-2 country; only CA has stations today
province
query
string
default ""
2-letter province/territory code, e.g. MB, QC
city
query
string
default ""
Town or city of the transmitter (case-, accent- and punctuation-insensitive)
q
query
string max len 100
default ""
Optional text matched inside call sign, name or town
type
query
stringall main rebroadcaster
default "all"
main = originating transmitters, rebroadcaster = repeaters, all
class
query
string max len 100
default ""
Licence/service class, one or more comma-separated: full_power, class_a, low_power (US LPTV; CA ISED class LP/VLP), translator (US translators, CA rebroadcasters). Canada has no class_a. Unknown values give 422. See /v1/classes for counts
affiliate
query
string
default ""
Network or brand slug or name (ctv, global, citytv, cbc, ici-radio-canada, tva, noovo, independent...); see /v1/affiliates
has_logo
query
stringtrue false any
default "true"
true (default, like the map) = only stations with a served logo for the selected mode; false = only those without; any
sort
query
stringdistance name call_sign
default ""
distance (default with near), name (default otherwise) or call_sign
limit
query
string
default "20"
Rows per page, 1..100
cursor
query
string max len 200
default ""
next_cursor from the previous page
mode
query
stringlocal national
default "local"
local = the station's own logo, falling back to brand -> network -> channel. national = the network logo for every affiliate.
theme
query
stringdefault dark light mono
default "default"
Preferred variant. dark = for dark backgrounds, light = for light backgrounds, mono = monochrome. Falls back to default when the variant does not exist (theme_served tells you what you got).
era
query
stringcurrent historic
default "current"
current = the logo in use now (new). historic = an older design (old) when we have one, else current.
size
query
string64 128 256 512
default "128"
Square PNG size in pixels (transparent canvas). All sizes are pre-rendered on i.tvlogo.monster.

Responses

  • 200 Matching transmitters (paged; next_cursor is null on the last page)
  • 422 Invalid filter (detail says which)
  • 429 Rate limited; see Retry-After

GET /v1/affiliates

Affiliate values for /v1/stations with station counts

ParameterTypeValues · defaultDescription
country
query
string
default ""
ISO country filter, e.g. CA
has_logo
query
stringtrue false any
default "true"
count only stations with (true) / without (false) a logo, or any
mode
query
stringlocal national
default "local"
mode used for has_logo

Responses

  • 200 Successful Response
  • 422 Validation Error

GET /v1/classes

Licence/service class values for /v1/stations with station counts

ParameterTypeValues · defaultDescription
country
query
string
default ""
ISO country filter, e.g. CA
has_logo
query
stringtrue false any
default "true"
count only stations with (true) / without (false) a logo, or any
mode
query
stringlocal national
default "local"
mode used for has_logo

Responses

  • 200 Successful Response
  • 422 Validation Error

GET /v1/params

Lookup parameters, values and defaults

Responses

  • 200 Successful Response

GET /v1/version

Deployed app version: package version, git commit, deploy time

Responses

  • 200 Successful Response

GET /v1/stats

Catalogue counts and API usage (cached 60 s)

Responses

  • 200 Successful Response

Image URLs

image_url points at https://i.tvlogo.monster/<id>.png (512 px). Every logo is pre-rendered at other sizes: <id>-64.png, <id>-128.png, <id>-256.png. Images are immutable and cacheable; ids change when a logo changes.