{
  "openapi": "3.0.1",
  "info": {
    "title": "UFC Scraper",
    "description": "[💰 $30 / 1K] Extract UFC fighters, events, and rankings: athlete profiles, win-loss records, striking and grappling stats, full fight cards with results, and official division and pound-for-pound rankings. Search by name or collect everything.",
    "version": "1.0",
    "x-build-id": "BI4mdDhfOEqXvJNK7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~ufc-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-ufc-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/solidcode~ufc-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-ufc-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/solidcode~ufc-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-ufc-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",
        "properties": {
          "dataType": {
            "title": "What to extract",
            "enum": [
              "fighters",
              "events",
              "rankings"
            ],
            "type": "string",
            "description": "Choose the kind of UFC data you want. Fighters returns athlete profiles and records. Events returns fight cards and results. Rankings returns the official UFC rankings by weight division and pound-for-pound.",
            "default": "fighters"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Names or keywords to search for. Use fighter names (e.g. \"Jon Jones\") when extracting Fighters, or event names (e.g. \"UFC 300\") when extracting Events. Each term is searched separately and results are merged. Leave empty to collect everything of the chosen type. Ignored for Rankings.",
            "items": {
              "type": "string"
            }
          },
          "division": {
            "title": "Weight division",
            "enum": [
              "",
              "flyweight",
              "bantamweight",
              "featherweight",
              "lightweight",
              "welterweight",
              "middleweight",
              "light-heavyweight",
              "heavyweight",
              "womens-strawweight",
              "womens-flyweight",
              "womens-bantamweight",
              "womens-featherweight",
              "pound-for-pound"
            ],
            "type": "string",
            "description": "Only include fighters or rankings from this weight division. Leave as \"All divisions\" to include every division. Applies to Fighters and Rankings. The UFC roster isn't sorted by division, so a Fighters run reads the whole roster to find every athlete in the division you picked — allow a few minutes for it, and raise Max results above the division's size (or set it to 0) so nothing is cut off. Divisions vary a lot in size: Lightweight has around 500 athletes while Women's Featherweight has only 8, so a small division genuinely returns a short list. Note: Pound-for-Pound is a rankings list, not a roster weight class, so it only narrows Rankings — for Fighters it returns the full roster. Women's Featherweight is a Fighters-only option right now — UFC no longer publishes a Women's Featherweight ranking, so Rankings has no list to return for it until the division is ranked again.",
            "default": ""
          },
          "gender": {
            "title": "Gender",
            "enum": [
              "",
              "male",
              "female"
            ],
            "type": "string",
            "description": "Limit results to men's or women's divisions. Leave as \"All\" for both. Applies to Fighters and Rankings. A fighter's gender comes from their weight division, so on Fighters this narrows the list whether or not you ask for full details. The roster isn't sorted by gender, so a women-only Fighters run reads through the whole roster to find them (women are roughly one athlete in nine) — allow a few minutes and raise Max results, or set it to 0, so nothing is cut off. Athletes UFC lists with no weight division at all can't be placed on either side, so they're left out when this is set.",
            "default": ""
          },
          "fighterStatus": {
            "title": "Fighter status",
            "enum": [
              "",
              "active",
              "not-fighting",
              "retired"
            ],
            "type": "string",
            "description": "Only include fighters with this competitive status. Leave as \"Any\" to include everyone. Applies to Fighters only. This checks each fighter's profile page, so if very few fighters match, the search stops after about 25 roster pages with no matches — narrow with a weight division for faster, fuller results.",
            "default": ""
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Only include fighters from this country (e.g. \"United States\", \"Brazil\", \"Russia\"). Leave blank to include all countries. Applies to Fighters only. This checks each fighter's profile page, so for a country with few fighters the search stops after about 25 roster pages with no matches — combine with a weight division for faster, fuller results."
          },
          "eventType": {
            "title": "Event timing",
            "enum": [
              "all",
              "upcoming",
              "past"
            ],
            "type": "string",
            "description": "Whether to collect upcoming events, past events, or both. Applies to Events only.",
            "default": "all"
          },
          "includeDetails": {
            "title": "Include full details",
            "type": "boolean",
            "description": "Fetch the complete record for each result: striking and grappling career stats for fighters, or the full fight card with per-fight results for events. Turn this off for faster, cheaper runs that return only the listing-level summary. Has no effect on Rankings.",
            "default": true
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "How many records to collect in total across all search terms. Default 100. You'll get at most this many — fewer when the source has fewer (Rankings always returns one row per division regardless of this value). Set to 0 to collect everything available, but note that 0 does not mean unlimited: every run also carries its own results limit, taken from the \"Maximum results\" or spend limit in the run's options, and whichever number is smaller wins. Unless you raise it, that limit typically stops an uncapped Fighters or Events sweep at a few hundred rows — the run then says exactly where it stopped and why. To collect more, raise the run's Maximum results (or its spend limit) before starting. Very large uncapped sweeps are also time-budgeted — Fighters roster runs (with or without full details) and Events calendar runs alike. If a run reaches the budget it stops and returns the records gathered so far (you'll see a note in the log) — set a specific number, or narrow with a weight division or event type, for a run that finishes cleanly.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}