{"openapi":"3.1.0","info":{"title":"ProphetAI API","version":"1.0.0","description":"Read-only access to ProphetAI's picks and tracked bets. Requires an API-plan key. Results are simulated on a virtual bankroll; not betting advice. 18+.","contact":{"name":"ProphetAI support (via Whop)","url":"https://whop.com/hub/"},"termsOfService":"https://prophetai.club/terms"},"servers":[{"url":"https://prophetai.club"}],"paths":{"/api/public/ledger":{"get":{"summary":"Live ledger: open positions, bankroll, recent results, latest diary entry","description":"No authentication. Cached briefly. Simulated virtual bankroll; not betting advice.","responses":{"200":{"description":"Ledger","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/public/diary":{"get":{"summary":"Daily diary entries","description":"No authentication.","responses":{"200":{"description":"Diary","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/public/record":{"get":{"summary":"Public simulated track-record summary","description":"No authentication. Cached for 5 minutes.","responses":{"200":{"description":"Summary","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/tips":{"get":{"summary":"List tips","security":[{"ApiKeyHeader":[]},{"BearerAuth":[]}],"parameters":[{"name":"start_utc","in":"query","schema":{"type":"string","format":"date-time"},"description":"Inclusive start (UTC) on event date."},{"name":"end_utc","in":"query","schema":{"type":"string","format":"date-time"},"description":"Inclusive end (UTC) on event date."},{"name":"sport","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string","enum":["open","won","lost","void","push"]}},{"name":"acca_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Tips","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Tip"}},"count":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid key"},"403":{"description":"Key is not on the API plan"},"429":{"description":"Rate limit exceeded (50 per 30 minutes)"}}}},"/api/bets/history":{"get":{"summary":"List tracked bets with settlement","security":[{"ApiKeyHeader":[]},{"BearerAuth":[]}],"parameters":[{"name":"start_utc","in":"query","schema":{"type":"string","format":"date-time"},"description":"Inclusive start (UTC) on event date."},{"name":"end_utc","in":"query","schema":{"type":"string","format":"date-time"},"description":"Inclusive end (UTC) on event date."}],"responses":{"200":{"description":"Bets","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"count":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid key"},"403":{"description":"Key is not on the API plan"},"429":{"description":"Rate limit exceeded"}}}}},"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key"},"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Tip":{"type":"object","properties":{"tip_id":{"type":"string"},"sport":{"type":"string"},"league":{"type":["string","null"]},"event_name":{"type":"string"},"event_date":{"type":["string","null"]},"selection":{"type":"string"},"market":{"type":"string"},"odds_at_post":{"type":"number","description":"Decimal odds when posted"},"confidence":{"type":["string","null"],"enum":["ELITE","STRONG","SOLID","LEAN","SPECULATIVE",null]},"confidence_pct":{"type":["number","null"]},"rationale":{"type":["string","null"]},"status":{"type":"string","enum":["open","won","lost","void","push"]},"settled_at":{"type":["string","null"]}}}}}}