{
  "openapi": "3.0.1",
  "info": {
    "title": "Tennis Results & Live Scores (Flashscore, ATP, WTA, ITF)",
    "description": "Tennis results, live scores and schedules for ATP, WTA, Challenger and ITF: set-by-set scores with tiebreaks, round, surface, players with country and ranking, retirements and walkovers. Optional match stats. Unofficial, not affiliated with Flashscore. $0.80 per 1,000 matches.",
    "version": "1.0",
    "x-build-id": "wYhVwc02fb548X4n9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fairfetch~tennis-results-live-scores/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fairfetch-tennis-results-live-scores",
        "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/fairfetch~tennis-results-live-scores/runs": {
      "post": {
        "operationId": "runs-sync-fairfetch-tennis-results-live-scores",
        "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/fairfetch~tennis-results-live-scores/run-sync": {
      "post": {
        "operationId": "run-sync-fairfetch-tennis-results-live-scores",
        "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": {
          "dateFrom": {
            "title": "From date (UTC)",
            "type": "string",
            "description": "First day to read: a date like 2026-10-21, \"today\", \"yesterday\", \"tomorrow\", or a number of days from today like -3 or +2 (UTC). Flashscore lists today and the 7 days before and after it; a day is Flashscore's list for that day, which is close to the UTC day (matches starting after 23:00 UTC are listed on the next day). For other dates, ATP, WTA and WTA 125 events (Grand Slams included) come from ESPN when \"Data source\" is Automatic or ESPN; ATP Challenger, ITF and team events aren't available for those days.",
            "default": "today"
          },
          "dateTo": {
            "title": "To date (UTC)",
            "type": "string",
            "description": "Last day to read, in the same formats. Leave empty to read only the \"From date\". At most 31 days per run. Example: From \"-3\" To \"today\" = the last four days."
          },
          "tours": {
            "title": "Tours",
            "type": "array",
            "description": "Which tours to return. Leave empty for all of them. Challenger Women are the WTA 125 events; \"Team events\" are the Davis Cup and Billie Jean King Cup ties; \"Other\" covers Grand Slam mixed doubles and any other category Flashscore lists. Junior events are never returned (their players are mostly minors).",
            "items": {
              "type": "string",
              "enum": [
                "atp",
                "wta",
                "challenger-men",
                "challenger-women",
                "itf-men",
                "itf-women",
                "teams",
                "exhibition",
                "other"
              ],
              "enumTitles": [
                "ATP",
                "WTA",
                "Challenger Men (ATP Challenger)",
                "Challenger Women (WTA 125)",
                "ITF Men",
                "ITF Women",
                "Team events (Davis Cup, BJK Cup)",
                "Exhibitions",
                "Other"
              ]
            },
            "default": []
          },
          "includeDoubles": {
            "title": "Include doubles",
            "type": "boolean",
            "description": "Also return doubles matches (both players of each pair, with their doubles ranking). Turn off for singles only.",
            "default": true
          },
          "statuses": {
            "title": "Match status",
            "type": "array",
            "description": "Which matches to return. Leave empty for all. \"Finished\" includes retirements, walkovers and awarded matches (see resultType). \"Cancelled\" also covers postponed and abandoned matches. Live scores are a snapshot taken when the run reads the day; when today is requested, live matches that started after 23:00 UTC (listed on tomorrow's feed) are included too.",
            "items": {
              "type": "string",
              "enum": [
                "finished",
                "live",
                "scheduled",
                "interrupted",
                "cancelled"
              ],
              "enumTitles": [
                "Finished",
                "Live",
                "Scheduled",
                "Interrupted (rain, suspended)",
                "Cancelled, postponed or abandoned"
              ]
            },
            "default": []
          },
          "tournaments": {
            "title": "Tournament names (optional)",
            "type": "array",
            "description": "Only matches of tournaments whose name contains one of these words, e.g. \"Wimbledon\", \"Almaty\" or \"M15 Monastir\". On ESPN rows the venue city also counts (ESPN uses sponsor names like \"BNP Paribas Fortis European Open\" for Brussels). Case and accents don't matter; every word must match the start of a word in the name.",
            "items": {
              "type": "string"
            }
          },
          "players": {
            "title": "Player names (optional)",
            "type": "array",
            "description": "Only matches with one of these players, e.g. \"Sinner\", \"Jannik Sinner\" or \"Swiatek\". Case and accents don't matter; every word must match the start of a word in the player's name.",
            "items": {
              "type": "string"
            }
          },
          "maxMatches": {
            "title": "Max matches",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many match rows (in the order the source lists them: by day, then tournament). 0 = no limit.",
            "default": 0
          },
          "includeStatistics": {
            "title": "Include statistics and set durations",
            "type": "boolean",
            "description": "Add Flashscore's match statistics (aces, double faults, first-serve %, points won on serve and return, break points saved and converted, winners, unforced errors and more; for the match and each set) and the duration of every set and of the match. Needs two extra requests per played match, so runs take longer. A row with statistics is charged as \"Match with statistics\" instead of \"Match\"; matches without published statistics (most ITF matches) stay plain match rows.",
            "default": false
          },
          "dataSource": {
            "title": "Data source",
            "enum": [
              "auto",
              "flashscore",
              "espn"
            ],
            "type": "string",
            "description": "Automatic: Flashscore for today ±7 days; ESPN's public scoreboard for ATP, WTA and WTA 125 events (Grand Slams included) when Flashscore fails or for older dates. Flashscore only: never use ESPN. ESPN only: ATP, WTA and WTA 125 events for any date, without surfaces, rankings or statistics (other tours get a free \"not covered\" row per day). The \"source\" column says where each row came from.",
            "default": "auto"
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many requests run at the same time (mainly matters with statistics on).",
            "default": 8
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Timeout for a single HTTP request.",
            "default": 30
          },
          "maxRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 6,
            "type": "integer",
            "description": "Retries for network errors, HTTP 5xx and rate limits, with exponential backoff.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}