openapi: 3.2.0 info: title: SkipOdds Golf API version: 1.0.0 description: 'Fair sports win probabilities: every surveyed bookmaker price averaged and stripped of its margin (de-vigged), so probabilities sum to exactly 100%. 13 sports, 69+ bookmakers. Authenticate with an Authorization: Bearer header, or the x-api-key header. Never put a key in the query string. Free demo key: skipodds-demo-2026 (100 requests/day, attribution required).' termsOfService: https://skipodds.com/terms contact: email: hello@skipodds.com url: https://skipodds.com servers: - url: https://skipodds.com security: - BearerAuth: [] - ApiKeyHeader: [] tags: - name: Golf paths: /v1/golf/tournaments: get: operationId: listGolfTournaments summary: Golf tournaments with normalised outright-winner probabilities parameters: - name: x-api-key in: header required: false schema: type: string description: 'API key. Prefer Authorization: Bearer. Demo key: skipodds-demo-2026 (100 req/day).' responses: '200': description: Tournament list content: application/json: schema: type: object '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: string example: invalid_api_key '429': description: Daily quota exceeded for this key content: application/json: schema: type: object properties: error: type: string example: quota_exceeded tags: - Golf /v1/golf/tournaments/{key}: get: operationId: getGolfTournament summary: Single golf tournament with the full priced field parameters: - name: x-api-key in: header required: false schema: type: string description: 'API key. Prefer Authorization: Bearer. Demo key: skipodds-demo-2026 (100 req/day).' - name: key in: path required: true schema: type: string description: Tournament key as returned by GET /v1/golf/tournaments. responses: '200': description: Tournament with per-player probabilities content: application/json: schema: type: object '401': description: Missing or invalid API key content: application/json: schema: type: object properties: error: type: string example: invalid_api_key '429': description: Daily quota exceeded for this key content: application/json: schema: type: object properties: error: type: string example: quota_exceeded tags: - Golf components: securitySchemes: BearerAuth: type: http scheme: bearer description: 'Preferred. Send the API key as `Authorization: Bearer `.' ApiKeyHeader: type: apiKey in: header description: Accepted for existing integrations. name: x-api-key externalDocs: description: Human-readable API reference url: https://skipodds.com/docs