Tapology APItapology.com ↗
Access Tapology fight data via API: upcoming MMA events, fighter profiles, bout results, rankings, promotions, and betting odds across 9 endpoints.
What is the Tapology API?
The Tapology API covers 9 endpoints that expose fight data from Tapology's FightCenter, including upcoming events, fighter profiles, full fight cards, bout-level results, and promotion listings. The get_fighter_profile endpoint alone returns biographical details, career stats, a complete fight record with filterable results, weight cut history, and recent news. Other endpoints handle fighter search, event search, rankings by weight class, and head-to-head bout details including published betting odds.
curl -X GET 'https://api.parse.bot/scraper/2f929f7f-075f-4f08-bb55-dbeb0a375cba/get_upcoming_mma_events?page=1&group=all&limit=5&sport=mma' \ -H 'X-API-Key: $PARSE_API_KEY'
Get upcoming MMA and combat sports events from Tapology FightCenter. Returns event name, date/time, location, URL, sport type, region, featured bout, and promotion logo. Filters by sport type and promotion group. Paginates server-side (~25 events per page); the SDK auto-iterates pages up to the requested limit. Some filter combinations may return empty results if no matching events exist for that window.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to start from (each page has ~25 events). |
| group | string | Promotion group filter. |
| limit | integer | Maximum number of events to return. |
| sport | string | Sport filter. |
{
"type": "object",
"fields": {
"page": "integer, the requested page number",
"group": "string, the applied group filter",
"sport": "string, the applied sport filter",
"events": "array of event objects with keys: name, url, date, sport, location, region, featured_bout, promotion_logo",
"total_returned": "integer, number of events returned"
},
"sample": {
"data": {
"page": 1,
"group": "all",
"sport": "mma",
"events": [
{
"url": "https://www.tapology.com/fightcenter/events/143526-atf-31",
"date": "Thursday, June 11, 8:00 AM ET",
"name": "ATF 31",
"sport": "MMA",
"region": "Asia Central Region",
"location": "Namangan Province, UZ",
"featured_bout": "Abdurakhimov vs. Khassimov",
"promotion_logo": "https://images.tapology.com/logo_squares/3925/icon_bw/Amir_Temur_Fighting_Championship-logo.jpg?1721414014"
}
],
"total_returned": 5
},
"status": "success"
}
}About the Tapology API
Events and Promotions
The get_upcoming_mma_events endpoint returns paginated upcoming events (~25 per page) with fields including name, date, location, region, sport, featured_bout, and promotion_logo. You can filter by sport and group to narrow results to a specific combat sports discipline or promotion category. The search_events endpoint accepts a free-text term and returns matching events with name, event_slug, date, and bouts_count. get_promotions lists known combat sports promotions alphabetically with name, slug, abbreviation, logo, and region across up to 70 paginated pages of 100 promotions each.
Fighter and Bout Data
search_fighters accepts a term and returns matching fighters with name, fighter_slug, weight_class, record, and country. The fighter_slug feeds directly into get_fighter_profile, which returns biography fields (height, reach, nickname, given_name, affiliation, head_coach), career stats, and a complete fight_record array. The fight record supports four optional filters: filter_result (win/loss/draw), filter_method (ko, tko, submission, decision), filter_date_from, and filter_date_to. Each fight record entry includes bout_id, opponent, opponent_slug, event, method, status, result, division, and sport.
Fight Cards and Bout Details
get_event_details takes an event_slug and returns the complete fight card: bouts array with fighter1, fighter2, billing, weight_class, bout_url, and community picks (predicted winner and per-fighter pick percentages). get_bout_details takes a bout_id and returns method, rounds, billing, result_text, a fight_details object covering referee, venue, weight, and sport, a fighter comparison table, and betting_odds with moneyline strings for each fighter.
Rankings
get_rankings fetches fighter rankings for a specified weight_class slug, optionally filtered by sport (e.g. ufc, regional, fan-voted). Each entry in the rankings array includes rank, name, fighter_slug, record, country, and movement indicator. The endpoint returns a fixed set of top fighters as rendered on the rankings page.
The Tapology API is a managed, monitored endpoint for tapology.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tapology.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official tapology.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate upcoming MMA event schedules by region or sport type using
get_upcoming_mma_eventsfilters - Build a fighter comparison tool using
get_fighter_profilebiographical and career stats fields - Display full UFC or Bellator fight cards with community pick percentages from
get_event_details - Track a fighter's win streak filtered by method (KO, submission) using
filter_methodandfilter_result - Show pre-fight betting moneylines from
get_bout_detailsalongside bout metadata and referee info - Browse the full catalog of ~7,000 global combat sports promotions with logos and regions via
get_promotions - Build a weight-class rankings table with movement indicators using
get_rankingsfiltered by promotion
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Tapology have an official developer API?+
What filtering options does `get_fighter_profile` support on the fight record?+
fight_record by result (filter_result: win, loss, or draw), method substring (filter_method: ko, tko, submission, decision — case-insensitive), and date range using filter_date_from and filter_date_to in YYYY-MM-DD or partial year format. All four filters are optional and can be combined.Does the API return amateur fight records?+
get_fighter_profile includes amateur fight records alongside professional records. The fight_record array contains entries for both, with sport and division fields on each entry.Does `get_rankings` cover all weight classes and promotions?+
weight_class slug available on Tapology's rankings pages, filterable by sport (e.g. ufc, regional, fan-voted). The response is limited to the top fighters rendered on that rankings page, typically around 8. Live pound-for-pound cross-promotion rankings or historical ranking snapshots are not currently returned. You can fork this API on Parse and revise it to add an endpoint targeting those ranking pages.