# API-MMA

> Follow mixed martial arts with API-MMA: every UFC fight since 2022 with its result and both fighters' statistics, fighters with their records, weight classes and training teams, and bookmakers' pre-match odds. Needs an API-SPORTS key; the free plan allows 100 requests a day.

App · Sports · 13 actions. Web page: https://docs.lodol.com/docs/integrations/api-mma

## Actions

### Find fighters

Find fighters by name, weight class, team or ID, each with their nickname, height, weight, reach, stance and team.

**Inputs**

- Fighter ID (`fighter_id`, text): Optional. Only this fighter, by ID, such as 333 for Islam Makhachev.
- Search (`search`, text): Optional. Only names containing this, at least 3 characters.
- Weight class (`category`, text): Optional. Only this weight class, such as Lightweight. Pick one from the list.
- Team (`team_id`, text): Optional. Only the fighters of this team. Pick one from the list.

**Outputs**

- `count` (number): How many came back.
- `fighters` (list): The fighters.

**Example output**

```json
{
  "count": 1,
  "fighters": [
    {
      "age": null,
      "birth_date": null,
      "category": "Welterweight",
      "gender": "M",
      "height": "5' 10\"",
      "height_inches": 70,
      "id": 333,
      "last_update": "2026-08-23T00:05:02+00:00",
      "name": "Islam Makhachev",
      "nickname": null,
      "photo": "https://media.api-sports.io/mma/fighters/333.png",
      "reach_inches": 70.5,
      "stance": "Southpaw",
      "team": {
        "id": 163,
        "name": "Eagles MMA"
      },
      "weight_pounds": 170
    }
  ]
}
```

### Find teams

Find the teams fighters train with, such as Eagles MMA, by name or ID. With no filter it lists all of them.

**Inputs**

- Team ID (`team_id`, text): Optional. Only this team, by ID, such as 163.
- Search (`search`, text): Optional. Only names containing this, at least 3 characters.

**Outputs**

- `count` (number): How many came back.
- `teams` (list): The teams.

**Example output**

```json
{
  "count": 1,
  "teams": [
    {
      "id": 163,
      "name": "Eagles MMA"
    }
  ]
}
```

### Get a fight

Get one fight by ID: its event, weight class, status and the two fighters, the winner marked.

**Inputs**

- Fight ID (`fight_id`, text, required): The fight's ID, such as 1361. List fights returns them.
- Time zone (`timezone`, text): Optional. Give dates and times in this time zone, such as America/New_York or Europe/London. UTC when left empty.

**Outputs**

- `category` (text): The weight class, such as Lightweight.
- `date` (text): When it starts, with the time zone's offset (ISO 8601).
- `event` (text): The event, such as UFC 302: Makhachev vs. Poirier.
- `fighters` (object): Both fighters.
- `id` (number): The fight's ID.
- `main_card` (true/false): True for a fight on the main card.
- `status` (object): Where the fight stands.
- `time` (text): Its start time, HH:MM, in that time zone.
- `timestamp` (number): When it starts, as a Unix timestamp.
- `timezone` (text): The time zone date and time are given in.

**Example output**

```json
{
  "category": "Lightweight",
  "date": "2024-06-01T18:00:00+00:00",
  "event": "UFC 302: Makhachev vs. Poirier",
  "fighters": {
    "first": {
      "id": 255,
      "name": "Dustin Poirier",
      "photo": "https://media.api-sports.io/mma/fighters/255.png",
      "winner": false
    },
    "second": {
      "id": 333,
      "name": "Islam Makhachev",
      "photo": "https://media.api-sports.io/mma/fighters/333.png",
      "winner": true
    }
  },
  "id": 1361,
  "main_card": true,
  "status": {
    "long": "Finished",
    "short": "FT"
  },
  "time": "18:00",
  "timestamp": 1717264800,
  "timezone": "UTC"
}
```

### Get a fighter's record

Get a fighter's professional record: wins, losses and draws, and the wins and losses by knockout and by submission.

**Inputs**

- Fighter ID (`fighter_id`, text, required): The fighter's ID, such as 333 for Islam Makhachev. Find fighters looks one up.

**Outputs**

- `fighter` (object): The fighter.
- `knockouts` (object): Fights won and lost by knockout.
- `submissions` (object): Fights won and lost by submission.
- `total` (object): Their professional record.

**Example output**

```json
{
  "fighter": {
    "id": 333,
    "name": "Islam Makhachev",
    "photo": "https://media.api-sports.io/mma/fighters/333.png"
  },
  "knockouts": {
    "losses": 1,
    "wins": 5
  },
  "submissions": {
    "losses": 0,
    "wins": 13
  },
  "total": {
    "draws": 0,
    "losses": 1,
    "wins": 28
  }
}
```

### Get account status

See the connected key's API-MMA plan, when it renews, and how many of today's requests are used and left. It is free: it never counts against the day.

**Inputs**: None.

**Outputs**

- `active` (true/false): True while the subscription is active.
- `daily_limit` (number): Requests allowed a day.
- `plan` (text): The plan, such as Free.
- `requests_remaining` (number): Requests left today; the day starts at midnight UTC.
- `requests_today` (number): Requests used today.
- `subscription_end` (text): When the plan renews or ends.

**Example output**

```json
{
  "active": true,
  "daily_limit": 100,
  "plan": "Free",
  "requests_remaining": 88,
  "requests_today": 12,
  "subscription_end": "2027-10-01T00:00:00+00:00"
}
```

### Get fight results

Get how a fight ended, or how every fight of a day did: the method (such as KO, SUB or Points), the round and time, the knockout or submission, and each judge's card after a decision.

**Inputs**

- Fight ID (`fight_id`, text): Optional. Only this fight, such as 1361. Set this, or a date to read every fight of that day.
- Date (`on_date`, date): Optional. Every fight on this day. The free plan takes only yesterday, today or tomorrow.

**Outputs**

- `count` (number): How many came back.
- `results` (list): The results.

**Example output**

```json
{
  "count": 1,
  "results": [
    {
      "fight_id": 1361,
      "ko_type": null,
      "minute": "2:42",
      "round": 5,
      "scores": [],
      "sub_type": "D'Arce Choke",
      "target": null,
      "won_type": "SUB"
    }
  ]
}
```

### Get fight statistics

Get each fighter's statistics in a fight, or in every fight of a day: strikes and power strikes to the head, body and legs, takedowns, submission attempts, control time and knockdowns.

**Inputs**

- Fight ID (`fight_id`, text): Optional. Only this fight, such as 1361. Set this, or a date to read every fight of that day.
- Date (`on_date`, date): Optional. Every fight on this day. The free plan takes only yesterday, today or tomorrow.

**Outputs**

- `count` (number): How many came back.
- `statistics` (list): Each fighter's statistics.

**Example output**

```json
{
  "count": 2,
  "statistics": [
    {
      "control_time": "0:30",
      "fight_id": 1361,
      "fighter_id": 255,
      "knockdowns": 0,
      "strikes": {
        "power": {
          "body": 18,
          "head": 53,
          "legs": 3
        },
        "total": {
          "body": 20,
          "head": 159,
          "legs": 4
        }
      },
      "submissions": 0,
      "takedowns": {
        "attempts": 0,
        "landed": 0
      }
    },
    {
      "control_time": "10:23",
      "fight_id": 1361,
      "fighter_id": 333,
      "knockdowns": 0,
      "strikes": {
        "power": {
          "body": 7,
          "head": 81,
          "legs": 0
        },
        "total": {
          "body": 7,
          "head": 148,
          "legs": 1
        }
      },
      "submissions": 2,
      "takedowns": {
        "attempts": 16,
        "landed": 5
      }
    }
  ]
}
```

### Get pre-match odds

Get bookmakers' pre-match odds for a fight, or for every fight of a day, optionally from one bookmaker or for one bet type. Odds appear 1 to 7 days before a fight, are updated four times a day and are kept for 7 days after it.

**Inputs**

- Fight ID (`fight_id`, text): Optional. Only this fight, such as 1361. Set this, or a date to read every fight of that day.
- Date (`on_date`, date): Optional. Every fight on this day. The free plan takes only yesterday, today or tomorrow.
- Bookmaker (`bookmaker_id`, text): Optional. Only this bookmaker's odds. Pick one from the list.
- Bet type (`bet_id`, text): Optional. Only this kind of bet, such as Home/Away. Pick one from the list.

**Outputs**

- `count` (number): How many came back.
- `odds` (list): Each fight's odds.

**Example output**

```json
{
  "count": 1,
  "odds": [
    {
      "bookmakers": [
        {
          "bets": [
            {
              "id": 2,
              "name": "Home/Away",
              "values": [
                {
                  "odd": 2.85,
                  "value": "Away"
                },
                {
                  "odd": 1.44,
                  "value": "Home"
                }
              ]
            }
          ],
          "id": 5,
          "name": "bet365"
        }
      ],
      "fight_id": 2906
    }
  ]
}
```

### List bet types

List the kinds of bet API-MMA has odds for, such as Home/Away or Over/Under, with the IDs the odds filter takes.

**Inputs**

- Search (`search`, text): Optional. Only names containing this, at least 3 characters.

**Outputs**

- `bets` (list): The bet types.
- `count` (number): How many came back.

**Example output**

```json
{
  "bets": [
    {
      "id": 1,
      "name": "3Way Result"
    },
    {
      "id": 2,
      "name": "Home/Away"
    }
  ],
  "count": 2
}
```

### List bookmakers

List the bookmakers API-MMA has odds from, with the IDs the odds filter takes. These IDs are API-MMA's own: the same bookmaker can have another ID in another API-SPORTS API.

**Inputs**

- Search (`search`, text): Optional. Only names containing this, at least 3 characters.

**Outputs**

- `bookmakers` (list): The bookmakers.
- `count` (number): How many came back.

**Example output**

```json
{
  "bookmakers": [
    {
      "id": 1,
      "name": "Marathon"
    },
    {
      "id": 5,
      "name": "bet365"
    }
  ],
  "count": 2
}
```

### List fights

List a day's or a season's fights, or only one fighter's or one weight class's, each with its event, weight class, status and the two fighters, the winner marked.

**Inputs**

- Date (`on_date`, date): Optional. Only fights on this day, in the time zone chosen below. Set this or a season. The free plan takes only yesterday, today or tomorrow.
- Season (`season`, number): Optional. Only this season, such as 2024. Set this or a date. The free plan reads the 2022 to 2024 seasons. From 1900 to 2100.
- Fighter ID (`fighter_id`, text): Optional. Only this fighter, by ID, such as 333 for Islam Makhachev.
- Weight class (`category`, text): Optional. Only this weight class, such as Lightweight. Pick one from the list.
- Time zone (`timezone`, text): Optional. Give dates and times in this time zone, such as America/New_York or Europe/London. UTC when left empty.

**Outputs**

- `count` (number): How many came back.
- `fights` (list): The fights, in the order given.

**Example output**

```json
{
  "count": 1,
  "fights": [
    {
      "category": "Lightweight",
      "date": "2024-06-01T18:00:00+00:00",
      "event": "UFC 302: Makhachev vs. Poirier",
      "fighters": {
        "first": {
          "id": 255,
          "name": "Dustin Poirier",
          "photo": "https://media.api-sports.io/mma/fighters/255.png",
          "winner": false
        },
        "second": {
          "id": 333,
          "name": "Islam Makhachev",
          "photo": "https://media.api-sports.io/mma/fighters/333.png",
          "winner": true
        }
      },
      "id": 1361,
      "main_card": true,
      "status": {
        "long": "Finished",
        "short": "FT"
      },
      "time": "18:00",
      "timestamp": 1717264800,
      "timezone": "UTC"
    }
  ]
}
```

### List seasons

List the seasons API-MMA has fights for, oldest first, as the years the Season fields take.

**Inputs**: None.

**Outputs**

- `count` (number): How many came back.
- `seasons` (list): The seasons, oldest first.

**Example output**

```json
{
  "count": 5,
  "seasons": [
    2022,
    2023,
    2024,
    2025,
    2026
  ]
}
```

### List weight classes

List the weight classes fights and fighters are filed under, such as Lightweight or Women's Strawweight, by the names the Weight class fields take.

**Inputs**

- Search (`search`, text): Optional. Only names containing this, at least 3 characters.

**Outputs**

- `categories` (list): The weight classes, by name.
- `count` (number): How many came back.

**Example output**

```json
{
  "categories": [
    "Bantamweight",
    "Catch Weight",
    "Catchweight",
    "Featherweight"
  ],
  "count": 4
}
```
