The UFC calendar, as JSON.
Every upcoming UFC event with its start time in UTC, the event and venue time zones, and the location, plus the full card one call away. Contender Series episodes are on the same schedule.
- UTC plus event and venue time zones
- DWCS on the same feed
- 500 free requests / month
{ "success": true, "data": [ { "slug": "cryptocom-ufc-331", "title": "Crypto.com UFC 331", "status": "scheduled", "startsAt": "2026-09-20T01:00:00.000Z", "eventDate": "2026-09-19", "eventTimeZone": "America/New_York", "locationText": "Crypto.com Arena, Los Angeles United States" }, ... ]}Seamless Integration with our MCP Server
Give Claude, Cursor, and Grok the UFC card. One command writes the MCP config, agents call live and card tools instead of inventing fight IDs, and your key stays on your machine.
MCPInstall the Cito MCP serverA schedule you can build on
Dates that stay correct across time zones, statuses that move with the night, and a direct path from a date to its fights.
Upcoming events
Numbered events, Fight Nights, and Contender Series episodes, soonest first, with clean slugs.
Time zones done right
startsAt in UTC, plus eventDate, eventTimeZone, venueTimeZone, and venueDate so a Saturday card stays Saturday.
Venue and location
Venue, city, state, country, and a ready-to-display location line for every event.
The card behind the date
Open /events/{slug}/bouts for every fight on the card, including corners, weight classes, and card sections.
Changes and cancellations
Bouts carry isCancelled and cancellationReason, so a scratched fight is visible rather than silently missing.
Status through the night
Events move from scheduled to live to completed, and completed cards link straight to results and stats.
Endpoints you can ship with
Start on events: list what is coming, open one event, then pull the card.
Live data
Subscribe over WebSocket for pushed bout updates, use the SSE stream for one-way clients, or poll the live card on fight night.
- GET
/api/v1/ufc/liveLive card overview: active bouts, clocks, lagSeconds, recommendedPollSeconds.
- GET
/api/v1/ufc/live/eventsFight-night events currently tracked by the live worker.
- GET
/api/v1/ufc/live/{boutId}One live bout: clock, fighters, and stats when available.
- GET
/api/v1/ufc/live/{boutId}/stateCompact live state for polling clients.
- GET
/api/v1/ufc/live/wsWebSocket push: subscribe to bout:{boutId} or event:{eventSlug} rooms.
- GET
/api/v1/ufc/live/streamSSE push feed, filterable by boutId and/or eventSlug.
- GET
/api/v1/ufc/live/healthLive worker health and heartbeat lag.
Events & cards
Use /ufc/events/upcoming for the schedule, /ufc/events/{slug} for one event's dates and venue, and /ufc/events/{slug}/bouts for its card.
- GET
/api/v1/ufc/events?page=1&limit=50Paginated events with clean slugs and stable IDs.
- GET
/api/v1/ufc/events/upcomingUpcoming fight cards.
- GET
/api/v1/ufc/events/recentRecently completed events.
- GET
/api/v1/ufc/events/{eventIdOrSlug}Event detail by slug or stable data ID.
- GET
/api/v1/ufc/events/{eventIdOrSlug}/boutsAll bouts on one card, including corner fighters.
Bouts & results
Results for any fight: who won, how, when it ended, and the event context around it.
- GET
/api/v1/ufc/bouts?hasStats=truePaginated bout list with optional stat rows.
- GET
/api/v1/ufc/bouts/{boutId}Fighters, result, method, round, time, referee, weight class.
Fight stats
Significant strikes, takedowns, control time, and knockdowns as bout totals or per round, with head/body/leg and position splits.
- GET
/api/v1/ufc/bouts/{boutId}/statsBout-level fighter stat totals, or one round with ?round=1.
- GET
/api/v1/ufc/bouts/{boutId}/roundsRound-by-round fighter stat rows for one bout.
- GET
/api/v1/ufc/events/{eventIdOrSlug}/statsFight stats for a whole card, filterable by round.
Fighters
Build profile pages and matchup tools: record, bio, career stat aggregates, and every past fight.
- GET
/api/v1/ufc/search?q={name}Search fighters, events, bouts, and divisions.
- GET
/api/v1/ufc/fighters?page=1&limit=50Paginated fighter directory.
- GET
/api/v1/ufc/fighters/{slug}Profile, bio, record, rankings, and stat summary.
- GET
/api/v1/ufc/fighters/{slug}/statsStriking, grappling, accuracy, defense, and win-method stats.
- GET
/api/v1/ufc/fighters/{slug}/fightsFight history for one fighter.
Rankings
Algorithmic Meta rankings and media-panel rankings by division, as separate endpoints.
- GET
/api/v1/ufc/rankingsMeta UFC Rankings grouped by division.
- GET
/api/v1/ufc/rankings/meta/{division}Meta rankings for one division, such as lightweight.
- GET
/api/v1/ufc/rankings/mediaMedia-panel rankings grouped by division.
- GET
/api/v1/ufc/rankings/media/{division}Media-panel rankings for one division.
Odds
Card and fight odds grouped by market, bookmaker, and outcome, with sportsbook filters.
- GET
/api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=allAll odds for one card, grouped by fight and market.
- GET
/api/v1/ufc/fights/{boutId}/odds?bookmaker=draftkingsOdds for one fight, filterable by sportsbook.
FAQs
Upcoming events, time zones, and card changes
Can't find what you're looking for? Contact our customer support team
From the date to the result
Follow an event from announcement to archive.
- UFC APIFighters, cards, results, rankings, and round-by-round stats in one API.
- UFC fight card APIEvery bout on the card behind a scheduled date.
- UFC live APIClocks and bout state once the event starts.
- UFC WebSocket APIPush fight-night updates instead of polling.
- UFC results APIWinners, methods, and rounds after the event.
- DWCS APIContender Series cards and results on their own.
Build UFCÂ event calendars
The schedule is on every plan, including Free. Add live data and odds on Pro when your app follows the night itself.