← FighterAPICONTENT HISTORY
WHAT CHANGED
Update to FighterAPI
Snapshot Oct 30, 2026 · 00:06 UTC · version 1.0.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save FighterAPI and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Ranks and profiles UFC fighters on career rates from the stat sheets: significant strikes landed and absorbed per 15 minutes, accuracy, defense, takedowns, control share, submission attempts, knockdowns and finish rate. Use when the user asks who the best striker, wrestler or finisher is, who has the best chin or defense, or how a fighter compares to a division. Do not use for a single fight's rounds -- see round-by-round-stats. Do not use for a full scouting report -- see fighter-scouting.",
"included_files": [],
"name": "career-rates",
"skill_md_contents": "---\nname: career-rates\ndescription: \"Ranks and profiles UFC fighters on career rates from the stat sheets: significant strikes landed and absorbed per 15 minutes, accuracy, defense, takedowns, control share, submission attempts, knockdowns and finish rate. Use when the user asks who the best striker, wrestler or finisher is, who has the best chin or defense, or how a fighter compares to a division. Do not use for a single fight's rounds -- see round-by-round-stats. Do not use for a full scouting report -- see fighter-scouting.\"\nmetadata:\n version: 1.0.0\n author: FighterAPI\n---\n\n# Career Rates\n\n> **Default data tool:** FighterAPI (`fighterapi-tool`).\n> Use `get_leaders` (5 credits) for a ranked list on one stat. Use `get_fighter` (5 credits) for one fighter's full `career_rates`.\n\nYou are an expert in combat sports statistics. Your goal is to rank and compare fighters on rates that are fair across fight lengths, with minimum-fight filters that keep one lucky night from topping a list.\n\n## When to Use\n\n- \"Who lands the most significant strikes per minute at 155?\"\n- \"Best takedown defense in the UFC\"\n- \"Who finishes the most\"\n- \"How does this fighter's output compare to the division?\"\n\n## When NOT to Use\n\n- Per-round detail inside one fight -- see `round-by-round-stats`\n- A full profile with record and form -- see `fighter-scouting`\n- Predicting a fight -- see `fight-preview`\n\n## Commands Available\n\n| Command | What It Does | Credits |\n|---------|-------------|---------|\n| `get_leaders` | Leaderboard on one `stat`, filtered by `weight_class`, `since`, `min_fights` | 5 |\n| `get_fighter` | One fighter's `career_rates` and rating | 5 |\n| `search_fighters` | Find a fighter id | 1 |\n\n## Commands That Do NOT Exist\n\n| Not Available | Use Instead |\n|--------------|-------------|\n| `get_stats_leaders` or `get_top_fighters` | `get_leaders` |\n| `get_pound_for_pound` | `get_ratings` (our Elo, not an official list) |\n| `get_career_stats` | `get_fighter`, `career_rates` |\n| `get_leaders` with several stats at once | One call per stat |\n\n## The Eleven Leaderboard Stats\n\n`get_leaders` takes `stat` as one of:\n\n| `stat` | Meaning |\n|--------|---------|\n| `sig_landed_per_15` | Significant strikes landed per 15 minutes |\n| `sig_absorbed_per_15` | Significant strikes absorbed per 15 minutes |\n| `sig_accuracy` | Share of significant strikes that land |\n| `sig_defense` | Share of opponent significant strikes that miss |\n| `td_per_15` | Takedowns landed per 15 minutes |\n| `td_accuracy` | Takedowns landed over attempted |\n| `td_defense` | Opponent takedowns stopped |\n| `knockdowns` | Total knockdowns |\n| `sub_attempts_per_15` | Submission attempts per 15 minutes |\n| `control_share` | Share of fight time in control |\n| `finish_rate` | Wins by KO/TKO or submission as a share of wins |\n\nOther parameters: `weight_class` (for example Lightweight), `since` (a year, counts only fights from then on), `min_fights` (default 5, up to 50) and `limit` (default 20, up to 100). Each row has `rank`, `fighter_id`, `name`, `weight_class`, `fights` and `value`.\n\nReal call (Lightweight, `sig_accuracy`, `min_fights` 8): first place Benoit Saint Denis at 0.613 over 12 fights. Quote results as returned and say the filter you used.\n\n## Choosing a Minimum\n\n| Stat | Reasonable `min_fights` | Why |\n|------|------------------------|-----|\n| Per-15 and accuracy stats | 8 or more | Rates stabilize slowly; 3 fights is noise |\n| `finish_rate` | 8 or more | Few fights makes 100% or 0% common |\n| `knockdowns` | Use with `since` and compare per fight | A raw count favours long careers |\n| `td_defense` | 8 or more, and check attempts faced | 100% defense on 2 attempts means nothing |\n\n`get_leaders` does not return attempts faced. If a defense stat looks perfect, pull `get_fighter` for that fighter and check `minutes_fought` and `td_per_15` context before trusting it.\n\n## Style Profiles\n\nBuild a style label from percentiles within the weight class, not from raw values.\n\n1. Pull `get_leaders` for `sig_landed_per_15`, `td_per_15` and `control_share` with a large `limit` (100).\n2. Place the fighter's `career_rates` among the returned values.\n3. Label: high strikes and low takedowns is a striker; high takedowns and control is a grappler; high on both is a pressure all-rounder.\n\nThis costs 15 credits for three leaderboards. State it first. Leaderboards are capped at 100 per call, so a fighter outside the top 100 on a stat will not be located by position. Use the `value` of the 100th row as a threshold and say \"outside the top 100\".\n\n## Combining Rates\n\n- **Net striking** = `sig_landed_per_15` minus `sig_absorbed_per_15`. Both are per 15 minutes, same scale, so the difference is valid.\n- **Never subtract an accuracy from a per-15 rate.** Different scales.\n- **Durability proxy** = `sig_defense` together with `sig_absorbed_per_15`. A fighter can absorb few strikes by never fighting at range. Pair them with KO losses from `get_fighter`.\n- **Finishing profile** = `finish_rate` together with `knockdowns` and `sub_attempts_per_15`.\n\n## Pitfalls\n\n- Rates are career averages. A fighter's best years and worst years blend. Use `since` for a recent window and compare.\n- Weight-class moves: with `weight_class` set, only fights in that class count. A fighter's fights at other weights are excluded. Say so.\n- UFC only. PFL and Bellator fighters have no `career_rates`.\n- Opponent quality is not in the rate. A high `sig_landed_per_15` against weak opposition is not equal to the same number against contenders. Pair with `elo-by-weight-class`.\n- Early finishes produce small minute totals. `minutes_fought` is in `get_fighter`.\n\n## Worked Example\n\nRequest: \"Where does Topuria rank at lightweight on striking accuracy?\"\n\n```\nget_leaders(stat=\"sig_accuracy\", weight_class=\"Lightweight\", min_fights=8, limit=100)\nget_fighter(fighter_id=\"4350812\")\n```\n\n`get_fighter` gave `sig_accuracy` 0.501 over 104 minutes. Find the position in the leaderboard by `fighter_id`, report it with the filter, and note the fighter might be excluded if fewer than 8 fights qualify (he had 10 UFC bouts at the time of the call, so he would qualify at 8).\n\n## Output Format\n\n```\nLightweight, sig_accuracy, min 8 fights, since 2020\n1 Benoit Saint Denis 0.613 (12 fights)\n2 ...\nFighter: Topuria 0.501, rank N of M (placed by fighter_id)\nCaveat: sample, opponent quality not controlled\n```\n\n## What to Do Next\n\n| Finding | Next Skill |\n|---------|-----------|\n| Fighter stands out | `fighter-scouting` |\n| Want rates as model features | `walk-forward-validation` |\n| Want division Elo context | `elo-by-weight-class` |\n"
}SHA-256 of public snapshot: e01ea1fa061388dfcf1f820e88960ed89b33fddd86d4c863322c13241ed0de73