Overview
The Mr. Doge API is built around a hierarchical data model that represents sports betting data. Understanding this structure is crucial for effectively using the API.Core Hierarchy
The data follows a top-down hierarchy:This hierarchical structure allows you to filter and query data at any level - from all sports down to specific betting options.
Entities
Sport
Represents a sport category supported by the API. Supported Sports:- Soccer (Football)
- Basketball
- Baseball
- American Football
- Handball
- Tennis
- Volleyball
- Ice Hockey
Region
Geographic areas where competitions take place. Fields:id- Unique identifiername- Region name (e.g., “England”, “Spain”)slug- URL-friendly identifiersportId- Parent sportcaptions- Multilingual translations (en, pt, es)
Competition
Leagues, tournaments, or championships. Fields:id- Unique identifiername- Competition name (e.g., “Premier League”)slug- URL-friendly identifierregionId- Parent regionsportId- Parent sportcaptions- Multilingual translations
Team
Sports teams with associated metadata. Fields:id- Unique identifier (integer)name- Team namesportId- Sport association (integer)imageId- Image identifier (optional)
Event
Individual matches or games across all sports. Core Fields:id- Unique identifier (string)competitionId- Parent competition (integer)regionId- Parent region (integer)sportId- Parent sport (integer, optional)startDateTime- When the event starts (ISO 8601)status- Event status:upcoming,live, orcompleted(default: “upcoming”)views- Number of times event was viewed (default: 0)metadata- Complete event data including teams, markets, and odds (JSON)
Deprecated Fields:
homeTeamId, awayTeamId, and other sport-specific columns are being phased out. All event-specific data is now contained in the metadata JSON field for consistency across all sports.upcoming- Event hasn’t started yetlive- Event is currently in progresscompleted- Event has finished
metadata field contains the complete event information including teams, competition details, and all available markets with odds. The structure varies slightly by sport but follows a consistent pattern.
Soccer Event Metadata
Soccer Event Metadata
Basketball Event Metadata
Basketball Event Metadata
Tennis Event Metadata
Tennis Event Metadata
Baseball Event Metadata
Baseball Event Metadata
Volleyball Event Metadata
Volleyball Event Metadata
American Football Event Metadata
American Football Event Metadata
Ice Hockey Event Metadata
Ice Hockey Event Metadata
Handball Event Metadata
Handball Event Metadata
sportName- Sport identifier (e.g., “soccer”, “basketball”)sportSysname- System name for the sport typehomeTeamName/awayTeamName- Team nameshomeTeamImageId/awayTeamImageId- Team logo identifiersregionCaption- Human-readable region namecompetitionCaption- Human-readable competition namemarkets- Array of available betting markets with oddsbetItems- Individual betting options within each market
Market
Betting markets available for an event. Common Market Types:SOCCER_MATCH_RESULT- Full time result (1/X/2)SOCCER_UNDER_OVER- Goals over/underSOCCER_DOUBLE_CHANCE- Combine two outcomesSOCCER_BOTH_TEAMS_TO_SCORE- Yes/NoBASKETBALL_MONEYLINE- WinnerBASKETBALL_SPREAD- Point spread
id- Unique identifier (string)eventId- Parent event (string)betTypeSysname- Market type system name (string)
BetItem
Individual betting options within a market. Fields:id- Unique identifier (string)marketId- Parent market (string)code- Bet code (string)price- Decimal odds (float, e.g., 2.10)oddsText- Display text for odds (string, e.g., “2.10”)isAvailable- Whether this bet can be placed (boolean, default: true)marketStatistic- Optional stat payload (e.g., win %)lastUpdated- When odds were last updated (DateTime)
Live Event Data
For live (in-progress) events, additional real-time data is available.LiveEventData
Real-time match statistics updated during the event. Core Fields:id- Unique identifier (string)eventId- Parent event (string)betContextId- Bet context identifier (string)liveDataJson- Sport-specific live data including scores, stats, and match phase (JSON)fetchedAt- When data was fetched (DateTime)lastUpdated- Last update timestamp (DateTime)
Sport-Specific Structure: The
liveDataJson field contains different data structures for each sport. Soccer includes goals/corners/cards, basketball has quarter scores, tennis tracks sets/games, and baseball shows innings/outs/bases.isLive- Whether event is currently liveisInPlay- Whether in-play betting is availablephaseSysname- Match phase (e.g., “SOCCER_MATCH_SECOND_HALF”, “72’”, “FT”)discriminator- Sport type discriminator (e.g., “SoccerMatchLiveDataModel”)
LiveBetItem
Snapshots of odds changes during live events. Purpose: Track how odds move in real-time as the match progresses. Fields:id- Unique identifier (string)liveEventDataId- Parent live event data (string)betItemId- Reference to the bet option (string)marketId- Market identifier (string)marketSysname- Market system name (string)marketCaption- Market display caption (string)marketData- Market data (JSON)code- Bet code (string)caption- Display caption (string)price- Decimal odds at this snapshot (float)oddsText- Display text for odds (string)isAvailable- Whether bet is available (boolean, default: true)priceChange- Price change from previous snapshot (float, optional)timestamp- When snapshot was taken (string)capturedAt- Capture timestamp (DateTime)
AI Prediction Entities
The API provides AI-generated predictions and analysis.BettingRecommendation
AI-generated betting picks with confidence scoring. Fields:id- Unique identifier (string)eventId- Parent event (string)marketId- Market identifier (string)betItemId- Bet item identifier (string, optional)analysisTimestamp- When analysis was performed (DateTime)outcome- Predicted result (string)odds- Decimal odds for the pick (float)point- Point value for spreads/totals (float, optional)confidence- Risk level:Low,Medium, orHigh(string)edgePercentage- Expected value edge (float, e.g., 6.8 means 6.8%)kellyFraction- Suggested stake size using Kelly Criterion (float)rationale- Why the AI recommends this bet (string array)riskFactors- Potential risks to consider (string array)settled- Whether bet has been settled (boolean, default: false)result- Settlement result:won,lost, orpush(ResultType enum, optional)settlementDate- When bet was settled (DateTime, optional)actualReturn- Actual return amount (float, optional)
Low- Edge < 3%Medium- Edge 3-5%High- Edge > 5%
MrDogePick
Featured AI recommendations (parlays or highlighted picks). Fields:id- Unique identifier (string)eventId- Parent event (string, unique)pickType- Type of pick (string, default: “single”)recommendations- Array of recommendations (JSON)totalOdds- Combined odds for parlay (float)featuredOrder- Display order, lower = higher priority (integer, optional)isActive- Whether pick is active (boolean, default: true)expiresAt- When this pick expires (DateTime)settled- Whether bet has been settled (boolean, default: false)result- Settlement result:won,lost, orpush(ResultType enum, optional)settlementDate- When bet was settled (DateTime, optional)actualReturn- Actual return amount (float, optional)createdAt- Creation timestamp (DateTime)
ProcessedInsight
Market analysis and value opportunities. Fields:id- Unique identifier (string)eventId- Parent event (string, unique)analysisTimestamp- When analysis was performed (DateTime)marketEfficiencyScore- How efficiently priced the market is (float, 0-100)lineMovementData- How odds have shifted (JSON, optional)valueOpportunities- Identified +EV bets (JSON, optional)riskAssessment- Overall risk analysis (JSON, optional)aiAnalysisNotes- Additional AI analysis notes (string, optional)createdAt- Creation timestamp (DateTime)updatedAt- Last update timestamp (DateTime)
Key Concepts
Event Status Lifecycle
- upcoming: Event hasn’t started, bets can be placed
- live: Event in progress, in-play betting available
- completed: Event finished, bets are settled
Odds Format
The API uses decimal odds (also called European odds):2.00= Even money (100% profit)1.50= -200 American odds (50% profit)3.00= +200 American odds (200% profit)
Potential Return = Stake × Odds
Implied Probability
Odds can be converted to probability:Implied Probability = 1 / Decimal Odds
Example: Odds of 2.10 → 1 / 2.10 = 0.476 → 47.6% probability