Events

List events (schedule + results)

A bare listing is the upcoming calendar: events from the last ~6h onward, soonest first. Ordering defaults: explicit order always wins; else from= or a forward status (announced|scheduled|live|upcoming) → asc; else (completed|cancelled|postponed|to=) → desc, newest first. order=desc with no filters browses the full archive newest-first. Live results land within ≤5 minutes (UFC ≤2). Rows are the list shape (no card) — short_title, numbering and the three section clocks (main_card_at, prelims_at, early_prelims_at, null when the org publishes no split) ride along.

get/v1/events

Request

  • Base URL: https://api.ufcalendar.com
  • URL: https://api.ufcalendar.com/v1/events
  • Auth: HTTP bearer

Query parameters

org'ufc' | 'pfl' | 'oktagon' | 'bkfc' | 'rizin'

Launch org slug: ufc, pfl, oktagon, bkfc or rizin. Staged orgs 400 until promoted.

status'announced' | 'scheduled' | 'live' | 'completed' | 'cancelled' | 'postponed' | 'upcoming'

What ?status= accepts on the event lists: every EventStatus, plus upcoming = announced, scheduled or live cards that have not finished (the site's upcoming-or-live window: started under 6 h ago, or under 14 h ago with a bout still to fight). upcoming is a filter only — it never appears on an event.

Filter on lifecycle status; postponed is accepted (2026-09-24). upcoming = everything not yet over (announced, scheduled or live), soonest first.

fromstring date

First UTC calendar day, inclusive YYYY-MM-DD, matched against the event's starts_at (first bell, UTC) — not the venue's local date. Must be a real calendar day.

tostring date

Last UTC calendar day, inclusive YYYY-MM-DD, matched against starts_at (UTC). An evening card in the Americas starts after midnight UTC, so it falls on the next UTC day: a Saturday-night Las Vegas card needs to= the Sunday. Must be a real calendar day.

order'asc' | 'desc'

Sort by start time. Defaults are contextual — see endpoint description.

is_title_cardboolean

true = only cards with a title bout, false = only cards without one.

is_ppvboolean

true = only pay-per-view cards, false = only non-PPV cards.

include'headline'

headline adds each event's main event: { fight_id, fighter_a, fighter_b, weight_class, is_title, winner_fighter_id, method, round, time } (corners are { id, slug, name }), or null when the card has no main-event bout. A replaced main event is skipped in favour of the active one. One extra query per page. Unknown values 400 invalid_include.

cursorstring

Opaque cursor from meta.pagination.next_cursor.

limitinteger

Response

Events page

Example response

{
  "data": [
    {
      "sport": "mma"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.