{
  "openapi": "3.1.0",
  "info": {
    "title": "Olympus Bets WebMCP API",
    "description": "Read-only JSON API for AI agents and developers. Provides sports analytics data including free picks, performance history, game simulations, model projections, team profiles, and player profiles across NBA, CBB, NHL, NFL, Soccer, MLB, LoL, CS2, WNBA, Tennis, and Golf. All endpoints are public, CORS-enabled, and require no authentication.",
    "version": "1.2.0",
    "contact": {
      "name": "Olympus Bets",
      "url": "https://app.olympus-bets.com"
    },
    "license": {
      "name": "Public Data",
      "url": "https://app.olympus-bets.com/llms.txt"
    }
  },
  "servers": [
    {
      "url": "https://app.olympus-bets.com",
      "description": "Production"
    }
  ],
  "paths": {
    "/webmcp/api/free-picks": {
      "get": {
        "operationId": "getFreePicks",
        "summary": "Today's free best bets",
        "description": "Returns today's curated free picks with confidence tier, edge percentage, model probability, expected value, unit sizing, and AI-generated writeup for each pick.",
        "tags": [
          "Best Bets"
        ],
        "responses": {
          "200": {
            "description": "Array of today's free picks",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "game_id": {
                        "type": "string"
                      },
                      "league": {
                        "type": "string",
                        "enum": [
                          "NBA",
                          "NHL",
                          "NFL",
                          "CBB",
                          "MLB",
                          "SOCCER",
                          "LOL",
                          "CS2",
                          "WNBA",
                          "TENNIS",
                          "GOLF",
                          "CFB"
                        ]
                      },
                      "matchup": {
                        "type": "string",
                        "description": "e.g. 'Boston Celtics vs Miami Heat'"
                      },
                      "pick": {
                        "type": "string",
                        "description": "The recommended bet"
                      },
                      "bet_type": {
                        "type": "string",
                        "enum": [
                          "spread",
                          "moneyline",
                          "total"
                        ]
                      },
                      "confidence": {
                        "type": "string",
                        "enum": [
                          "ELITE",
                          "HIGH",
                          "STRONG",
                          "SOLID",
                          "MEDIUM",
                          "LOW"
                        ]
                      },
                      "edge": {
                        "type": "number",
                        "description": "Edge percentage over market"
                      },
                      "probability": {
                        "type": "number",
                        "description": "Model win probability"
                      },
                      "units": {
                        "type": "number",
                        "description": "Kelly Criterion unit sizing"
                      },
                      "writeup": {
                        "type": "string",
                        "description": "AI-generated analysis"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webmcp/api/performance": {
      "get": {
        "operationId": "getPerformance",
        "summary": "Historical performance summary",
        "description": "Returns overall and per-league win rates, ROI, units won/lost, split by tier (all/premium/free). Updated daily after results resolution.",
        "tags": [
          "Performance"
        ],
        "responses": {
          "200": {
            "description": "Performance split by tier and league",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "all": {
                      "$ref": "#/components/schemas/PerformanceTier"
                    },
                    "premium": {
                      "$ref": "#/components/schemas/PerformanceTier"
                    },
                    "free": {
                      "$ref": "#/components/schemas/PerformanceTier"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webmcp/api/history": {
      "get": {
        "operationId": "getPickHistory",
        "summary": "Resolved pick results",
        "description": "Full history of resolved picks with outcomes. Premium pick details are masked for non-subscribers.",
        "tags": [
          "Performance"
        ],
        "responses": {
          "200": {
            "description": "Array of resolved pick results",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/webmcp/api/schedule/nba/{date}": {
      "get": {
        "operationId": "getNbaSchedule",
        "summary": "NBA schedule",
        "description": "List of NBA games scheduled for the given date with teams, times, and venue.",
        "tags": [
          "Schedules"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "NBA schedule for the date"
          }
        }
      }
    },
    "/webmcp/api/schedule/cbb/{date}": {
      "get": {
        "operationId": "getCbbSchedule",
        "summary": "CBB schedule",
        "description": "List of college basketball games for the given date.",
        "tags": [
          "Schedules"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "CBB schedule for the date"
          }
        }
      }
    },
    "/webmcp/api/schedule/nhl/{date}": {
      "get": {
        "operationId": "getNhlSchedule",
        "summary": "NHL schedule",
        "description": "List of NHL games for the given date.",
        "tags": [
          "Schedules"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "NHL schedule for the date"
          }
        }
      }
    },
    "/webmcp/api/teams/nba/{team}": {
      "get": {
        "operationId": "getNbaTeam",
        "summary": "NBA team profile",
        "description": "Detailed team profile including offensive/defensive ratings, pace, recent form, and season record.",
        "tags": [
          "Teams"
        ],
        "parameters": [
          {
            "name": "team",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            },
            "description": "3-letter team code (e.g. BOS, LAL, GSW)"
          }
        ],
        "responses": {
          "200": {
            "description": "NBA team profile"
          }
        }
      }
    },
    "/webmcp/api/teams/cbb": {
      "get": {
        "operationId": "getCbbTeams",
        "summary": "All CBB teams",
        "description": "Enhanced profiles for all Division I college basketball teams with BPR ratings, efficiency metrics, and win-loss records.",
        "tags": [
          "Teams"
        ],
        "responses": {
          "200": {
            "description": "All CBB team profiles"
          }
        }
      }
    },
    "/webmcp/api/teams/nhl/{date}": {
      "get": {
        "operationId": "getNhlTeams",
        "summary": "NHL team profiles",
        "description": "NHL team profiles for the given date with style tags, power ratings, and recent form.",
        "tags": [
          "Teams"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "NHL team profiles"
          }
        }
      }
    },
    "/webmcp/api/teams/nfl": {
      "get": {
        "operationId": "getNflTeams",
        "summary": "NFL team profiles",
        "description": "All NFL team profiles for the 2025 season with EPA metrics, power ratings, and performance data.",
        "tags": [
          "Teams"
        ],
        "responses": {
          "200": {
            "description": "NFL team profiles"
          }
        }
      }
    },
    "/webmcp/api/teams/soccer/{league}": {
      "get": {
        "operationId": "getSoccerTeams",
        "summary": "Soccer team profiles by league",
        "description": "Team stats and profiles for a specific soccer league (e.g. EPL_2025, LaLiga_2025).",
        "tags": [
          "Teams"
        ],
        "parameters": [
          {
            "name": "league",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "League identifier (e.g. EPL_2025, LaLiga_2025)"
          }
        ],
        "responses": {
          "200": {
            "description": "Soccer team profiles"
          }
        }
      }
    },
    "/webmcp/api/players/nba/{team}": {
      "get": {
        "operationId": "getNbaPlayers",
        "summary": "NBA player profiles by team",
        "description": "Player profiles with per-game stats, usage rates, and efficiency metrics for an NBA team.",
        "tags": [
          "Players"
        ],
        "parameters": [
          {
            "name": "team",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "NBA player profiles"
          }
        }
      }
    },
    "/webmcp/api/players/cbb": {
      "get": {
        "operationId": "getCbbPlayers",
        "summary": "All CBB players",
        "description": "All Division I college basketball player profiles with BPR, efficiency, and per-game stats.",
        "tags": [
          "Players"
        ],
        "responses": {
          "200": {
            "description": "All CBB player profiles (large response ~3.4MB)"
          }
        }
      }
    },
    "/webmcp/api/players/nhl/{date}": {
      "get": {
        "operationId": "getNhlPlayers",
        "summary": "NHL player profiles",
        "description": "NHL player profiles for the given date with goals, assists, and advanced metrics.",
        "tags": [
          "Players"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "NHL player profiles"
          }
        }
      }
    },
    "/webmcp/api/players/nfl": {
      "get": {
        "operationId": "getNflPlayers",
        "summary": "NFL player profiles",
        "description": "NFL player profiles for the 2025 season with stats and injury status.",
        "tags": [
          "Players"
        ],
        "responses": {
          "200": {
            "description": "NFL player profiles"
          }
        }
      }
    },
    "/webmcp/api/teams/lol": {
      "get": {
        "operationId": "getLolTeams",
        "summary": "LoL team profiles",
        "description": "League of Legends esports team profiles with Glicko-2 ratings, win rates, and meta adaptation scores.",
        "tags": [
          "Esports"
        ],
        "responses": {
          "200": {
            "description": "LoL team profiles and ratings"
          }
        }
      }
    },
    "/webmcp/api/projections/wnba/{date}": {
      "get": {
        "operationId": "getWnbaProjections",
        "summary": "WNBA game projections (free / informational tier)",
        "description": "Possession-engine projections for all WNBA games on the given date: win probabilities, projected scores, market lines, margin and total dispersion, and player projections. Free / calibrating tier. Model-vs-market fields (cover probability, fair spread/total) are premium \u2014 see /subscribe.",
        "tags": [
          "Projections"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "WNBA projections for the date"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "PerformanceTier": {
        "type": "object",
        "properties": {
          "total_picks": {
            "type": "integer"
          },
          "wins": {
            "type": "integer"
          },
          "losses": {
            "type": "integer"
          },
          "pushes": {
            "type": "integer"
          },
          "win_rate": {
            "type": "number"
          },
          "units_wagered": {
            "type": "number"
          },
          "units_won": {
            "type": "number"
          },
          "roi_percent": {
            "type": "number"
          },
          "by_league": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "wins": {
                  "type": "integer"
                },
                "losses": {
                  "type": "integer"
                },
                "win_rate": {
                  "type": "number"
                },
                "units_won": {
                  "type": "number"
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Best Bets",
      "description": "Daily pick recommendations"
    },
    {
      "name": "Performance",
      "description": "Historical tracking and results"
    },
    {
      "name": "Simulations",
      "description": "Monte Carlo simulation outputs by sport"
    },
    {
      "name": "Projections",
      "description": "Free / calibrating per-game and tournament model projections (WNBA, Tennis, Golf)"
    },
    {
      "name": "Schedules",
      "description": "Game schedules by sport and date"
    },
    {
      "name": "Teams",
      "description": "Team profiles and stats"
    },
    {
      "name": "Players",
      "description": "Player profiles and stats"
    },
    {
      "name": "Esports",
      "description": "League of Legends and CS2 analytics"
    }
  ]
}