{"openapi":"3.1.0","info":{"title":"fpreds — AI Soccer Predictions API","version":"1.0.0","description":"AI-powered soccer match predictions for 12 leagues. All data endpoints require a Pro subscription ($4.99/mo) and a valid API key. Predictions are generated by multiple AI agents analyzing standings, form, head-to-head history, team news, and key player availability.","contact":{"email":"me@davidpogorzel.ski"}},"servers":[{"url":"https://fpreds.com","description":"Production"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Pro API key (starts with fp_). Get yours at https://fpreds.com/account after subscribing."}},"schemas":{"Error401":{"type":"object","properties":{"error":{"type":"string","example":"Authentication required"},"message":{"type":"string"},"docs":{"type":"string","example":"https://fpreds.com/developers"}}},"Error403":{"type":"object","properties":{"error":{"type":"string","example":"Invalid or expired API key"},"message":{"type":"string"},"docs":{"type":"string","example":"https://fpreds.com/developers"}}}}},"security":[{"bearerAuth":[]}],"paths":{"/api/v1/predictions":{"get":{"operationId":"getPredictions","summary":"Get upcoming match predictions","description":"Returns AI predictions for upcoming matches in the next 7 days, including win probabilities, confidence scores, and reasoning. Requires Pro API key.","security":[{"bearerAuth":[]}],"parameters":[{"name":"league","in":"query","required":false,"schema":{"type":"string","enum":["PL","BL1","PD","FL1","SA","ED","TSL","PPL","UCL","UEL","WC","UNL"]},"description":"Filter by league code"}],"responses":{"200":{"description":"List of predictions"},"401":{"description":"No API key provided"},"403":{"description":"Invalid or expired API key"}}}},"/api/v1/results":{"get":{"operationId":"getResults","summary":"Get past results with prediction accuracy","description":"Returns finished matches from the last 30 days with actual outcomes and whether AI predictions were correct. Requires Pro API key.","security":[{"bearerAuth":[]}],"parameters":[{"name":"league","in":"query","required":false,"schema":{"type":"string","enum":["PL","BL1","PD","FL1","SA","ED","TSL","PPL","UCL","UEL","WC","UNL"]},"description":"Filter by league code"}],"responses":{"200":{"description":"List of past results"},"401":{"description":"No API key provided"},"403":{"description":"Invalid or expired API key"}}}},"/api/v1/accuracy":{"get":{"operationId":"getAccuracy","summary":"Get prediction accuracy statistics","description":"Returns overall and per-league prediction accuracy for the last 30 days. Requires Pro API key.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Accuracy statistics"},"401":{"description":"No API key provided"},"403":{"description":"Invalid or expired API key"}}}},"/api/v1/match/{id}":{"get":{"operationId":"getMatch","summary":"Get single match details","description":"Returns full details for a specific match including prediction reasoning. Requires Pro API key.","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Match ID"}],"responses":{"200":{"description":"Match details"},"401":{"description":"No API key provided"},"403":{"description":"Invalid or expired API key"},"404":{"description":"Match not found"}}}}}}