{
  "openapi": "3.0.1",
  "info": {
    "title": "Tennis Scores & Fixtures API - ATP, WTA, ITF",
    "description": "[💰 $1.00 / 1K] Get ATP, WTA, Challenger and ITF scores and fixtures, refreshed approximately hourly for live matches and twice daily for upcoming fixtures. Filter by player or tournament, track changes and send webhook alerts. No external API key required.",
    "version": "1.0",
    "x-build-id": "bJadAPQ71xZ2ahx19"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetchfinch~tennis-match-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetchfinch-tennis-match-monitor",
        "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/fetchfinch~tennis-match-monitor/runs": {
      "post": {
        "operationId": "runs-sync-fetchfinch-tennis-match-monitor",
        "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/fetchfinch~tennis-match-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-fetchfinch-tennis-match-monitor",
        "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": "Data mode",
            "enum": [
              "liveMatches",
              "upcomingMatches",
              "allCachedMatches"
            ],
            "type": "string",
            "description": "Choose the managed live cache, upcoming fixtures, or both.",
            "default": "liveMatches"
          },
          "date": {
            "title": "Start date",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional UTC start-date filter in YYYY-MM-DD format."
          },
          "eventIds": {
            "title": "Match IDs",
            "type": "array",
            "description": "Optional normalized or source match IDs returned by an earlier run.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "playerQuery": {
            "title": "Player filter",
            "type": "string",
            "description": "Optional case-insensitive text matched against either player or doubles team."
          },
          "tournamentQuery": {
            "title": "Tournament filter",
            "type": "string",
            "description": "Optional case-insensitive text matched against tournament names."
          },
          "statuses": {
            "title": "Match statuses",
            "type": "array",
            "description": "Optional status filter. Leave empty to return every status in the selected cache.",
            "items": {
              "type": "string",
              "enum": [
                "inprogress",
                "notstarted",
                "finished",
                "canceled",
                "postponed"
              ]
            },
            "default": []
          },
          "formats": {
            "title": "Match formats",
            "type": "array",
            "description": "Optional singles/doubles filter.",
            "items": {
              "type": "string",
              "enum": [
                "singles",
                "doubles"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of records after filtering.",
            "default": 100
          },
          "maxCacheAgeMinutes": {
            "title": "Stale-cache threshold",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "Records older than this are marked isCacheStale=true; they are still returned so temporary refresh failures do not break workflows.",
            "default": 90
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Optional stable name for recurring runs. It enables new-match, score, status, start-time, and odds change detection."
          },
          "emit": {
            "title": "Monitor output",
            "enum": [
              "changes",
              "all"
            ],
            "type": "string",
            "description": "With a monitor ID, return all matches or only new/changed matches.",
            "default": "changes"
          },
          "minOddsProbabilityChange": {
            "title": "Minimum odds movement",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "Suppress oddsChanged unless implied probability moves by at least this amount. 0.03 means 3 percentage points.",
            "default": 0.03
          },
          "webhookUrl": {
            "title": "Alert webhook URL",
            "pattern": "^$|^https://.+",
            "type": "string",
            "description": "Optional HTTPS endpoint that receives one JSON batch when monitor changes are emitted."
          },
          "webhookSecret": {
            "title": "Webhook signing secret",
            "type": "string",
            "description": "Optional HMAC-SHA256 secret for X-Tennis-Monitor-Signature."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}