---
title: "How to watch one event"
method: GET
path: "/v1/events/{idOrSlug}/watch"
tags: ["Broadcast"]
---

# How to watch one event

`GET /v1/events/{idOrSlug}/watch`

## Request

- Base URL: `https://api.ufcalendar.com`
- URL: `https://api.ufcalendar.com/v1/events/{idOrSlug}/watch`
- Auth: HTTP bearer

Who airs one event, country by country: the promotion's standing rights deals merged with the event's own confirmed broadcast listings. Series-aware — a Dana White's Contender Series or Road to UFC card gets its own grid (`series`: `dwcs` / `rtufc`), never the numbered-card deals; `null` for an ordinary card. Each country is `{ country, providers: [{ provider, kind, url, note_key, event_confirmed, rank }] }`, `WORLD` first then ISO order. `event_confirmed: true` means the event's own listing names that provider (those rows win on a collision and sort first, `rank: -1`); `note_key` is a short machine key for a caveat (e.g. main card on PPV). Pass `country=` (two letters) for that market plus worldwide; anything else 400s `invalid_country`. Links are raw. On a sub-series card `meta.note` says an empty grid means no deal is known.

## Path parameters

- `idOrSlug` string, required

## Query parameters

- `country` string

## Response `200`

Watch grid

- EventWatchResponse: `meta.note` is set on a sub-series card.
  - `data` EventWatch, required
    - `event` object, required
      - `id` integer, required
      - `slug` string, required
      - `title` string, required
      - `org` string, required
      - `starts_at` string, date-time, required
      - `main_card_at` string, date-time, nullable, required
      - `prelims_at` string, date-time, nullable, required
      - `early_prelims_at` string, date-time, nullable, required
      - `tz` string, nullable, required
      - `status` 'announced' | 'scheduled' | 'live' | 'completed' | 'cancelled' | 'postponed', required: Event lifecycle. `postponed` is stored and filterable.
      - `is_ppv` boolean, required
    - `series` 'dwcs' | 'rtufc', required: UFC sub-series with their own rights grid: Dana White's Contender Series, Road to UFC.
    - `countries` WatchCountry[], required: `WORLD` first, then ISO order.
      - `country` string, required: ISO-2 or `WORLD`.
      - `providers` WatchProvider[], required
        - `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: Raw link, no affiliate wrapping.
        - `note_key` string, nullable, required: Short machine key for a caveat (e.g. `mainCardPpv`); null when none.
        - `event_confirmed` boolean, required: true = the event's own listing names this provider.
        - `rank` integer, required: Lower = primary; -1 for an event-confirmed row.
  - `meta` object, required
    - `country` string, nullable, required: The `country=` filter applied, upper-cased; null without one.
    - `note` string
    - `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.
- `308`: The slug is a retired alias (the event or fighter was renamed). Follow `Location` to the canonical URL; the numeric-id form never redirects.
- `400`: Invalid input (`invalid_country`).
- `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)
