{
  "openapi": "3.0.1",
  "info": {
    "title": "Tennis Match Intelligence – Live Scores & Fixtures",
    "description": "Get normalized live and upcoming ATP, WTA, Challenger, and ITF tennis matches without supplying an API key. Filter by player, tournament, date, status, or match format, monitor score changes, and deliver signed webhook alerts.",
    "version": "1.0",
    "x-build-id": "5L2IohjnvOC6bj9so"
  },
  "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}