RAF Wrestling API
Real American Freestyle, the pro freestyle wrestling league, as clean JSON: every event and bout with per-period scores, takedowns and win methods, athlete records, head-to-heads, champions, and results as they post on fight night. New to it? Start with the RAF wrestling API overview.
https://api.citoapi.com/api/v1Every bout, scored period by period
Each completed bout carries the winner, the win method (decision, tech fall, pin or injury), the final score and each wrestler's takedowns, plus the score of every period. Results are checked against a second source, and corrections are kept with their evidence.
GET /api/v1/raf/bouts/raf13--belal-muhammad--colby-covington/periodsWhat RAF data is available?
Results pages
Event results with method, score and takedowns for every bout, and per-period scores for bout detail screens.
Athlete profiles
Records, career stats by win method, bout history and official headshots for every wrestler on the roster.
Matchup previews
Head-to-head records and both athletes' recent form ahead of the next card.
Title histories
Current champions per division and the history of every title.
Fight night
Card status and results as each bout finishes, by polling /raf/live or holding the /raf/live/stream SSE connection open.
From the next card to a result
6 calls, real idsGET /raf/events/upcomingGET /raf/events/raf14/boutsGET /raf/live/events/raf14GET /raf/bouts/raf13--belal-muhammad--colby-covingtonGET /raf/bouts/raf13--belal-muhammad--colby-covington/periodsGET /raf/athletes/colby-covingtonLeague & search
GET/api/v1/rafRafLeague overview: counts, next and last event, current champions.
/api/v1/rafcurl "https://api.citoapi.com/api/v1/raf" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/search?q=snyderSearchSearch athletes and events by name.
/api/v1/raf/search?q=snydercurl "https://api.citoapi.com/api/v1/raf/search?q=snyder" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/rulesRulesThe RAF ruleset: periods, scoring actions, tech-fall margin, tiebreak, win methods.
/api/v1/raf/rulescurl "https://api.citoapi.com/api/v1/raf/rules" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/coverageCoverageWhich fields each event carries (scores, takedowns, finish times).
/api/v1/raf/coveragecurl "https://api.citoapi.com/api/v1/raf/coverage" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/sync/statusStatusData freshness: when each source was last read.
/api/v1/raf/sync/statuscurl "https://api.citoapi.com/api/v1/raf/sync/status" \
-H "x-api-key: YOUR_API_KEY"Events & fight cards
GET/api/v1/raf/eventsList EventsEvery event, newest first: flagship numbered cards and international events.
/api/v1/raf/eventscurl "https://api.citoapi.com/api/v1/raf/events" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/upcomingUpcoming ScheduleScheduled cards with date, local start time, venue and main event.
/api/v1/raf/events/upcomingcurl "https://api.citoapi.com/api/v1/raf/events/upcoming" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/recentRecent MatchesMost recent completed cards.
/api/v1/raf/events/recentcurl "https://api.citoapi.com/api/v1/raf/events/recent" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/{slug}SlugOne event: date, venue, status and bout counts (slug e.g. raf13).
/api/v1/raf/events/{slug}curl "https://api.citoapi.com/api/v1/raf/events/{slug}" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/{slug}/boutsEvent BoutsThe fight card in running order, main event first.
/api/v1/raf/events/{slug}/boutscurl "https://api.citoapi.com/api/v1/raf/events/{slug}/bouts" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/{slug}/resultsResultsResults for every bout on the card: winner, method, score, takedowns.
/api/v1/raf/events/{slug}/resultscurl "https://api.citoapi.com/api/v1/raf/events/{slug}/results" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/{slug}/changesChangesCard changes: bouts moved, opponents replaced, bouts removed.
/api/v1/raf/events/{slug}/changescurl "https://api.citoapi.com/api/v1/raf/events/{slug}/changes" \
-H "x-api-key: YOUR_API_KEY"Bouts
GET/api/v1/raf/bouts?athlete=kyle-snyderEvent BoutsQuery bouts by athlete, event, division or status.
/api/v1/raf/bouts?athlete=kyle-snydercurl "https://api.citoapi.com/api/v1/raf/bouts?athlete=kyle-snyder" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/bouts/{boutId}BoutIdFull bout detail: both athletes, result, win method, score, takedowns, title stakes.
/api/v1/raf/bouts/{boutId}curl "https://api.citoapi.com/api/v1/raf/bouts/{boutId}" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/bouts/{boutId}/periodsPeriodsPer-period scores for both wrestlers.
/api/v1/raf/bouts/{boutId}/periodscurl "https://api.citoapi.com/api/v1/raf/bouts/{boutId}/periods" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/bouts/{boutId}/statsBoutId StatsBout statistics: points and takedowns per side. Paid plans.
/api/v1/raf/bouts/{boutId}/statscurl "https://api.citoapi.com/api/v1/raf/bouts/{boutId}/stats" \
-H "x-api-key: YOUR_API_KEY"Odds
GET/api/v1/raf/oddsRaf OddsUpcoming bouts with a Polymarket winner market, soonest card first. Pro and above.
/api/v1/raf/oddscurl "https://api.citoapi.com/api/v1/raf/odds" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/events/{slug}/oddsSlug OddsEvery bout on a card with its market: price, decimal and American odds, bid/ask, liquidity, status.
/api/v1/raf/events/{slug}/oddscurl "https://api.citoapi.com/api/v1/raf/events/{slug}/odds" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/bouts/{boutId}/oddsBoutId OddsOne bout's Polymarket winner market, both wrestlers' prices.
/api/v1/raf/bouts/{boutId}/oddscurl "https://api.citoapi.com/api/v1/raf/bouts/{boutId}/odds" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/bouts/{boutId}/odds/historyHistoryEvery captured change of the bout's prices, oldest first (from, to, limit).
/api/v1/raf/bouts/{boutId}/odds/historycurl "https://api.citoapi.com/api/v1/raf/bouts/{boutId}/odds/history" \
-H "x-api-key: YOUR_API_KEY"Athletes & head-to-head
GET/api/v1/raf/athletesAthletesEvery athlete with record, division and country.
/api/v1/raf/athletescurl "https://api.citoapi.com/api/v1/raf/athletes" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/athletes/{slug}SlugAthlete profile: record, age, club, hometown, official headshot.
/api/v1/raf/athletes/{slug}curl "https://api.citoapi.com/api/v1/raf/athletes/{slug}" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/athletes/{slug}/boutsEvent BoutsAn athlete's complete RAF bout history, newest first.
/api/v1/raf/athletes/{slug}/boutscurl "https://api.citoapi.com/api/v1/raf/athletes/{slug}/bouts" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/athletes/{slug}/statsSlug StatsCareer stats: wins by method, points for and against, takedowns, points by period, streak. Paid plans.
/api/v1/raf/athletes/{slug}/statscurl "https://api.citoapi.com/api/v1/raf/athletes/{slug}/stats" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/h2h?athlete1=…&athlete2=…H2hHead-to-head between two wrestlers.
/api/v1/raf/h2h?athlete1=…&athlete2=…curl "https://api.citoapi.com/api/v1/raf/h2h?athlete1=…&athlete2=…" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/athletes/{slug}/h2h/{opponent}OpponentPath form of head-to-head.
/api/v1/raf/athletes/{slug}/h2h/{opponent}curl "https://api.citoapi.com/api/v1/raf/athletes/{slug}/h2h/{opponent}" \
-H "x-api-key: YOUR_API_KEY"Divisions & titles
GET/api/v1/raf/divisionsDivisionsWeight divisions with their limits.
/api/v1/raf/divisionscurl "https://api.citoapi.com/api/v1/raf/divisions" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/divisions/{division}DivisionOne division: champion and athletes.
/api/v1/raf/divisions/{division}curl "https://api.citoapi.com/api/v1/raf/divisions/{division}" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/championsChampionsCurrent champion of every title, or vacant.
/api/v1/raf/championscurl "https://api.citoapi.com/api/v1/raf/champions" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/titles/{titleKey}TitleKeyOne title's history (titleKey e.g. men-heavyweight).
/api/v1/raf/titles/{titleKey}curl "https://api.citoapi.com/api/v1/raf/titles/{titleKey}" \
-H "x-api-key: YOUR_API_KEY"Fight night
GET/api/v1/raf/liveLive MatchesCards in progress, with each bout's status and result as it posts.
/api/v1/raf/livecurl "https://api.citoapi.com/api/v1/raf/live" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/live/events/{slug}SlugThe running card for one event.
/api/v1/raf/live/events/{slug}curl "https://api.citoapi.com/api/v1/raf/live/events/{slug}" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/live/{boutId}BoutIdThe latest state of one bout.
/api/v1/raf/live/{boutId}curl "https://api.citoapi.com/api/v1/raf/live/{boutId}" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/live/streamStreamServer-sent events: a message whenever a bout's status or result changes.
/api/v1/raf/live/streamcurl "https://api.citoapi.com/api/v1/raf/live/stream" \
-H "x-api-key: YOUR_API_KEY"GET/api/v1/raf/live/healthHealthWhether the fight-night pipeline is running and how fresh it is.
/api/v1/raf/live/healthcurl "https://api.citoapi.com/api/v1/raf/live/health" \
-H "x-api-key: YOUR_API_KEY"Bout example
curl "https://api.citoapi.com/api/v1/raf/bouts/raf13--belal-muhammad--colby-covington" \
-H "x-api-key: YOUR_API_KEY"
{
"boutId": "raf13--belal-muhammad--colby-covington",
"event": { "slug": "raf13", "name": "RAF 13", "date": "2026-09-18" },
"slot": "MAIN EVENT",
"weightClass": { "label": "Cruiserweight Crossover", "crossover": true },
"status": "completed",
"athletes": [
{ "slug": "colby-covington", "name": "Colby Covington", "score": 10, "takedowns": 2, "result": "win" },
{ "slug": "belal-muhammad", "name": "Belal Muhammad", "score": 0, "takedowns": 0, "result": "loss" }
]
}Headshots are official RAF images. Each one carries its credit (© Real American Freestyle) in the payload: show it wherever the image appears.
Odds example
RAF odds are Polymarket prediction-market prices for the winner of each bout. Each market is linked to exactly one bout: both wrestlers must be on that bout of a card dated within 3 days of the market's scheduled date, or it is not served. Each outcome names its wrestler by slug, so you never match on a label.
curl "https://api.citoapi.com/api/v1/raf/bouts/raf-abu-dhabi--colby-covington--khamzat-chimaev/odds" \
-H "x-api-key: YOUR_API_KEY"
{
"bout": { "boutId": "raf-abu-dhabi--colby-covington--khamzat-chimaev", "event": { "slug": "raf-abu-dhabi", "date": "2026-11-14" }, ... },
"markets": [{
"marketId": "6053353",
"marketType": "moneyline",
"bookmaker": "polymarket",
"status": "illiquid",
"url": "https://polymarket.com/event/real-american-freestyle-khamzat-chimaev-vs-colby-covington",
"liquidityUsd": 592.3,
"volumeUsd": 29.09,
"spread": 0.57,
"outcomes": [
{ "athlete": { "slug": "khamzat-chimaev", "name": "Khamzat Chimaev" }, "label": "Chimaev",
"price": null, "decimalOdds": null, "americanOdds": null, "bestBid": 0.26, "bestAsk": 0.83, "lastTradePrice": 0.84 },
{ "athlete": { "slug": "colby-covington", "name": "Colby Covington" }, "label": "Covington",
"price": null, "decimalOdds": null, "americanOdds": null, "bestBid": 0.17, "bestAsk": 0.74, "lastTradePrice": 0.16 }
]
}]
}status: opencarries the price Polymarket itself shows: the midpoint when the spread is 10 cents or less, otherwise a real last trade.priceis the implied probability;decimalOddsis 1 / price.status: illiquidmeans the market exists but its book is too wide to price. RAF markets are thin weeks before a card, so price fields staynullrather than a made-up number, while bid, ask, last trade and liquidity are still given. They price as the book tightens.status: closedmeans settled, removed, or the bout is finished. Closed markets stay readable; add?available=truefor live markets only.- Odds are included on Pro and above. Every new account gets odds for its first 3 days.
Good to know
- Fight night data is results as each bout finishes, not point-by-point scoring during a bout. No public source publishes in-bout scoring for RAF.
- A few bouts have a final score but no finish time or no per-period breakdown, because no official source lists them. Those fields come back
nullrather than a guess./raf/coverageshows what each event carries. - Aliases are accepted:
/raf/fights,/raf/matches,/raf/wrestlersand/raf/fightersmap to bouts and athletes. - OpenAPI spec: api.citoapi.com/api/v1/openapi.json
Start with a free key
Every RAF endpoint except stats and odds works on the free plan, with 500 requests a month.