# UFC API

> UFC workflow and API: events and fighter. Returns events, city, bouts and venue as JSON.

UFC data from ufc.com: events and fighter.

- Page: https://fous.com/tools/ufc
- Handle: `@ufc`
- Category: [Sports](https://fous.com/tools/category/sports)
- Source website: https://ufc.com
- Last verified: Sep 29, 2026

## Methods

### Get fighter

Operation `get_fighter`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a UFC fighter’s profile by name or nickname, including record, rankings and fight statistics. Hometown reflects UFC’s place of birth; missing profile values are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `fighter` | string | yes | `"Jon Jones"` | Fighter name or nickname, for example Jon Jones or Bones. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "fighter"
  ],
  "properties": {
    "fighter": {
      "type": "string",
      "description": "Fighter name or nickname, for example Jon Jones or Bones.",
      "examples": [
        "Jon Jones",
        "Bones",
        "Jorge Masvidal"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "fighter": "Jon Jones"
    },
    {
      "fighter": "Bones"
    },
    {
      "fighter": "Jorge Masvidal"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `age` | integer or null | `38` | Age |
| `name` | string or null | `"Jon Jones"` | Name |
| `wins` | integer or null | `28` | Wins |
| `draws` | integer or null | `0` | Draws |
| `height` | string or null | `"6 ft 4 in"` | Height |
| `losses` | integer or null | `1` | Losses |
| `record` | string or null | `"28-1-0"` | Record |
| `status` | string or null | `"active"` | Status |
| `division` | string or null | `"Heavyweight"` | Division |
| `hometown` | string or null | `"Rochester, United States"` | Hometown |
| `nickname` | string or null | `"Bones"` | Nickname |
| `ufc_link` | string or null | `"https://www.ufc.com/athlete/jon-jones"` | Ufc link |
| `reach_inches` | number or null | `84.5` | Reach inches |
| `weight_pounds` | number or null | `237.6` | Weight pounds |
| `fighting_style` | string or null | `"Boxer"` | Fighting style |
| `current_ranking` | string or null |  | Current ranking |
| `photo_image_link` | string or null | `"https://ufc.com/images/styles/athlete_bio_full_body/s3/2025-10/JONES_JON_L.png?itok=ZKUJM0wq"` | Photo image link |
| `wins_by_decision` | integer or null | `10` | Wins by decision |
| `wins_by_knockout` | integer or null | `11` | Wins by knockout |
| `wins_by_submission` | integer or null | `7` | Wins by submission |
| `takedowns_per_15_minutes` | number or null | `1.89` | Takedowns per 15 minutes |
| `striking_accuracy_percent` | integer or null | `59` | Striking accuracy percent |
| `significant_strikes_landed_per_minute` | number or null | `4.38` | Significant strikes landed per minute |

**Example input**

```json
{
  "fighter": "Jon Jones"
}
```

**Example output**

```json
{
  "age": 38,
  "name": "Jon Jones",
  "wins": 28,
  "draws": 0,
  "height": "6 ft 4 in",
  "losses": 1,
  "record": "28-1-0",
  "status": "active",
  "division": "Heavyweight",
  "hometown": "Rochester, United States",
  "nickname": "Bones",
  "ufc_link": "https://www.ufc.com/athlete/jon-jones",
  "reach_inches": 84.5,
  "weight_pounds": 237.6,
  "fighting_style": null,
  "current_ranking": null,
  "photo_image_link": "https://ufc.com/images/styles/athlete_bio_full_body/s3/2025-10/JONES_JON_L.png?itok=ZKUJM0wq",
  "wins_by_decision": 10,
  "wins_by_knockout": 11,
  "wins_by_submission": 7,
  "takedowns_per_15_minutes": 1.89,
  "striking_accuracy_percent": 59,
  "significant_strikes_landed_per_minute": 4.38
}
```

### List events

Operation `list_events`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List UFC events with fight cards, locations, start times, and completed bout results. Upcoming events are soonest first and past events newest first. Bouts without a published card section have a null section.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `show` | string | no | `"past"` | Which events to list, for example past. |
| `event` | string | no | `"UFC 300"` | Event name to return a single event, for example UFC 300. |
| `max_results` | integer | no | `2` | Maximum number of events to return, for example 5. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "show": {
      "enum": [
        "upcoming",
        "past"
      ],
      "type": "string",
      "default": "upcoming",
      "description": "Which events to list, for example past.",
      "examples": [
        "past",
        "upcoming"
      ]
    },
    "event": {
      "type": "string",
      "description": "Event name to return a single event, for example UFC 300.",
      "examples": [
        "UFC 300"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 5,
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of events to return, for example 5.",
      "x-fous-developer": true,
      "examples": [
        2,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "show": "past",
      "max_results": 2
    },
    {
      "show": "upcoming",
      "max_results": 5
    },
    {
      "show": "past",
      "event": "UFC 300"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `events` | array |  | UFC events and fight cards. |
| `events[].city` | string or null | `"Las Vegas"` |  |
| `events[].bouts` | array |  |  |
| `events[].venue` | string or null | `"Meta APEX"` |  |
| `events[].country` | string or null | `"United States"` |  |
| `events[].date_time` | string | `"2026-09-27T00:00:00+00:00"` |  |
| `events[].event_link` | string | `"https://www.ufc.com/event/ufc-fight-night-september-26-2026"` |  |
| `events[].event_name` | string | `"UFC Fight Night: Rosas Jr. vs Barcelos"` |  |

**Example input**

```json
{
  "show": "past",
  "max_results": 2
}
```

**Example output**

```json
{
  "events": [
    {
      "city": "Las Vegas",
      "bouts": [
        {
          "time": "1:38",
          "round": 5,
          "method": "KO/TKO",
          "winner": "Raul Rosas Jr.",
          "card_section": "main card",
          "weight_class": "Bantamweight Bout",
          "red_corner_fighter": "Raul Rosas Jr.",
          "blue_corner_fighter": "Raoni Barcelos"
        },
        {
          "time": "5:00",
          "round": 3,
          "method": "Decision - Unanimous",
          "winner": "Ailin Perez",
          "card_section": "main card",
          "weight_class": "Women's Bantamweight Bout",
          "red_corner_fighter": "Norma Dumont",
          "blue_corner_fighter": "Ailin Perez"
        }
      ],
      "venue": "Meta APEX",
      "country": "United States",
      "date_time": "2026-09-27T00:00:00+00:00",
      "event_link": "https://www.ufc.com/event/ufc-fight-night-september-26-2026",
      "event_name": "UFC Fight Night: Rosas Jr. vs Barcelos"
    },
    {
      "city": "Los Angeles",
      "bouts": [
        {
          "time": "5:00",
          "round": 5,
          "method": "Decision - Unanimous",
          "winner": "Joshua Van",
          "card_section": "main card",
          "weight_class": "Flyweight Title Bout",
          "red_corner_fighter": "Joshua Van",
          "blue_corner_fighter": "Alexandre Pantoja"
        },
        {
          "time": "4:56",
          "round": 1,
          "method": "KO/TKO",
          "winner": "Arman Tsarukyan",
          "card_section": "main card",
          "weight_class": "Lightweight Bout",
          "red_corner_fighter": "Arman Tsarukyan",
          "blue_corner_fighter": "Mauricio Ruffy"
        }
      ],
      "venue": "Crypto.com Arena",
      "country": "United States",
      "date_time": "2026-09-20T01:00:00+00:00",
      "event_link": "https://www.ufc.com/event/cryptocom-ufc-331",
      "event_name": "Crypto.com UFC 331"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@ufc",
  "visibility": "public",
  "operation": "get_fighter",
  "version": 1,
  "input": {
    "fighter": "Jon Jones"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@ufc\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_fighter\",\n  \"version\": 1,\n  \"input\": {\n    \"fighter\": \"Jon Jones\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@ufc",
  "visibility": "public",
  "operation": "get_fighter",
  "version": 1,
  "input": {
    "fighter": "Jon Jones"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/ufc`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_fighter`: Get fighter. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_events`: List events. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-ufc https://api.fous.com/mcp/tools/ufc --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this UFC tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a UFC account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from ufc.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

## Related

- [Google Search API](https://fous.com/tools/google-search.md): Google Search returns public web, image, job, event, related-question, and autocomplete results in Google’s order, with answers and details when available; results may be fewer, omit information, or be empty.
- [Meetup API](https://fous.com/tools/meetup.md): Find local groups and public events.
- [Ticketmaster API](https://fous.com/tools/ticketmaster.md): Ticketmaster finds upcoming live events and shows available ticket options with prices, excluding partner-only listings and offers requiring a code or sign-in.
- [UEFA API](https://fous.com/tools/uefa.md): UEFA provides football competitions, matches and results, including club competition fixtures and scores by date range and current league-phase or group-stage tables.
- [NHL API](https://fous.com/tools/nhl.md): NHL provides games, schedules, and scores when published, standings by date, and player profiles with regular-season stats; dates outside a season have no teams, and unavailable stats are null.
- [MLB API](https://fous.com/tools/mlb.md): MLB provides scores, schedules and game details for one date or up to seven days, regular-season division standings defaulting to the current year, and player profiles with regular-season stats for a selected season and career.
- [parkrun API](https://fous.com/tools/parkrun.md): Free community walking and running events and their public results.
- [NBA API](https://fous.com/tools/nba.md): NBA provides up-to-seven-day schedules and scores, seasonal standings, player bios and available regular-season averages, plus matchup box scores, with undated matchups showing the latest.
- [All Sports tools](https://fous.com/tools/category/sports)
