{
  "openapi": "3.0.1",
  "info": {
    "title": "Ufc Stats Scraper",
    "description": "Get official UFC fighter records, event cards and full round by round fight breakdowns, strikes, takedowns and control time included. No login. Built for bettors backtesting models, fantasy MMA players, analysts and content creators who need accurate fight stats fast.",
    "version": "1.0",
    "x-build-id": "LaTbueuV5DdCt2IxK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~ufc-stats-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-ufc-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/normdata~ufc-stats-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-ufc-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/normdata~ufc-stats-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-ufc-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Type of data",
            "enum": [
              "fighters",
              "events",
              "fights"
            ],
            "type": "string",
            "description": "**Fighter profiles** — bio, career stats and full fight history for one or more named fighters, or an entire A–Z directory letter.\n**Events** — event cards: date, location and every fight on the card.\n**Fight breakdowns** — full round-by-round strike and grappling stats (knockdowns, significant strikes, takedowns, control time) for a fighter's past fights.\n\n_On the Apify **Free** plan every run is limited to a fixed 10-row sample; upgrade to run your own settings._"
          },
          "fighterNames": {
            "title": "Fighter names — for Fighter profiles, Fight breakdowns",
            "type": "array",
            "description": "One or more fighter names, e.g. `Jon Jones`. Matched against the official fight record.",
            "items": {
              "type": "string"
            }
          },
          "fighterUrls": {
            "title": "…or paste fighter profile links directly — for Fighter profiles, Fight breakdowns",
            "type": "array",
            "description": "Already have fighter profile links (e.g. the `fighter_url` field from a previous run)? Paste them here to scrape exactly those, skipping the name search. Can be combined with the names above.",
            "items": {
              "type": "string"
            }
          },
          "letters": {
            "title": "…or browse a directory letter — for Fighter profiles",
            "type": "array",
            "description": "No names or links? Pick one or more A–Z letters to pull every fighter whose last name starts with it. Can be combined with the fields above. Warning: even one letter can be hundreds of fighters — set a maximum rows below.",
            "items": {
              "type": "string"
            }
          },
          "stance": {
            "title": "Only this stance — for Fighter profiles",
            "enum": [
              "",
              "Orthodox",
              "Southpaw",
              "Switch",
              "Open Stance"
            ],
            "type": "string",
            "description": "Keep only fighters with this stance. Leave empty for every stance."
          },
          "minWins": {
            "title": "Minimum career wins — for Fighter profiles",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only fighters with at least this many wins. Leave empty for no minimum."
          },
          "minLosses": {
            "title": "Minimum career losses — for Fighter profiles",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only fighters with at least this many losses. Leave empty for no minimum."
          },
          "eventStatus": {
            "title": "Which events — for Events",
            "enum": [
              "completed",
              "upcoming",
              "all"
            ],
            "type": "string",
            "description": "Past (completed) events, upcoming (scheduled) events, or both."
          },
          "eventStartDate": {
            "title": "Events on or after — for Events",
            "type": "string",
            "description": "Only events on or after this date. Format: `YYYY-MM-DD`."
          },
          "eventEndDate": {
            "title": "Events on or before — for Events",
            "type": "string",
            "description": "Only events on or before this date. Format: `YYYY-MM-DD`."
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "Stop once this many rows are in the dataset. Leave empty to get everything. _(Free plan: always capped at 10.)_"
          },
          "maxFightsPerFighter": {
            "title": "Fights per fighter — for Fight breakdowns",
            "minimum": 0,
            "type": "integer",
            "description": "Most recent first. Use `0` for a fighter's entire UFC record."
          },
          "includeFightHistory": {
            "title": "Full fight history",
            "type": "boolean",
            "description": "Include every past fight (opponent, result, method, round, time) on each fighter's row. Turn off for a quick, cheap run with just the bio and career averages."
          },
          "flattenHistory": {
            "title": "One row per past fight",
            "type": "boolean",
            "description": "When on, each past fight becomes its own row (fighter details repeated) — ready for a spreadsheet. When off, the fight history stays nested inside one row per fighter."
          },
          "includeRoundByRound": {
            "title": "Round-by-round breakdown — for Fight breakdowns",
            "type": "boolean",
            "description": "Add the strike and grappling totals for every individual round, not just the fight-wide totals. Slightly slower."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}