{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://sportsbookapi.com/schemas/arbitrage", "title": "Sportsbook API Arbitrage Opportunity", "description": "A sports betting arbitrage opportunity where a guaranteed profit is possible by betting on both sides across different sportsbooks", "type": "object", "required": ["eventId", "market", "bookmaker1", "bookmaker2", "profit"], "properties": { "eventId": { "type": "string", "description": "Unique event identifier" }, "homeTeam": { "type": "string", "description": "Home team name" }, "awayTeam": { "type": "string", "description": "Away team name" }, "sport": { "type": "string", "description": "Sport name" }, "league": { "type": "string", "description": "League abbreviation" }, "market": { "type": "string", "description": "Betting market type (spread, moneyline, total)" }, "period": { "type": "string", "description": "Game period for the arbitrage" }, "bookmaker1": { "type": "string", "description": "First sportsbook in the arbitrage pair" }, "bookmaker2": { "type": "string", "description": "Second sportsbook in the arbitrage pair" }, "homeOdds": { "type": "number", "description": "Home team or over odds from bookmaker1 in American format" }, "awayOdds": { "type": "number", "description": "Away team or under odds from bookmaker2 in American format" }, "profit": { "type": "number", "description": "Guaranteed profit percentage (e.g., 2.5 means 2.5% guaranteed return)", "minimum": 0 }, "impliedProbabilitySum": { "type": "number", "description": "Sum of implied probabilities (must be < 1.0 for true arbitrage)", "exclusiveMaximum": 1.0 }, "detectedAt": { "type": "string", "format": "date-time", "description": "When the arbitrage opportunity was detected" } } }