{"service":"March Matness record API","docs":"https://www.marchmatness.app/api/","mcp":"https://www.marchmatness.app/mcp","tools":[{"name":"coverage","title":"What the record covers","description":"The record's scope, counts and release: NCAA Division I championships only, first and last year, the calendar gaps, the number of bouts, wrestlers, schools and bracket boards by evidence level, the data sources, and how to cite. Call this first when unsure whether a question is inside the record. It also describes the bout scoring record (scoring: its first and last year, gaps, bundle and source), which counts reconciled bouts only and is cited with its bundle.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"title":"What the record covers","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{},"url":"https://www.marchmatness.app/api/v1/coverage"},{"name":"find_entity","title":"Find a wrestler, school or year","description":"Resolve a name to the record's ids. Returns up to 10 candidates with id, kind (wrestler, program or tournament), label, a subtitle (school and years for a wrestler, individual titles and years for a school, weights and bouts for a year), individual titles for a wrestler, the year for a tournament, and the page url. A note says when the candidates are only near spellings. Same-name wrestlers are separate candidates: pick by school and years. Use the id in the other tools.","inputSchema":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","description":"A name or part of one, e.g. \"Dan Gable\", \"Oklahoma State\", \"1993\".","minLength":2,"maxLength":80},"kind":{"type":"string","description":"Restrict to one kind.","enum":["wrestler","program","tournament"]}}},"annotations":{"title":"Find a wrestler, school or year","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"query":"Dan Gable"},"url":"https://www.marchmatness.app/api/v1/find_entity"},{"name":"leaders","title":"Record lists","description":"Ranked lists computed from the record. stat: falls, tech_falls, majors, bonus_wins (all four bonus types), fastest_falls, titles (individual championships), placements (top-8 finishes), team_points. scope: career (per wrestler, all years), tournament (per wrestler in one tournament), program (per school, all years), program_tournament (per school in one tournament), streak (consecutive bonus wins; bonus stats only). fastest_falls ignores scope. team_points needs scope tournament with one year in years, or program / program_tournament. Filters narrow by years (a list of tournament years), weight, program_id and round (a round code such as \"1st\" or its name such as \"Final\"). Ties share a rank, and a tie at the cut is kept whole up to twice limit (at least limit + 10 rows), so more rows than limit can come back; past that the note says how many more share the last rank. fastest_falls carries any documented correction to a listed bout in corrections. An unknown program_id is refused (404); resolve a school with find_entity. Every record carries id, the wrestler's or program's public id (for fastest_falls, the winner's). team_points by tournament follows the published standings: rank is the NCAA's published place, and schools the standings do not list come after every listed school with rank null and reconstructed: true.","inputSchema":{"type":"object","additionalProperties":false,"required":["stat","scope"],"properties":{"stat":{"type":"string","description":"Which statistic.","enum":["falls","tech_falls","majors","bonus_wins","fastest_falls","titles","placements","team_points"]},"scope":{"type":"string","description":"How to group.","enum":["career","tournament","program","program_tournament","streak"]},"years":{"type":"array","description":"Tournament years to include; omit for all.","items":{"type":"integer","description":"Tournament year; coverage gives the first and last year and the calendar gaps.","maximum":2100},"maxItems":100},"weight":{"type":"string","description":"Weight class as the site prints it: a number such as \"125\" or \"177\", or \"unlimited\" (also written 450). \"heavyweight\" means each year's heaviest class: Unlimited, 275 or 285.","minLength":1,"maxLength":12},"program_id":{"type":"string","description":"Only this school's wrestlers, or the school itself for team_points (from find_entity).","pattern":"^pr_[a-z2-7]{16}$"},"round":{"type":"string","description":"A round, by code (\"1st\", \"Champ 4\") or name (\"Final\", \"Semifinal\").","minLength":1,"maxLength":40},"limit":{"type":"integer","description":"Rows to return, 1 to 50 (default 10).","minimum":1,"maximum":50}}},"annotations":{"title":"Record lists","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"stat":"falls","scope":"career","limit":10},"url":"https://www.marchmatness.app/api/v1/leaders"},{"name":"wrestler_card","title":"A wrestler's record","description":"One wrestler's championship record: schools, years, wins, losses, falls, individual titles, every year's weight, seed, finish and record, bonus wins by method (bonus_wins: falls, tech_falls, majors, superior_decisions and their total, counted as the leaders stats count them), and every bout with opponent, round, result, score and time. The card, each program, each opponent and each bout carry a url to their page. Ids come from find_entity. From the bout scoring record's first year, scoring gives the year lines (totals, per bout, per 7 minutes) and each bout carries its scoring counts or its status.","inputSchema":{"type":"object","additionalProperties":false,"required":["wrestler_id"],"properties":{"wrestler_id":{"type":"string","description":"A wr_ id from find_entity.","pattern":"^wr_[a-z2-7]{16}$"}}},"annotations":{"title":"A wrestler's record","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"wrestler_id":"wr_bn7nbaqfavanz6dt"},"url":"https://www.marchmatness.app/api/v1/wrestler_card"},{"name":"head_to_head","title":"Two wrestlers' meetings","description":"Every championship bout between two wrestlers, with year, weight, round, winner, result, score and time, and the match pages. Empty records with a note when they never met.","inputSchema":{"type":"object","additionalProperties":false,"required":["wrestler_a","wrestler_b"],"properties":{"wrestler_a":{"type":"string","description":"A wr_ id.","pattern":"^wr_[a-z2-7]{16}$"},"wrestler_b":{"type":"string","description":"Another wr_ id.","pattern":"^wr_[a-z2-7]{16}$"}}},"annotations":{"title":"Two wrestlers' meetings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"wrestler_a":"wr_bn7nbaqfavanz6dt","wrestler_b":"wr_ifop7ukjkgzt36uz"},"url":"https://www.marchmatness.app/api/v1/head_to_head"},{"name":"tournament","title":"One year's championships","description":"A tournament year: every weight with its champion, placers 1-8, bout count, bracket evidence level (verified against the sheet, drafted, or drafted with gaps) and board url, plus the team standings as records of kind team: place is the NCAA's published place (tied when schools share it); schools the published standings do not list come after every listed school with place null, computed_rank and points calculated from the bouts, and reconstructed: true. In years whose team points cannot be calculated from the bouts the standings are as published, with a note; in years the NCAA did not score teams there are none, with a note. With weight, one weight class only. A calendar-gap year (one of coverage's missing_years) returns no weights and a note.","inputSchema":{"type":"object","additionalProperties":false,"required":["year"],"properties":{"year":{"type":"integer","description":"Tournament year; coverage gives the first and last year and the calendar gaps.","maximum":2100},"weight":{"type":"string","description":"Weight class as the site prints it: a number such as \"125\" or \"177\", or \"unlimited\" (also written 450). \"heavyweight\" (or \"hwt\") means that year's heaviest class: Unlimited, 275 or 285.","minLength":1,"maxLength":12}}},"annotations":{"title":"One year's championships","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"year":1993},"url":"https://www.marchmatness.app/api/v1/tournament"},{"name":"program_year","title":"A school in one tournament","description":"One school's tournament in one year: entrants, wins, losses, falls, titles, All-Americans, team points and place (team.reconstructed is true when the NCAA does not list the school and its points and place are computed from the bouts), the champions and placers, and the full roster with each wrestler's weight, record, place or exit round. In a year the bout scoring record covers, scoring gives the school's line in every unit.","inputSchema":{"type":"object","additionalProperties":false,"required":["program_id","year"],"properties":{"program_id":{"type":"string","description":"A pr_ id from find_entity.","pattern":"^pr_[a-z2-7]{16}$"},"year":{"type":"integer","description":"Tournament year; coverage gives the first and last year and the calendar gaps.","maximum":2100}}},"annotations":{"title":"A school in one tournament","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"program_id":"pr_m6nvcppn6ysyit5w","year":1994},"url":"https://www.marchmatness.app/api/v1/program_year"},{"name":"program_summary","title":"A school's championship history","description":"One school across every tournament: totals (entrants, wins, losses, falls, individual titles, All-Americans), team championships and top-five finishes, and one row per year with entrants, record, titles, team points and place. team_place is the NCAA's published place; in a year scored from the bouts, when the published standings do not list the school, team_place is null, team_computed_rank is the place computed from the bouts, team_points are computed too, and team_reconstructed is true. team_points, team_place and team_computed_rank are null, and team_reconstructed false, when the school has no team figure that year. Links to the program and team pages. Years the bout scoring record covers carry the school's scoring line.","inputSchema":{"type":"object","additionalProperties":false,"required":["program_id"],"properties":{"program_id":{"type":"string","description":"A pr_ id from find_entity.","pattern":"^pr_[a-z2-7]{16}$"}}},"annotations":{"title":"A school's championship history","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"program_id":"pr_m6nvcppn6ysyit5w"},"url":"https://www.marchmatness.app/api/v1/program_summary"},{"name":"match_lookup","title":"Bouts in a weight class","description":"The bouts of one weight class in one year, each with round, winner, loser, result, score, time, seeds and match page, optionally narrowed to a round or to one wrestler. Up to 200 bouts. The evidence level of the weight's board comes with the rows.","inputSchema":{"type":"object","additionalProperties":false,"required":["year","weight"],"properties":{"year":{"type":"integer","description":"Tournament year; coverage gives the first and last year and the calendar gaps.","maximum":2100},"weight":{"type":"string","description":"Weight class as the site prints it: a number such as \"125\" or \"177\", or \"unlimited\" (also written 450). \"heavyweight\" (or \"hwt\") means that year's heaviest class: Unlimited, 275 or 285.","minLength":1,"maxLength":12},"round":{"type":"string","description":"A round, by code (\"1st\") or name (\"Final\").","minLength":1,"maxLength":40},"wrestler_id":{"type":"string","description":"Only bouts involving this wrestler.","pattern":"^wr_[a-z2-7]{16}$"}}},"annotations":{"title":"Bouts in a weight class","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"year":1993,"weight":"158","round":"Final"},"url":"https://www.marchmatness.app/api/v1/match_lookup"},{"name":"bracket_evidence","title":"How a bracket was checked","description":"One weight class's bracket board and how far it is trusted: verified against the archived bracket sheet (with the sheet link), drafted from the bout record, or drafted with noted gaps (with the gap count and the notes), or no bracket drawing with the reason.","inputSchema":{"type":"object","additionalProperties":false,"required":["year","weight"],"properties":{"year":{"type":"integer","description":"Tournament year; coverage gives the first and last year and the calendar gaps.","maximum":2100},"weight":{"type":"string","description":"Weight class as the site prints it: a number such as \"125\" or \"177\", or \"unlimited\" (also written 450). \"heavyweight\" (or \"hwt\") means that year's heaviest class: Unlimited, 275 or 285.","minLength":1,"maxLength":12}}},"annotations":{"title":"How a bracket was checked","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"year":1937,"weight":"126"},"url":"https://www.marchmatness.app/api/v1/bracket_evidence"},{"name":"corrections_for","title":"Corrections to a bout or a wrestler's bouts","description":"The documented corrections applied to one bout, or to every bout of one wrestler, each with the reason and the evidence link. Give match_id or wrestler_id, not both.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"match_id":{"type":"string","description":"An mt_ id from match_lookup or wrestler_card.","pattern":"^mt_[a-z2-7]{16}$"},"wrestler_id":{"type":"string","description":"A wr_ id from find_entity.","pattern":"^wr_[a-z2-7]{16}$"}}},"annotations":{"title":"Corrections to a bout or a wrestler's bouts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"match_id":"mt_4jxhloyctplgu57g"},"url":"https://www.marchmatness.app/api/v1/corrections_for"},{"name":"scoring_leaders","title":"Scoring leaders","description":"Ranked lists from the bout scoring record, as the /scoring/ pages show them. category is one of the scoring categories (takedowns-allowed and points-allowed rank fewest first). list: career (each wrestler summed over the championships wrestled in the span, the default) or tournament (each wrestler at one championship). from and to bound the span by championship year; omitted, the span is the whole scoring record (coverage's scoring section gives it), and from equal to to is one year's board. unit: totals, per_bout or per_7 (per 7 minutes of mat time); per_qualifier is a team unit (scoring_teams). Rates list wrestlers with three bouts per championship wrestled, and the note says how many are left out. Ties share a rank, and a tie at the cut is kept whole up to twice limit (at least limit + 10 rows). A year outside the scoring record is refused (404), and from after to (400). Every record carries the wrestler's public id, the program or programs, the value as a number and as printed, and the wrestler's page.","inputSchema":{"type":"object","additionalProperties":false,"required":["category"],"properties":{"category":{"type":"string","description":"The scoring category to rank.","enum":["takedowns","takedowns-allowed","escapes","reversals","near-fall","stalling-drawn","riding-time","points","points-allowed"]},"list":{"type":"string","description":"career (the default) sums each wrestler over the span; tournament lists each wrestler at one championship.","enum":["career","tournament"]},"from":{"type":"integer","description":"A championship year; coverage's scoring section gives the scoring record's first and last year.","maximum":2100},"to":{"type":"integer","description":"A championship year; coverage's scoring section gives the scoring record's first and last year.","maximum":2100},"unit":{"type":"string","description":"totals (the default), per_bout or per_7 (per 7 minutes of mat time).","enum":["totals","per_bout","per_7"]},"limit":{"type":"integer","description":"Rows to return, 1 to 50 (default 10).","minimum":1,"maximum":50}}},"annotations":{"title":"Scoring leaders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"category":"takedowns","limit":10},"url":"https://www.marchmatness.app/api/v1/scoring_leaders"},{"name":"scoring_teams","title":"Team scoring comparison","description":"How schools compared on the bout scoring record, one championship or a span, as /scoring/<year>/teams/ and /scoring/all/teams/ show it: each program's qualifiers, bouts, mat time and the seven scoring pairs (for and against), in one unit: totals, per_qualifier, per_bout or per_7. Ordered as the page orders them: by points scored in the chosen unit, most first, ties in the Totals order. from and to as in scoring_leaders. Up to limit programs (default 25); total gives the full count.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"from":{"type":"integer","description":"A championship year; coverage's scoring section gives the scoring record's first and last year.","maximum":2100},"to":{"type":"integer","description":"A championship year; coverage's scoring section gives the scoring record's first and last year.","maximum":2100},"unit":{"type":"string","description":"totals (the default), per_qualifier (per program qualifier), per_bout or per_7 (per 7 minutes of mat time).","enum":["totals","per_qualifier","per_bout","per_7"]},"limit":{"type":"integer","description":"Programs to return, 1 to 100 (default 25).","minimum":1,"maximum":100}}},"annotations":{"title":"Team scoring comparison","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"from":2026,"to":2026},"url":"https://www.marchmatness.app/api/v1/scoring_teams"},{"name":"bout_sheet","title":"A bout's scoring sheet","description":"One bout's scoring sheet from the bout scoring record, as its match page shows it: the box score by period, the counts for each side, every scored action with its clock and the running score, the riding-time readings, the status line naming the source bout and whether its score agrees with the record, and a banner when the sheet needs review. One match_id per call. A bout the scoring record does not hold returns no records and a note.","inputSchema":{"type":"object","additionalProperties":false,"required":["match_id"],"properties":{"match_id":{"type":"string","description":"An mt_ id from match_lookup or wrestler_card.","pattern":"^mt_[a-z2-7]{16}$"}}},"annotations":{"title":"A bout's scoring sheet","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"example":{"match_id":"mt_e5dlahlltibqhibe"},"url":"https://www.marchmatness.app/api/v1/bout_sheet"}]}