# FighterAPI > The fight data API. 11 MMA data tools for AI agents. REST API + MCP server. Full reference with response shapes: https://fighterapi.com/llms-full.txt MCP server setup: https://fighterapi.com/llms-install.md MCP server for AI agents (clients, prompts, every tool): https://fighterapi.com/mcp Datasets with live coverage by season: https://fighterapi.com/docs/atlas Tool catalogue with JSON Schema: https://mcp.fighterapi.com/v1/tools OpenAPI 3.1 spec: https://mcp.fighterapi.com/openapi.json ## Quick Start - API base URL: https://mcp.fighterapi.com - Auth: `Authorization: Bearer YOUR_API_KEY` or `x-api-key: YOUR_API_KEY` - MCP server: `https://mcp.fighterapi.com/mcp?key=YOUR_API_KEY` - Python client: `pip install fighterapi` (https://pypi.org/project/fighterapi/). Reads FIGHTERAPI_API_KEY. - 500 free credits every month, no credit card required - REST API responses include `X-Credits-Used` and `X-Credits-Remaining` headers - Seasons: 4-digit year (cards are grouped by calendar year). Fight ids like 401630119 (a competition id; list a card's fights with get_event). ## Data timing and rights - Odds and props are pre-game only. captured_at is when a line was captured (the page says exactly what it means for each kind of row); where props are held, rows also carry scheduled_start and minutes_before_scheduled_start (negative when captured after the scheduled start). - Records are overwritten when sources correct them; no revision history is kept. - You may store the data, train models, backtest, and build commercial products that show your users what you derive. You may not redistribute the data, or odds as a raw feed, as a dataset or API of its own. After an account closes, stored data is for internal use only. - FighterAPI is independent, not an official league partner, and grants no league rights. - Full answers: https://fighterapi.com/docs/timing-and-rights ## Which Tool Should I Use? ### Static reference - Cards by year and status, with the main event -> list_events (1 cr) - Find fighters by name or nickname -> search_fighters (1 cr) ### Basic lookup - A card's fights with results, method, round, time and judges' scores -> get_event (2 cr) - Upcoming fights with current moneylines where a book has posted one -> get_schedule (2 cr) - Our fighter ratings (Elo from every UFC result since 2000) -> get_ratings (2 cr) ### Stats + aggregation - One fight: result, full stat sheets, round-by-round lines, ratings and odds -> get_fight (5 cr) - Profile, UFC record by method, career rates, rating and recent fights -> get_fighter (5 cr) - A fighter's full UFC history with stats, ratings and closing lines -> get_fighter_fights (5 cr) - Career leaderboards from every fight's stat sheet -> get_leaders (5 cr) - Opening, closing and current moneylines by sportsbook for a fight (5) or a card (10) -> get_odds (5 cr) ### Time-series - Snapshots of each posted line before a fight -> get_line_movement (10 cr) ## Intents - "What happened at UFC 298?" -> get_event - "Which UFC cards were held in 2025?" -> list_events - "Who is fighting in the next month, and at what price?" -> get_schedule - "Round by round, how did Volkanovski vs. Topuria go?" -> get_fight - "What is Ilia Topuria's fighter id?" -> search_fighters - "How does Topuria fight, in numbers?" -> get_fighter - "Every UFC fight Topuria has had, with closing lines" -> get_fighter_fights - "Who lands the most significant strikes per 15 minutes since 2020?" -> get_leaders - "Who are the highest-rated featherweights right now?" -> get_ratings - "What did each sportsbook open and close Volkanovski vs. Topuria at?" -> get_odds - "How did the line move before a fight?" -> get_line_movement ## Pages - [Docs](https://fighterapi.com/docs): every endpoint, with parameters and a live example response. - [Data changelog](https://fighterapi.com/changelog): when each dataset was last refreshed and what it runs through, read from the database. - [Status](https://fighterapi.com/status): measured uptime for the website and MCP server over 24 hours, 7 days and 90 days, probed every five minutes from outside our own infrastructure, with incidents and data freshness. - [Data atlas](https://fighterapi.com/docs/atlas): what exists, which endpoints expose it, and where coverage is partial. - [Fighters](https://fighterapi.com/fighters): a page per UFC fighter with the record by method, career rates, rating and every fight. - [Data timing and rights](https://fighterapi.com/docs/timing-and-rights): what timestamps mean, when each dataset updates, whether lines are pre-game, and what the terms allow. - [Pricing](https://fighterapi.com/pricing): credits per call and what a plan includes. - [Sign up](https://fighterapi.com/signup): 500 free credits every month, no card. ### Live odds - [Upcoming fight odds](https://fighterapi.com/odds): Moneylines for upcoming UFC fights from the sportsbooks that post them. Lines are captured daily, and every hour for fights in the next four days. ### Other leagues - [The PFL fight data API](https://fighterapi.com/pfl): PFL fight data since 2012: results with method, round and time for 1,200+ fights, fighter profiles, ratings and sportsbook moneylines. REST and MCP. MCP: https://mcp.fighterapi.com/mcp/pfl - [The Bellator fight data API](https://fighterapi.com/bellator): Bellator fight data from 2009 to 2024: results with method, round and time for 3,000+ fights, fighter profiles and ratings. REST and MCP. MCP: https://mcp.fighterapi.com/mcp/bellator ### Datasets - [UFC fight stats data](https://fighterapi.com/data/ufc-fight-stats): The full stat sheet for nearly every UFC fight since 2000: strikes by target and position, takedowns, control time, reversals and submission attempts. REST or MCP. - [UFC round-by-round stats](https://fighterapi.com/data/round-by-round-stats): Strikes, takedowns, control time and submission attempts for every round of nearly every UFC card since 2000, checked against fight totals. REST or MCP. - [UFC fighter database](https://fighterapi.com/data/ufc-fighter-database): Every fighter who has fought in the UFC since 2000: date of birth, height, reach, stance, gym, record by method, career rates and our rating. REST or MCP. - [UFC odds data](https://fighterapi.com/data/ufc-odds): Opening and closing moneylines for UFC fights since June 2020, joined to the result and both fighters' stat sheets, with line movement for upcoming fights. ### Compared with the alternatives - [The UFC API: UFC Stats, ESPN's feed and FighterAPI](https://fighterapi.com/compare/mma-api): UFC Stats, its community scrapers and ESPN's UFC JSON are free but have no API contract. Where each fits, and how FighterAPI differs. (checked 2026-10-14) - [FighterAPI vs scraping UFC Stats](https://fighterapi.com/compare/ufc-stats-scraper): UFC Stats has no API and shows a browser challenge. FighterAPI serves round data with results, fighters, odds and ratings over REST and MCP. (checked 2026-09-26) - [FighterAPI vs the Kaggle UFC datasets](https://fighterapi.com/compare/kaggle-ufc-dataset): Kaggle UFC datasets are free CSV snapshots updated by their authors. FighterAPI serves fight data updated every morning, queried per request. (checked 2026-09-26) - [FighterAPI vs Sportradar and SportsDataIO](https://fighterapi.com/compare/sportradar-sportsdataio): Sportradar and SportsDataIO sell licensed, live MMA feeds through sales. FighterAPI serves historical UFC data with self-serve pricing from $19 a month. (checked 2026-10-07) - [FighterAPI vs reading ESPN's UFC feed](https://fighterapi.com/compare/espn-mma-api): ESPN's UFC JSON is public but undocumented. FighterAPI serves fight results with round-by-round stats, fighter profiles, odds and ratings, documented over REST and MCP. (checked 2026-10-09) ### Endpoint pages - [list_events](https://fighterapi.com/docs/list-events): Cards by year and status, with the main event - [get_event](https://fighterapi.com/docs/get-event): A card's fights with results, method, round, time and judges' scores - [get_schedule](https://fighterapi.com/docs/get-schedule): Upcoming fights with current moneylines where a book has posted one - [get_fight](https://fighterapi.com/docs/get-fight): One fight: result, full stat sheets, round-by-round lines, ratings and odds - [search_fighters](https://fighterapi.com/docs/search-fighters): Find fighters by name or nickname - [get_fighter](https://fighterapi.com/docs/get-fighter): Profile, UFC record by method, career rates, rating and recent fights - [get_fighter_fights](https://fighterapi.com/docs/get-fighter-fights): A fighter's full UFC history with stats, ratings and closing lines - [get_leaders](https://fighterapi.com/docs/get-leaders): Career leaderboards from every fight's stat sheet - [get_ratings](https://fighterapi.com/docs/get-ratings): Our fighter ratings (Elo from every UFC result since 2000) - [get_odds](https://fighterapi.com/docs/get-odds): Opening, closing and current moneylines by sportsbook for a fight (5) or a card (10) - [get_line_movement](https://fighterapi.com/docs/get-line-movement): Snapshots of each posted line before a fight ### Metric definitions - [Significant strike](https://fighterapi.com/glossary/significant-strike): Any strike thrown at distance, plus power strikes in the clinch and on the ground. Most fight analysis starts here. - [Rate per 15 minutes](https://fighterapi.com/glossary/strikes-per-15): A count divided by time fought, scaled to 15 minutes: the length of a full three-round fight. - [Strike defense](https://fighterapi.com/glossary/strike-defense): The share of an opponent's significant strike attempts that did not land, across a fighter's career. - [Takedown accuracy and defense](https://fighterapi.com/glossary/takedown-accuracy): Takedowns landed over attempted; defense is the share of an opponent's takedown attempts that failed. - [Control time](https://fighterapi.com/glossary/control-time): Time spent in a dominant position: on top on the ground, or pinning an opponent against the fence in the clinch. - [Knockdown](https://fighterapi.com/glossary/knockdown): A strike that drops an opponent, a hand or knee touching the canvas, or leaves them visibly out on their feet. - [Finish rate](https://fighterapi.com/glossary/finish-rate): The share of a fighter's wins that came by knockout, technical knockout or submission rather than on the scorecards. - [Decisions and scorecards](https://fighterapi.com/glossary/decision): A fight that reaches the final bell is scored by three judges, round by round, on the ten-point must system. - [Round-by-round stats](https://fighterapi.com/glossary/round-by-round): The fight's stat sheet split into rounds, for each fighter: strikes, takedowns, control and submission attempts. - [Closing line](https://fighterapi.com/glossary/closing-line): A sportsbook's last price before the fight starts: the market's final, best-informed view of the fight. - [Implied probability](https://fighterapi.com/glossary/implied-probability): The win chance a moneyline implies, before the sportsbook's margin is taken out. - [Line movement](https://fighterapi.com/glossary/line-movement): How a fight's price changed between the opening line and the bell, from our snapshots of each posted line. - [Fighter rating (Elo)](https://fighterapi.com/glossary/elo): Our rating of every fighter, updated after each UFC fight from the result alone, starting from 1,500. ### By what you are building - [Bettors and modellers](https://fighterapi.com/for/bettors): Opening and closing moneylines for UFC fights since June 2020, joined to the result, the full stat sheet and both fighters' ratings. - [Analysts and researchers](https://fighterapi.com/for/analysts): Strikes by target and position, takedowns, control time and submission attempts for nearly every fight and round. - [Developers and AI builders](https://fighterapi.com/for/developers): REST and MCP over the same data: cards, fights, fighters, stats and odds, with ids that stay stable. ### Code guides Python, JavaScript and cURL for common questions, each run against the live API (code verified 2026-10-12). Index: https://fighterapi.com/guides - [How do I get UFC fight stats per round in Python?](https://fighterapi.com/guides/ufc-fight-stats-per-round-python): One fight with the full stat sheet for both fighters and a row per fighter per round: strikes landed and attempted by target and range, takedowns and control time. Tool: get_fight. - [How do I get a UFC fighter's record and career striking rates in Python?](https://fighterapi.com/guides/ufc-fighter-record-and-career-rates-python): Record by method, career rates per 15 minutes for striking, takedowns and control, Elo rating and peak, and recent fights, from one call. Tool: get_fighter. - [How do I get UFC fighter Elo ratings by weight class?](https://fighterapi.com/guides/ufc-elo-ratings-by-weight-class-python): Our Elo rating for every fighter, built from every UFC result since 2000, filtered to a weight class and to fighters who have fought recently. Tool: get_ratings. - [Who lands the most significant strikes per 15 minutes in the UFC?](https://fighterapi.com/guides/ufc-career-striking-leaders-python): A career leaderboard built from every fight's stat sheet, for a weight class, with a minimum number of fights so small samples do not top it. Tool: get_leaders. - [How do I compare UFC closing odds with fight results in Python?](https://fighterapi.com/guides/ufc-closing-odds-vs-results-python): Every fight on a card with each sportsbook's opening, closing and current moneyline next to the winner, method and round. Tool: get_odds. - [How do I get UFC line movement for a fight in Python?](https://fighterapi.com/guides/ufc-line-movement-python): Snapshots of each sportsbook's moneyline from first capture to fight day, with the result. This shows how far each book moved and which fighter the market moved toward. Tool: get_line_movement. - [How do I get PFL odds and results for a card in Python?](https://fighterapi.com/guides/pfl-odds-vs-results-python): Every fight on a PFL card with each sportsbook's opening and closing moneyline next to the winner and method. Favourites won 6 of the 9 priced fights on this card. Tool: get_odds. - [How do I get the upcoming UFC fight schedule in Python?](https://fighterapi.com/guides/ufc-upcoming-fights-python): Every scheduled bout in the next 30 days: 52 bouts across five cards, with weight class, card segment and scheduled rounds. Tool: get_schedule. - [How do I get UFC event results and the fight card in Python?](https://fighterapi.com/guides/ufc-event-results-fight-card-python): A full UFC card with the result of every bout: winner, method, round and time. UFC 332 had 14 bouts and 11 of them ended in KO/TKO. Tool: get_event. - [How do I get a UFC fighter's fight history in Python?](https://fighterapi.com/guides/ufc-fighter-fight-history-python): Every UFC fight for a fighter, newest first, with result, method, strikes landed and rating after. Ilia Topuria was 9-1 over ten fights. Tool: get_fighter_fights. ### Claude skills 16 free Claude skills (SKILL.md files) wired to these tools: https://github.com/noahowsh/fighterapi-mcp/tree/main/skills. Overview: https://fighterapi.com/skills - fight-lookup (Data Exploration): Result, method, scorecards and stat sheet for one fight. - event-lookup (Data Exploration): Cards by year, fight-by-fight results, finish rates, upcoming fights. - fighter-scouting (Data Exploration): Scouting report: record by method, career rates, rating, recent form. - odds-explorer (Data Exploration): Compare open, close and current moneylines and total rounds across books. - round-by-round-stats (MMA Analytics): Per-round striking and grappling rates, target splits, fatigue fade. - career-rates (MMA Analytics): Rank fighters on strikes, takedowns, control and finish rate per 15 minutes. - elo-by-weight-class (MMA Analytics): Elo leaderboards by division, rating gaps as win probabilities. - favourite-calibration (MMA Analytics): Closing odds vs results: do favourites win as often as priced. - odds-analysis (Methodology): Odds conversion and vig removal: multiplicative, power and Shin. - probability-calibration (Methodology): Reliability tables, Brier, log loss, Platt scaling, model vs closing line. - walk-forward-validation (Methodology): Leak-free time-ordered testing for fight models. - edge-detection (Betting): Model vs devigged market, expected value, CLV, variance and staking caveats. - backtesting (Betting): Simulate betting rules on past cards with opening and closing lines. - fight-preview (Workflow): Matchup preview: form, rates, physical gaps, rating gap and the market. - fighterapi-tool (Infrastructure): Tool router: all 11 tools, credits, response envelope, REST and MCP. - dispatch (Infrastructure): Routes a request to the two or three skills that should load together.