U
UFCalendar/ufcalendar-typescript
Official TypeScript SDK for the UFCalendar Fight API — MMA API & UFC API (UFC, PFL, OKTAGON, BKFC, RIZIN):…
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
Install command from the repository
npm install @ufcalendar/sdk
Parsed from the README we fetched on 2026-11-10; we have not executed it.
This is the install method the repository states, not an MCP client config, so no JSON is generated.
Key names differ by client: Clients & CLI
- Star count
- 0 ★ · UFCalendar/ufcalendar-typescript · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- read directly from its GitHub page · type: open-source project
- Harvest history
- first seen 2026-11-11 · last seen 2026-11-14 · seen 4× · listed by 1 sources
- Score
- score 103 · 1 sources · repo
- Install
npm install @ufcalendar/sdk
FAQ (answers come from our records)
How do I install it?
The repository provides this install command:
npm install @ufcalendar/sdk. It comes from the repository itself; we cannot guarantee it runs as-is in your client.Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
UFCalendar/ufcalendar-typescript;first catalogued 2026-11-11;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.# @ufcalendar/sdk — MMA Fight Data API client for TypeScript
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
UFC, PFL, OKTAGON, BKFC and RIZIN events, fight stats, results, rankings history and judges' scorecards from one typed client.
The MMA Fight Data API by UFCalendar (the UFCalendar Fight API) is a REST API for MMA data: UFC, PFL, OKTAGON, BKFC and RIZIN events, full fight cards, results within minutes, per-fight and round-by-round statistics, complete fighter careers, the only MMA data API with point-in-time UFC rankings history back to 2013, and the only one serving judges' scorecards — every official, every round — plus the UFCalendar consensus odds line (current, opening and closing on every plan, line movement on Pro). This package is a dependency-free fetch wrapper over it: one method per endpoint, cursor pagination handled for you, ESM + CJS, Node 18+, browsers and edge runtimes.
bash
npm install @ufcalendar/sdk
Get a free key at — the free plan is 100 requests a month, no card, never expires. Paid plans from $19/month for 30,000 requests (Pro $49 for 200,000, Business $149 for 1,000,000) — hard caps, no overage.
## Quickstart in 3 lines
ts
import { FightAPI } from '@ufcalendar/sdk';
const api = new FightAPI('ufcalendar_...'); // free-plan key, no card
for await (const ev of api.events({ org: 'ufc', limit: 1 })) console.log(ev.title); // the next UFC card
## Quickstart
ts
import { FightAPI } from '@ufcalendar/sdk';
const api = new FightAPI(process.env.UFCALENDAR_API_KEY); // or new FightAPI({ apiKey })
// Upcoming UFC schedule, soonest first
for await (const ev of api.events({ org: 'ufc', limit: 5 })) {
console.log(ev.starts_at, ev.title, ev.is_ppv ? 'PPV' : '');
// Full card + results of the newest completed UFC event
const [latest] = await Array.fromAsync(api.events({ org: 'ufc', status: 'completed', limit: 1 }));
const card = await api.event(latest!.slug);
for (const f of card.card) {
if (f.result) {
console.log(f.fighter_a?.name, 'vs', f.fighter_b?.name, '->', f.result.method, R${f.result.round});
// The judges' scorecards for one bout — the official commission record
const cards = await api.fightScorecards(card.card[0]!.id);
// UFC rankings on any date since February 2013 (rank 0 = champion)
const board = await api.rankings('ufc', { date: '2016-11-14' });
// A fighter's complete multi-promotion career
const history = await api.fighterHistory('islam-makhachev');
List endpoints are async generators that follow meta.pagination.next_cursor for you; pass limit to stop after N rows. Everything else returns the envelope's data. The last response's meta and rate-limit headers stay on the client (api.lastMeta, api.lastRateLimit).
## What's covered
| Method | Endpoint |
| plans() | GET /v1/plans — plans (Free first), quotas, free-plan terms, MCP endpoint (no key required) |
| orgs() / org(slug) | GET /v1/orgs / …/{slug} |
| events({ org, status, from, to, order, isTitleCard, isPpv, include: ['headline'], limit }) | GET /v1/events (paginated; headline = each card's main event and its result) |
| event(slug, { include: ['eta', 'odds'] }) / eventChanges(slug) | GET /v1/events/{slug} / …/changes (eta = per-bout estimated start; odds = each bout's latest consensus line) |
| eventWatch(slug, { country }) | GET /v1/events/{slug}/watch — how to watch one event, per country: the rights deals for its series merged with the event's own listings |
The MMA Fight Data API by UFCalendar (the UFCalendar Fight API) is a REST API for MMA data: UFC, PFL, OKTAGON, BKFC and RIZIN events, full fight cards, results within minutes, per-fight and round-by-round statistics, complete fighter careers, the only MMA data API with point-in-time UFC rankings history back to 2013, and the only one serving judges' scorecards — every official, every round — plus the UFCalendar consensus odds line (current, opening and closing on every plan, line movement on Pro). This package is a dependency-free fetch wrapper over it: one method per endpoint, cursor pagination handled for you, ESM + CJS, Node 18+, browsers and edge runtimes.
bash
npm install @ufcalendar/sdk
Get a free key at — the free plan is 100 requests a month, no card, never expires. Paid plans from $19/month for 30,000 requests (Pro $49 for 200,000, Business $149 for 1,000,000) — hard caps, no overage.
## Quickstart in 3 lines
ts
import { FightAPI } from '@ufcalendar/sdk';
const api = new FightAPI('ufcalendar_...'); // free-plan key, no card
for await (const ev of api.events({ org: 'ufc', limit: 1 })) console.log(ev.title); // the next UFC card
## Quickstart
ts
import { FightAPI } from '@ufcalendar/sdk';
const api = new FightAPI(process.env.UFCALENDAR_API_KEY); // or new FightAPI({ apiKey })
// Upcoming UFC schedule, soonest first
for await (const ev of api.events({ org: 'ufc', limit: 5 })) {
console.log(ev.starts_at, ev.title, ev.is_ppv ? 'PPV' : '');
// Full card + results of the newest completed UFC event
const [latest] = await Array.fromAsync(api.events({ org: 'ufc', status: 'completed', limit: 1 }));
const card = await api.event(latest!.slug);
for (const f of card.card) {
if (f.result) {
console.log(f.fighter_a?.name, 'vs', f.fighter_b?.name, '->', f.result.method, R${f.result.round});
// The judges' scorecards for one bout — the official commission record
const cards = await api.fightScorecards(card.card[0]!.id);
// UFC rankings on any date since February 2013 (rank 0 = champion)
const board = await api.rankings('ufc', { date: '2016-11-14' });
// A fighter's complete multi-promotion career
const history = await api.fighterHistory('islam-makhachev');
List endpoints are async generators that follow meta.pagination.next_cursor for you; pass limit to stop after N rows. Everything else returns the envelope's data. The last response's meta and rate-limit headers stay on the client (api.lastMeta, api.lastRateLimit).
## What's covered
| Method | Endpoint |
| plans() | GET /v1/plans — plans (Free first), quotas, free-plan terms, MCP endpoint (no key required) |
| orgs() / org(slug) | GET /v1/orgs / …/{slug} |
| events({ org, status, from, to, order, isTitleCard, isPpv, include: ['headline'], limit }) | GET /v1/events (paginated; headline = each card's main event and its result) |
| event(slug, { include: ['eta', 'odds'] }) / eventChanges(slug) | GET /v1/events/{slug} / …/changes (eta = per-bout estimated start; odds = each bout's latest consensus line) |
| eventWatch(slug, { country }) | GET /v1/events/{slug}/watch — how to watch one event, per country: the rights deals for its series merged with the event's own listings |
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/ufcalendar-ufcalendar-typescript/)
- Source
- github · https://github.com/UFCalendar/ufcalendar-typescript
- Browse by field
- Open source
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.