---
title: "Who airs it, per country"
method: GET
path: "/v1/broadcast-rights/{org}"
tags: ["Broadcast"]
---

# Who airs it, per country

`GET /v1/broadcast-rights/{org}`

## Request

- Base URL: `https://api.ufcalendar.com`
- URL: `https://api.ufcalendar.com/v1/broadcast-rights/{org}`
- Auth: HTTP bearer

Org-level standing media rights per country (PFL harvested weekly across 212 countries; UFC ~110 curated). `WORLD` rows apply globally. Without `series` you get the org-wide deals only; UFC sub-series (`dwcs` = Dana White's Contender Series, `rtufc` = Road to UFC) have their OWN grid, which REPLACES the org-wide one for those cards — pass `series=` to read it. Each row carries `series` (`null` for org-wide). For one event, `/v1/events/{idOrSlug}/watch` picks the right grid for you and overlays the event's own listings. An unknown `series` 400s `invalid_series`.

## Path parameters

- `org` string, required

## Query parameters

- `country` string
- `series` 'dwcs' | 'rtufc'

## Response `200`

Rights rows

- BroadcastRightsResponse
  - `data` BroadcastRight[], required
    - `country` string, required: ISO-2 or `WORLD`.
    - `provider` string, required
    - `kind` 'ppv' | 'sub' | 'free' | 'tv' | 'unknown', required: How the provider carries it: pay-per-view, subscription, free-to-air, linear TV, unknown.
    - `url` string, nullable, required
    - `rank` integer, nullable, required: Lower = primary.
    - `series` 'dwcs' | 'rtufc', required: UFC sub-series with their own rights grid: Dana White's Contender Series, Road to UFC.
  - `meta` object, required
    - `org` string, required
    - `series` 'dwcs' | 'rtufc', required: UFC sub-series with their own rights grid: Dana White's Contender Series, Road to UFC.
    - `ignored_params` string[]: Present only when the request carried query parameters this endpoint does not take — they were ignored. Same list as the `X-UFCalendar-Ignored-Params` header. Sorted, unique.

## Other responses

- `304`: Not Modified — `If-None-Match` matched the current weak `ETag`. Empty body.
- `400`: Invalid input (`invalid_series`).
- `401`: Missing/invalid API key (`unauthorized`).
- `403`: No active plan on the key's account (`subscription_required`) — choose a plan or start the free 1-day trial at https://www.ufcalendar.com/account/api.
- `404`: Not found (`not_found`; staged-org data 404s until the org is promoted).
- `429`: Rate limited (`rate_limited`) or monthly quota reached (`quota_exceeded`). Honor `Retry-After`.
- `500`: Something broke on our side (`internal_error`). It has been logged under the `request_id`.

---

[API](https://skmtc.dev/ufcalendar/apis/ufcalendar-fight-api.md) · [All operations](https://skmtc.dev/ufcalendar/apis/ufcalendar-fight-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ufcalendar/apis/ufcalendar-fight-api/revisions/9623cc8fb70b?raw)
