{
  "openapi": "3.0.1",
  "info": {
    "title": "Marvel Rivals Stats Scraper",
    "description": "Scrape Marvel Rivals hero tier lists, top-900 leaderboards, community ban rates, live player profiles and One-Above-All stats from rivalsdata.com. Cloudflare is bypassed with browser TLS impersonation, so no proxies or CAPTCHAs are needed.",
    "version": "2.0",
    "x-build-id": "YUG58iglp2okgP2M3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/epicscrapers~marvel-rivals-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-epicscrapers-marvel-rivals-api",
        "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/epicscrapers~marvel-rivals-api/runs": {
      "post": {
        "operationId": "runs-sync-epicscrapers-marvel-rivals-api",
        "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/epicscrapers~marvel-rivals-api/run-sync": {
      "post": {
        "operationId": "run-sync-epicscrapers-marvel-rivals-api",
        "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": {
          "scrape": {
            "title": "Game-wide datasets",
            "type": "array",
            "description": "Which game-wide datasets to collect. Leave empty when you only want to look up players. If you omit this field in an API call, the hero tier list is collected unless players are given.",
            "items": {
              "type": "string",
              "enum": [
                "heroes",
                "leaderboard",
                "oneAboveAll"
              ],
              "enumTitles": [
                "Hero tier list & meta (win, pick, ban rates, team-ups)",
                "Ranked leaderboard (top 1,000 players)",
                "One Above All hall of fame (cross-season elite)"
              ]
            }
          },
          "players": {
            "title": "Players to look up",
            "type": "array",
            "description": "Usernames, numeric UIDs, or rivalsdata.com profile URLs. Usernames must match exactly (capitalization is ignored). UIDs are the most reliable. One dataset row is produced per player.",
            "items": {
              "type": "string"
            }
          },
          "platforms": {
            "title": "Platforms",
            "type": "array",
            "description": "Platforms for the leaderboard and One Above All lists (each platform is fetched separately). Hero statistics are published for PC and console, so PlayStation and Xbox both map to the combined \"console\" hero stats.",
            "items": {
              "type": "string",
              "enum": [
                "pc",
                "playstation",
                "xbox"
              ],
              "enumTitles": [
                "PC",
                "PlayStation",
                "Xbox"
              ]
            },
            "default": [
              "pc"
            ]
          },
          "season": {
            "title": "Season",
            "type": "string",
            "description": "Competitive season as shown in game, for example \"10\" or \"9.5\". Leave empty for the current season. Used by the leaderboard and player statistics."
          },
          "rankBrackets": {
            "title": "Rank brackets",
            "type": "array",
            "description": "Hero statistics are calculated per rank bracket. Each selected bracket and platform produces a full set of hero rows.",
            "items": {
              "type": "string",
              "enum": [
                "diamond",
                "diamond_plus",
                "grandmaster",
                "grandmaster_plus",
                "celestial",
                "celestial_plus",
                "eternity_plus"
              ],
              "enumTitles": [
                "Diamond",
                "Diamond and above",
                "Grandmaster",
                "Grandmaster and above",
                "Celestial",
                "Celestial and above",
                "Eternity and above"
              ]
            },
            "default": [
              "grandmaster_plus"
            ]
          },
          "includeTeamUps": {
            "title": "Include team-up statistics",
            "type": "boolean",
            "description": "Adds each hero's team-ups with games played, pick rate and win rate.",
            "default": true
          },
          "communityStatsMode": {
            "title": "Community ban and leaver rates from",
            "enum": [
              "competitive",
              "all"
            ],
            "type": "string",
            "description": "Game modes used for the community ban rate and leaver rate columns.",
            "default": "competitive"
          },
          "maxLeaderboardPlayers": {
            "title": "Leaderboard players per platform",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many top-ranked players to collect for each platform (the leaderboard holds up to 1,000).",
            "default": 100
          },
          "maxOneAboveAllPlayers": {
            "title": "One Above All players per platform",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many players to collect from the cross-season One Above All ranking (up to 1,000).",
            "default": 100
          },
          "playerDetails": {
            "title": "Player details",
            "type": "array",
            "description": "Extra data added to each player row. The profile, current rank and rank history of every season are always included. Each option adds one request per player.",
            "items": {
              "type": "string",
              "enum": [
                "heroes",
                "matches",
                "maps",
                "teammates",
                "bans",
                "nameHistory"
              ],
              "enumTitles": [
                "Hero stats (games, win rate, KDA, damage, healing)",
                "Recent match history",
                "Map win rates",
                "Frequent teammates",
                "Win rate when heroes are banned",
                "Name history"
              ]
            },
            "default": [
              "heroes",
              "matches"
            ]
          },
          "maxMatchesPerPlayer": {
            "title": "Matches per player",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of recent matches in each player's match history.",
            "default": 20
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Maximum time for a single request to the source.",
            "default": 30
          },
          "maxRequestAttempts": {
            "title": "Maximum request attempts",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Attempts for temporary network, rate-limit, server, or Cloudflare errors. Retries use exponential backoff.",
            "default": 4
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}