← 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": "Builds a scouting report on one UFC, PFL or Bellator fighter: bio, reach, stance, record by method, career rates per 15 minutes, rating, recent form and opponent quality. Use when the user asks about a fighter, wants strengths and weaknesses, a style read, record by finish type, or a fighter's id. Do not use for a single fight -- see fight-lookup. Do not use to compare a whole division -- see elo-by-weight-class or career-rates. Do not use for prices -- see odds-explorer.",
"included_files": [],
"name": "fighter-scouting",
"skill_md_contents": "---\nname: fighter-scouting\ndescription: \"Builds a scouting report on one UFC, PFL or Bellator fighter: bio, reach, stance, record by method, career rates per 15 minutes, rating, recent form and opponent quality. Use when the user asks about a fighter, wants strengths and weaknesses, a style read, record by finish type, or a fighter's id. Do not use for a single fight -- see fight-lookup. Do not use to compare a whole division -- see elo-by-weight-class or career-rates. Do not use for prices -- see odds-explorer.\"\nmetadata:\n version: 1.0.0\n author: FighterAPI\n---\n\n# Fighter Scouting\n\n> **Default data tool:** FighterAPI (`fighterapi-tool`).\n> Start with `search_fighters` (1 credit), then `get_fighter` (5 credits) for the profile and `get_fighter_fights` (5 credits) for the history.\n\nYou are an expert fight analyst. Your goal is a report a Odds reader or a fan can use: what the fighter does, how well, against whom, and how sure we can be given the sample.\n\n## When to Use\n\n- \"Tell me about Max Holloway\"\n- Reach, height, stance, gym, age\n- Win and loss counts by KO, submission and decision\n- Strikes landed and absorbed per 15 minutes, takedown and control numbers\n- Form over the last several fights, and the quality of opponents faced\n\n## When NOT to Use\n\n- One specific fight -- see `fight-lookup`\n- Ranking many fighters on one stat -- see `career-rates`\n- Elo comparisons across a division -- see `elo-by-weight-class`\n- Preview of a booked fight -- see `fight-preview`\n\n## Commands Available\n\n| Command | What It Does | Credits |\n|---------|-------------|---------|\n| `search_fighters` | Find a fighter by name or nickname, with weight class, country, bouts | 1 |\n| `get_fighter` | Bio, record, career rates, rating, last five fights | 5 |\n| `get_fighter_fights` | Full history with stats, ratings before and after, median closing line | 5 per page |\n| `get_leaders` | Where the fighter ranks on a stat (use sparingly) | 5 |\n\n## Commands That Do NOT Exist\n\n| Not Available | Use Instead |\n|--------------|-------------|\n| `get_fighter_stats` | `get_fighter`, the `career_rates` object |\n| `get_fighter_by_name` | `search_fighters` |\n| `get_fighter_odds` | `get_fighter_fights` (median closing line) or `get_odds` |\n| `compare_fighters` | Call `get_fighter` for each and compare the fields |\n| `get_fighter_news`, `get_injuries` | Not available |\n\n## Step 1: Resolve the Fighter\n\n`search_fighters` takes `query` (name or nickname, accents optional, at least 2 characters), optional `weight_class` and `limit`. The reply lists `fighter_id`, `name`, `nickname`, `weight_class`, `country`, `date_of_birth`, `bouts`, `ufc_bouts` and `last_bout`.\n\nIf more than one fighter matches, show the candidates and ask. Use `weight_class` to disambiguate. A fighter with `last_bout` years old is retired or inactive: say so.\n\n## Step 2: Pull the Profile\n\n`get_fighter` returns:\n\n- `fighter`: `height_in`, `reach_in`, `stance`, `gym`, `country`, `weight_class`\n- `record` and `ufc_record`: wins, losses, draws, no contests, and `wins_ko`, `wins_sub`, `wins_dec`, `losses_ko`, `losses_sub`, `losses_dec`\n- `career_rates`: `minutes_fought`, `sig_landed_per_15`, `sig_absorbed_per_15`, `sig_accuracy`, `sig_defense`, `td_per_15`, `td_accuracy`, `td_defense`, `sub_attempts_per_15`, `control_share`, `knockdowns` (UFC only)\n- `rating`: `current` and `peak`\n- `recent_fights`: the last five\n\nReal shape from a live call (Ilia Topuria): record 9-1 with 6 KO wins, `sig_landed_per_15` 72.23, `sig_absorbed_per_15` 59.57, `sig_accuracy` 0.501, `td_defense` 0.952, `minutes_fought` 104, rating 1655 current and 1670 peak.\n\n`pro_record` is the career record before the promotion and is often null. Do not state a total career record unless it is there.\n\n## Step 3: Pull the History\n\n`get_fighter_fights` takes `fighter_id`, `limit` (default 50, up to 200) and `offset`. Each row has the fight header plus `result` (`win` or `loss` for that fighter), `sig_landed`, `sig_absorbed`, `td_landed`, `rating_before`, `rating_after` and `median_closing_line` (the fighter's own median close across books, where one exists). Page with `next_offset`.\n\n## Analysis Framework\n\n1. **Style read.** Compare `sig_landed_per_15` and `td_per_15` and `control_share` to division norms from `get_leaders` (one call per stat, 5 credits). Striker, wrestler, or mixed.\n2. **Durability.** `sig_absorbed_per_15`, `sig_defense`, `losses_ko`. A low defense number with few KO losses is a small-sample warning.\n3. **Finishing.** Share of wins by KO or submission. `finish_rate` in `get_leaders` is the same idea across the division.\n4. **Form.** Last five `result` values and rating change. A rating move of `rating_after - rating_before` shows how much a fight surprised the model.\n5. **Opponent quality.** Match opponents' ratings at the time. Beating 1500-rated opponents is not the same as beating 1650-rated ones.\n6. **Physical.** Reach and height gap to a named opponent, stance matchup (orthodox against southpaw).\n7. **Layoff.** Days between `event_date` values in the history.\n\n## Sample-size Rules\n\n- Under 5 UFC fights, or `minutes_fought` under 60: label every rate \"early, noisy\".\n- Career rates are averages. A fighter who changed weight class or style recently will not look like the average.\n- Rates come from stat sheets, so they exist only for UFC fights with a sheet. For PFL and Bellator they are null.\n\n## Comparing Two Fighters\n\nWhen the user names two fighters but no booked fight, call `get_fighter` for each and compare field by field: reach, stance, rates, finishing, rating. Do not call this a prediction. If a fight is booked, use `fight-preview`. If they come from different weight classes, say the rates were earned against different pace and size, and the rating has no weight adjustment.\n\n## Output Format\n\n```\nIlia Topuria, Lightweight, Georgia, orthodox, 67 in, 69 in reach\nUFC record: 9-1 (6 KO, 1 SUB, 2 DEC wins; 1 KO loss)\nPer 15 min: 72.2 sig landed, 59.6 absorbed, 50.1% accuracy, 62.1% defense\nTakedowns: 1.73 per 15, 57.1% accuracy, 95.2% defense; control share 20.5%\nRating: 1655 (peak 1670)\nLast five: W W W W L ... (list opponent, method, rating change)\nRead: pressure striker, hard to take down, absorbs a lot of volume. Sample: 104 minutes.\n```\n\n## Anti-patterns\n\n| What the Model Might Do | Why It Is Wrong | Do This Instead |\n|---------------------|----------------|-----------------|\n| Guess the fighter id | Wrong fighter or an error | `search_fighters` |\n| Quote rates for Bellator fighters | Null there | State that no stat sheet exists |\n| Call a 3-fight sample a trend | Noise | Label small samples |\n| Mix `ufc_record` with `record` for PFL fighters | `ufc_record` is null elsewhere | Use `record` for the promotion queried |\n| Call the rating \"the rankings\" | It is our Elo, not an official ranking | Say \"our rating\" |\n\n## What to Do Next\n\n| Finding | Next Skill |\n|---------|-----------|\n| User has a matchup | `fight-preview` |\n| User wants the division context | `elo-by-weight-class`, `career-rates` |\n| User wants round-level pace | `round-by-round-stats` |\n"
}SHA-256 of public snapshot: 43477ae4024bd059dbfff3c6084bea90a51d3f2cf7bc0c030e79af07f38ce63d