{
  "openapi": "3.0.1",
  "info": {
    "title": "Flashscore Tennis Scraper: Stats & Rankings",
    "description": "Scrape tennis from Flashscore: ATP, WTA, Challenger & ITF results and fixtures with set scores, serve stats, point-by-point, odds, full tournament draws and complete ATP/WTA rankings (2,000+ players). Any day, tournament or past edition. No API key.",
    "version": "1.0",
    "x-build-id": "fNtchUMFPUbDNexVx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/incognito_mode~flashscore-tennis-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-incognito_mode-flashscore-tennis-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/incognito_mode~flashscore-tennis-scraper/runs": {
      "post": {
        "operationId": "runs-sync-incognito_mode-flashscore-tennis-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/incognito_mode~flashscore-tennis-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-incognito_mode-flashscore-tennis-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "matches",
              "rankings",
              "draws"
            ],
            "type": "string",
            "description": "Matches: results and fixtures with optional statistics, point-by-point and odds. Rankings: ATP/WTA singles, doubles and race lists. Draws: full brackets of the tournaments in Tournament URLs.",
            "default": "matches"
          },
          "days": {
            "title": "Days",
            "type": "array",
            "description": "Days to list, as offsets from today (0 = today, -1 = yesterday, 1 = tomorrow) or dates like 2026-09-28. UTC days, 7 days back to 7 days ahead.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Tours to include when listing by day. Leave empty for everything (ITF and Challenger make a day several hundred matches).",
            "items": {
              "type": "string",
              "enum": [
                "atp-singles",
                "atp-doubles",
                "wta-singles",
                "wta-doubles",
                "challenger-men-singles",
                "challenger-men-doubles",
                "challenger-women-singles",
                "challenger-women-doubles",
                "itf-men-singles",
                "itf-men-doubles",
                "itf-women-singles",
                "itf-women-doubles",
                "teams",
                "mixed-doubles",
                "boys",
                "girls",
                "exhibition"
              ],
              "enumTitles": [
                "ATP singles",
                "ATP doubles",
                "WTA singles",
                "WTA doubles",
                "Challenger men singles",
                "Challenger men doubles",
                "Challenger women singles",
                "Challenger women doubles",
                "ITF men singles",
                "ITF men doubles",
                "ITF women singles",
                "ITF women doubles",
                "Team events (Davis Cup, BJK Cup, United Cup)",
                "Mixed doubles",
                "Juniors: boys",
                "Juniors: girls",
                "Exhibitions"
              ]
            },
            "default": [
              "atp-singles",
              "wta-singles"
            ]
          },
          "tournaments": {
            "title": "Tournament name filter",
            "type": "array",
            "description": "Optional. When listing by day, keep only tournaments whose name contains one of these (case-insensitive), e.g. Tokyo or Beijing.",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Match status",
            "enum": [
              "all",
              "scheduled",
              "live",
              "finished"
            ],
            "type": "string",
            "description": "Keep only matches in this state.",
            "default": "all"
          },
          "tournamentUrls": {
            "title": "Tournament URLs",
            "type": "array",
            "description": "Flashscore tournament pages, e.g. https://www.flashscore.com/tennis/atp-singles/us-open/. In Matches mode every match of the edition is scraped; in Draws mode its brackets. Past editions work too (…/us-open-2024/), or use Seasons.",
            "items": {
              "type": "string"
            }
          },
          "seasons": {
            "title": "Seasons",
            "type": "array",
            "description": "Optional years to scrape for each Tournament URL, e.g. 2023, 2024. Empty = the current edition.",
            "items": {
              "type": "string"
            }
          },
          "matchUrls": {
            "title": "Match URLs or IDs",
            "type": "array",
            "description": "Specific matches, as Flashscore match URLs or 8-character ids (e.g. 0lgU6PM7). Adds both players' ranking at match time. Overrides Days and Tournament URLs.",
            "items": {
              "type": "string"
            }
          },
          "includeStatistics": {
            "title": "Include match statistics",
            "type": "boolean",
            "description": "Aces, double faults, 1st/2nd serve %, break points, return and total points — for the whole match and per set. Charged per match that has statistics.",
            "default": false
          },
          "includePointByPoint": {
            "title": "Include point-by-point",
            "type": "boolean",
            "description": "Every game with its server, winner, breaks and point sequence (break, set and match points flagged), plus tiebreak points. Charged per match that has it.",
            "default": false
          },
          "includeOdds": {
            "title": "Include betting odds",
            "type": "boolean",
            "description": "Each bookmaker's moneyline, main set and game handicaps and main total-games line, with opening prices, plus best and average moneyline. Charged per match with odds.",
            "default": false
          },
          "oddsCountry": {
            "title": "Bookmaker country",
            "type": "string",
            "description": "Which country's licensed bookmakers to show odds from: GB, DE, IT, ES, FR, BR, US-NJ … (two-letter code, optional region).",
            "default": "GB"
          },
          "rankings": {
            "title": "Rankings",
            "type": "array",
            "description": "Rankings mode: which lists to scrape.",
            "items": {
              "type": "string",
              "enum": [
                "atp",
                "wta",
                "atp-race",
                "wta-race",
                "atp-doubles",
                "wta-doubles",
                "atp-doubles-race",
                "wta-doubles-race"
              ],
              "enumTitles": [
                "ATP singles",
                "WTA singles",
                "ATP race",
                "WTA race",
                "ATP doubles",
                "WTA doubles",
                "ATP doubles race",
                "WTA doubles race"
              ]
            },
            "default": [
              "atp",
              "wta"
            ]
          },
          "maxRank": {
            "title": "Down to rank",
            "minimum": 0,
            "type": "integer",
            "description": "Keep players ranked this high or better. 0 = the entire list.",
            "default": 100
          },
          "liveRankings": {
            "title": "Live rankings",
            "type": "boolean",
            "description": "ATP/WTA top 100 as they stand during this week's tournaments, with each player's current event and the points they would have after their next win.",
            "default": false
          },
          "drawStages": {
            "title": "Draw stages",
            "enum": [
              "main",
              "qualification",
              "all"
            ],
            "type": "string",
            "description": "Draws mode: the main draw, qualifying, or both.",
            "default": "main"
          },
          "maxMatches": {
            "title": "Max matches",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many matches.",
            "default": 200
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many dataset rows in total.",
            "default": 5000
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Flashscore's data hosts do not block by IP. The Actor escalates to Apify proxies automatically if it is ever refused.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}