{
  "data": {
    "id": "sBjm6jLYzEqZWvTIB",
    "actId": "jAMbb3LF9jvgsZOdo",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-11-13T21:11:29.889Z",
    "finishedAt": "2026-11-13T21:11:42.120Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CI"
    },
    "stats": {
      "durationMillis": 12156,
      "runTimeSecs": 12.156,
      "computeUnits": 0.013506666666666667,
      "imageSizeBytes": 319118848
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "6GwdnIcc2aWR7LzCS",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"UFC Stats Scraper Input\",\n  \"description\": \"Search UFC fighters, browse rankings by weight class, or get completed event results.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch from the ESPN UFC API.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"topRanked\",\n        \"byEvent\",\n        \"searchFighters\"\n      ],\n      \"enumTitles\": [\n        \"Top Ranked Fighters by Weight Class\",\n        \"Completed Events with Fight Results\",\n        \"Search Fighters by Name\"\n      ],\n      \"default\": \"topRanked\",\n      \"prefill\": \"topRanked\"\n    },\n    \"weightClass\": {\n      \"title\": \"Weight Class (mode=topRanked)\",\n      \"type\": \"string\",\n      \"description\": \"Filter rankings by weight class.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"Heavyweight\",\n        \"Light Heavyweight\",\n        \"Middleweight\",\n        \"Welterweight\",\n        \"Lightweight\",\n        \"Featherweight\",\n        \"Bantamweight\",\n        \"Flyweight\",\n        \"Women's Bantamweight\",\n        \"Women's Strawweight\",\n        \"Women's Flyweight\",\n        \"Pound for Pound (Men)\",\n        \"Pound for Pound (Women)\"\n      ],\n      \"enumTitles\": [\n        \"Heavyweight (up to 265 lbs)\",\n        \"Light Heavyweight (up to 205 lbs)\",\n        \"Middleweight (up to 185 lbs)\",\n        \"Welterweight (up to 170 lbs)\",\n        \"Lightweight (up to 155 lbs)\",\n        \"Featherweight (up to 145 lbs)\",\n        \"Bantamweight (up to 135 lbs)\",\n        \"Flyweight (up to 125 lbs)\",\n        \"Women's Bantamweight (up to 135 lbs)\",\n        \"Women's Strawweight (up to 115 lbs)\",\n        \"Women's Flyweight (up to 125 lbs)\",\n        \"Men's Pound for Pound Rankings\",\n        \"Women's Pound for Pound Rankings\"\n      ],\n      \"default\": \"Lightweight\",\n      \"prefill\": \"Lightweight\"\n    },\n    \"searchQuery\": {\n      \"title\": \"Search Query (mode=searchFighters)\",\n      \"type\": \"string\",\n      \"description\": \"Fighter name to search for (e.g. 'Jon Jones', 'Conor McGregor').\",\n      \"editor\": \"textfield\"\n    },\n    \"season\": {\n      \"title\": \"Season Year (mode=byEvent)\",\n      \"type\": \"integer\",\n      \"description\": \"Year to fetch completed UFC events for (e.g. 2024, 2025). Defaults to current year.\",\n      \"minimum\": 2000,\n      \"maximum\": 2030\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of records to return.\",\n      \"minimum\": 1,\n      \"maximum\": 500,\n      \"default\": 50,\n      \"prefill\": 50\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# UFC Weight-Class Rankings & Fight Card Results\n\nPull UFC data three ways: current weight-class rankings, a fighter looked up by name, or a season's worth of events with each fight's result. No login or API key needed.\n\n## What this actor does\n\n- **Weight-class rankings** — champion plus top-15 ranked fighters for any of the 13 official UFC rankings (11 weight classes plus men's/women's pound-for-pound)\n- **Fighter search** — look up a fighter by name and get their bio: height, weight, reach, stance, age, and record\n- **Events by season** — every UFC event scheduled or completed in a given year, each with its fight card; completed bouts include the round, time, and method of finish\n- **Empty fields are omitted** — a field not available for a given fighter or fight (e.g. no nickname) is left out rather than returned as null\n\n## Output per fighter (`mode: \"topRanked\"`)\n\n- `recordType` — always `fighter`\n- `athleteId`, `name`, `nickname`\n- `weightClass`, `rank` — the division and current rank position\n- `record`, `wins`, `losses`, `draws`\n- `height`, `weight`, `reach`, `stance`, `fightingStyle`, `age`, `dateOfBirth` — included whenever the fighter's own profile data loads successfully (the normal case)\n- `rankTrend` — change since the last ranking update; only appears on the rare fighter whose profile data couldn't be loaded, since the rank list itself (rather than the profile) is the source for this field\n- `isChampion`, `titleDefenses` — set for the division's current champion\n- `country`\n- `headshotUrl`, `espnProfileUrl`\n- `active`\n- `sourceUrl`, `scrapedAt`\n\n## Output per fighter (`mode: \"searchFighters\"`)\n\n- `recordType` — always `fighter`\n- `athleteId`, `name`, `nickname`\n- `weightClass`, `height`, `weight`, `reach`, `stance`, `fightingStyle`, `age`, `dateOfBirth`\n- `country`, `record`, `wins`, `losses`, `draws`\n- `headshotUrl`, `espnProfileUrl`\n- `active`\n- `sourceUrl`, `scrapedAt`\n- `rank`, `rankTrend`, `isChampion`, `titleDefenses` — only when a name doesn't match ESPN's search index and the actor falls back to scanning the current rankings for a substring match instead\n\n## Output per event (`mode: \"byEvent\"`)\n\n- `recordType` — always `event`\n- `eventId`, `eventName`, `shortName`\n- `date`, `venue`, `location`\n- `fightCount`, `fights` — array of fight objects for the card:\n  - `weightClass` — division abbreviation for that bout\n  - `fighter1`, `fighter1Record`, `fighter2`, `fighter2Record`\n  - `winner`, `round`, `time`, `method` — only present once the bout has actually concluded; a not-yet-fought bout on a future or in-progress event only has `fighter1`/`fighter2`\n- `espnEventUrl`\n- `sourceUrl`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string (select) | `topRanked` | `topRanked`, `byEvent`, or `searchFighters` |\n| `weightClass` | string (select) | `Lightweight` | Division to rank (mode=`topRanked`) |\n| `searchQuery` | string | – | Fighter name to search for, e.g. `Jon Jones` (mode=`searchFighters`) |\n| `season` | integer | – | Year to fetch events for, e.g. `2024`; uses the current year if left blank (mode=`byEvent`) |\n| `maxItems` | integer | `50` | Maximum number of records to return (1–500) |\n\n### Example: top-15 lightweight rankings\n\n```json\n{\n  \"mode\": \"topRanked\",\n  \"weightClass\": \"Lightweight\"\n}\n```\n\n### Example: look up a fighter by name\n\n```json\n{\n  \"mode\": \"searchFighters\",\n  \"searchQuery\": \"Conor McGregor\"\n}\n```\n\n### Example: completed events for a season\n\n```json\n{\n  \"mode\": \"byEvent\",\n  \"season\": 2024,\n  \"maxItems\": 50\n}\n```\n\n## Use cases\n\n- **Fantasy MMA and betting models** — pull current rankings and recent fight outcomes as model inputs\n- **Fighter research** — look up a specific fighter's bio stats and record before a matchup\n- **Historical analysis** — fetch a full season's events to study methods of finish and title defenses over time\n- **Content and media** — build rankings widgets or fight-result recaps from live data\n\n## FAQ\n\n**Does this need an API key or login?**\nNo — rankings, fighter search, and event results are all read without authentication.\n\n**How many fighters are in each weight-class ranking?**\nTypically 16 — the current champion plus the top 15 contenders, matching the official UFC rankings.\n\n**Can I get historical event results?**\nYes — set `mode` to `byEvent` and `season` to the year you want, e.g. `2019` through the current year. The current (or a future) season year may also include events that haven't happened yet; those come back with fighter names but no winner, round, or method until the bout concludes.\n\n**Does this include per-fight strike or takedown statistics?**\nNo — fight records cover the result (winner, round, time, method), not round-by-round strike or grappling statistics.\n\n**Why do fighter records differ between `topRanked` and `searchFighters`?**\nBoth normally pull the fighter's own profile, so most fields (height, weight, reach, stance, age, record) match. `topRanked` additionally adds `rank`, `isChampion`, and `titleDefenses` from the rankings list, and falls back to rank-list-only data (losing the physical stats but gaining `rankTrend`) on the rare fighter whose profile fails to load.\n\n**How current is the data?**\nRankings and event results reflect whatever is currently published; results for an event typically update shortly after each fight concludes.\n\n**Is this affiliated with the UFC or ESPN?**\nNo. This is an independent actor that reads publicly available MMA data; it is not operated by or affiliated with UFC or ESPN.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "ufc-weight-class-rankings-and-fight-card-results",
      "title": "UFC Weight-Class Rankings & Fight Card Results",
      "description": "Browse UFC weight-class rankings, look up a fighter by name, or fetch a season's events with fight-by-fight results, round, time, and method of finish for each completed bout.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# UFC Weight-Class Rankings & Fight Card Results\n\nPull UFC data three ways: current weight-class rankings, a fighter looked up by name, or a season's worth of events with each fight's result. No login or API key needed.\n\n## What this actor does\n\n- **Weight-class rankings** — champion plus top-15 ranked fighters for any of the 13 official UFC rankings (11 weight classes plus men's/women's pound-for-pound)\n- **Fighter search** — look up a fighter by name and get their bio: height, weight, reach, stance, age, and record\n- **Events by season** — every UFC event scheduled or completed in a given year, each with its fight card; completed bouts include the round, time, and method of finish\n- **Empty fields are omitted** — a field not available for a given fighter or fight (e.g. no nickname) is left out rather than returned as null\n\n## Output per fighter (`mode: \"topRanked\"`)\n\n- `recordType` — always `fighter`\n- `athleteId`, `name`, `nickname`\n- `weightClass`, `rank` — the division and current rank position\n- `record`, `wins`, `losses`, `draws`\n- `height`, `weight`, `reach`, `stance`, `fightingStyle`, `age`, `dateOfBirth` — included whenever the fighter's own profile data loads successfully (the normal case)\n- `rankTrend` — change since the last ranking update; only appears on the rare fighter whose profile data couldn't be loaded, since the rank list itself (rather than the profile) is the source for this field\n- `isChampion`, `titleDefenses` — set for the division's current champion\n- `country`\n- `headshotUrl`, `espnProfileUrl`\n- `active`\n- `sourceUrl`, `scrapedAt`\n\n## Output per fighter (`mode: \"searchFighters\"`)\n\n- `recordType` — always `fighter`\n- `athleteId`, `name`, `nickname`\n- `weightClass`, `height`, `weight`, `reach`, `stance`, `fightingStyle`, `age`, `dateOfBirth`\n- `country`, `record`, `wins`, `losses`, `draws`\n- `headshotUrl`, `espnProfileUrl`\n- `active`\n- `sourceUrl`, `scrapedAt`\n- `rank`, `rankTrend`, `isChampion`, `titleDefenses` — only when a name doesn't match ESPN's search index and the actor falls back to scanning the current rankings for a substring match instead\n\n## Output per event (`mode: \"byEvent\"`)\n\n- `recordType` — always `event`\n- `eventId`, `eventName`, `shortName`\n- `date`, `venue`, `location`\n- `fightCount`, `fights` — array of fight objects for the card:\n  - `weightClass` — division abbreviation for that bout\n  - `fighter1`, `fighter1Record`, `fighter2`, `fighter2Record`\n  - `winner`, `round`, `time`, `method` — only present once the bout has actually concluded; a not-yet-fought bout on a future or in-progress event only has `fighter1`/`fighter2`\n- `espnEventUrl`\n- `sourceUrl`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string (select) | `topRanked` | `topRanked`, `byEvent`, or `searchFighters` |\n| `weightClass` | string (select) | `Lightweight` | Division to rank (mode=`topRanked`) |\n| `searchQuery` | string | – | Fighter name to search for, e.g. `Jon Jones` (mode=`searchFighters`) |\n| `season` | integer | – | Year to fetch events for, e.g. `2024`; uses the current year if left blank (mode=`byEvent`) |\n| `maxItems` | integer | `50` | Maximum number of records to return (1–500) |\n\n### Example: top-15 lightweight rankings\n\n```json\n{\n  \"mode\": \"topRanked\",\n  \"weightClass\": \"Lightweight\"\n}\n```\n\n### Example: look up a fighter by name\n\n```json\n{\n  \"mode\": \"searchFighters\",\n  \"searchQuery\": \"Conor McGregor\"\n}\n```\n\n### Example: completed events for a season\n\n```json\n{\n  \"mode\": \"byEvent\",\n  \"season\": 2024,\n  \"maxItems\": 50\n}\n```\n\n## Use cases\n\n- **Fantasy MMA and betting models** — pull current rankings and recent fight outcomes as model inputs\n- **Fighter research** — look up a specific fighter's bio stats and record before a matchup\n- **Historical analysis** — fetch a full season's events to study methods of finish and title defenses over time\n- **Content and media** — build rankings widgets or fight-result recaps from live data\n\n## FAQ\n\n**Does this need an API key or login?**\nNo — rankings, fighter search, and event results are all read without authentication.\n\n**How many fighters are in each weight-class ranking?**\nTypically 16 — the current champion plus the top 15 contenders, matching the official UFC rankings.\n\n**Can I get historical event results?**\nYes — set `mode` to `byEvent` and `season` to the year you want, e.g. `2019` through the current year. The current (or a future) season year may also include events that haven't happened yet; those come back with fighter names but no winner, round, or method until the bout concludes.\n\n**Does this include per-fight strike or takedown statistics?**\nNo — fight records cover the result (winner, round, time, method), not round-by-round strike or grappling statistics.\n\n**Why do fighter records differ between `topRanked` and `searchFighters`?**\nBoth normally pull the fighter's own profile, so most fields (height, weight, reach, stance, age, record) match. `topRanked` additionally adds `rank`, `isChampion`, and `titleDefenses` from the rankings list, and falls back to rank-list-only data (losing the physical stats but gaining `rankTrend`) on the rare fighter whose profile fails to load.\n\n**How current is the data?**\nRankings and event results reflect whatever is currently published; results for an event typically update shortly after each fight concludes.\n\n**Is this affiliated with the UFC or ESPN?**\nNo. This is an independent actor that reads publicly available MMA data; it is not operated by or affiliated with UFC or ESPN.\n",
      "input": {
        "title": "UFC Stats Scraper Input",
        "description": "Search UFC fighters, browse rankings by weight class, or get completed event results.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch from the ESPN UFC API.",
            "editor": "select",
            "enum": [
              "topRanked",
              "byEvent",
              "searchFighters"
            ],
            "enumTitles": [
              "Top Ranked Fighters by Weight Class",
              "Completed Events with Fight Results",
              "Search Fighters by Name"
            ],
            "default": "topRanked",
            "prefill": "topRanked"
          },
          "weightClass": {
            "title": "Weight Class (mode=topRanked)",
            "type": "string",
            "description": "Filter rankings by weight class.",
            "editor": "select",
            "enum": [
              "Heavyweight",
              "Light Heavyweight",
              "Middleweight",
              "Welterweight",
              "Lightweight",
              "Featherweight",
              "Bantamweight",
              "Flyweight",
              "Women's Bantamweight",
              "Women's Strawweight",
              "Women's Flyweight",
              "Pound for Pound (Men)",
              "Pound for Pound (Women)"
            ],
            "enumTitles": [
              "Heavyweight (up to 265 lbs)",
              "Light Heavyweight (up to 205 lbs)",
              "Middleweight (up to 185 lbs)",
              "Welterweight (up to 170 lbs)",
              "Lightweight (up to 155 lbs)",
              "Featherweight (up to 145 lbs)",
              "Bantamweight (up to 135 lbs)",
              "Flyweight (up to 125 lbs)",
              "Women's Bantamweight (up to 135 lbs)",
              "Women's Strawweight (up to 115 lbs)",
              "Women's Flyweight (up to 125 lbs)",
              "Men's Pound for Pound Rankings",
              "Women's Pound for Pound Rankings"
            ],
            "default": "Lightweight",
            "prefill": "Lightweight"
          },
          "searchQuery": {
            "title": "Search Query (mode=searchFighters)",
            "type": "string",
            "description": "Fighter name to search for (e.g. 'Jon Jones', 'Conor McGregor').",
            "editor": "textfield"
          },
          "season": {
            "title": "Season Year (mode=byEvent)",
            "type": "integer",
            "description": "Year to fetch completed UFC events for (e.g. 2024, 2025). Defaults to current year.",
            "minimum": 2000,
            "maximum": 2030
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum number of records to return.",
            "minimum": 1,
            "maximum": 500,
            "default": 50,
            "prefill": 50
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "UFC Weight-Class Rankings & Fight Card Results Output",
        "description": "UFC fighter rankings, fight results, and event data from ESPN's public MMA API.",
        "properties": {
          "records": {
            "type": "string",
            "title": "UFC Records",
            "description": "Dataset containing all scraped UFC fighter and event records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "UFC Records",
              "transformation": {
                "fields": [
                  "recordType",
                  "name",
                  "weightClass",
                  "record",
                  "rank",
                  "eventName"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.0.1",
    "imageDigest": "ffbb7eba5a90dcd90b27b4ad0107aad6ffdcd221498d36a09197e3c0c54904d2",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.013506666666666667
    }
  }
}