{
  "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": "Y8tyagxWfeq6cBsvH"
  },
  "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. 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.",
            "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.",
            "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. Set to 0 to collect as many as possible (up to a safety ceiling). You'll get at most this many — fewer when the source has fewer (Rankings always returns one row per division regardless of this value). Very large full-detail Fighters runs are time-budgeted: if a run reaches the budget it stops and returns the records gathered so far (you'll see a note in the log) — narrow with a weight division for a fuller scan.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}