> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mrdoge.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Event Details

> Get complete event information including teams, markets, odds, and live data

<Warning>
  **Requires Authentication**: This endpoint requires an API key and costs **1 credit** per request.
</Warning>

This endpoint returns **everything** you need to display a complete event page:

* Team information
* All betting markets and odds
* Live scores and statistics (if event is live)
* Event news and context
* Real-time odds (if event is live)

Perfect for building detailed event pages in your application.

<Note>
  **View Tracking**: Each request increments the event's view count, helping us identify trending events.
</Note>

## Authorization

<ParamField header="Authorization" type="string" required default="Bearer " placeholder="Bearer sk_live_...">
  Your API key for authentication
</ParamField>

## Path Parameters

<ParamField path="eventId" type="string" required>
  The unique event ID

  Example: `123456`
</ParamField>

## Query Parameters

<ParamField query="locale" type="string" default="en">
  Language for team, competition, region names, market names, and outcome captions. Supported: `en`, `es`, `pt`
</ParamField>

## Response

Returns a complete event object with all related data.

### Core Fields

<ResponseField name="id" type="string">
  Unique event ID
</ResponseField>

<ResponseField name="competitionId" type="integer">
  Parent competition ID
</ResponseField>

<ResponseField name="regionId" type="integer">
  Parent region ID
</ResponseField>

<ResponseField name="sportId" type="integer">
  Sport ID
</ResponseField>

<ResponseField name="startDateTime" type="string">
  Event start time (ISO 8601)
</ResponseField>

<ResponseField name="status" type="string">
  Event status: `upcoming`, `live`, or `completed`
</ResponseField>

<ResponseField name="views" type="integer">
  Number of views
</ResponseField>

### Relationships

<ResponseField name="homeTeam" type="object">
  Home team object with `id`, localized `name`, and `regionId`
</ResponseField>

<ResponseField name="awayTeam" type="object">
  Away team object with localized `name`
</ResponseField>

<ResponseField name="competition" type="object">
  Competition object with `id`, localized `caption`, `regionId`, and nested `region`
</ResponseField>

<ResponseField name="region" type="object">
  Region object with localized `caption`
</ResponseField>

### Markets and Odds

<ResponseField name="markets" type="array">
  Array of betting markets for this event

  <Expandable title="Market Object">
    <ResponseField name="id" type="string">
      Market ID
    </ResponseField>

    <ResponseField name="betTypeSysname" type="string">
      Market type identifier

      Examples:

      * `SOCCER_MATCH_RESULT` - 1X2
      * `SOCCER_UNDER_OVER` - Total goals
      * `BASKETBALL_MATCH_RESULT_HANDICAP` - Spread
    </ResponseField>

    <ResponseField name="displayName" type="string">
      Localized market name based on the `locale` parameter (e.g., "Match Result" in English, "Resultado Final" in Portuguese)
    </ResponseField>

    <ResponseField name="betItems" type="array">
      Array of betting options

      <Expandable title="BetItem Object">
        <ResponseField name="id" type="string">
          Bet item ID
        </ResponseField>

        <ResponseField name="code" type="string">
          Outcome code (e.g., "1", "X", "2" for 1X2)
        </ResponseField>

        <ResponseField name="caption" type="string">
          Raw caption from the data source
        </ResponseField>

        <ResponseField name="translatedCaption" type="string">
          Localized outcome caption based on the `locale` parameter (e.g., "Home Win" in English, "Vitória Mandante" in Portuguese)
        </ResponseField>

        <ResponseField name="price" type="number">
          Decimal odds (e.g., 2.10)
        </ResponseField>

        <ResponseField name="oddsText" type="string">
          Odds as text (e.g., "2.10")
        </ResponseField>

        <ResponseField name="isAvailable" type="boolean">
          Whether this bet is currently available
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

### Statistics

<ResponseField name="stats" type="object">
  Match statistics and live data (null for upcoming events, object for live/completed events)

  <Expandable title="Stats Object">
    <ResponseField name="homeGoals" type="integer">
      Home team score
    </ResponseField>

    <ResponseField name="awayGoals" type="integer">
      Away team score
    </ResponseField>

    <ResponseField name="phaseSysname" type="string">
      Current match phase

      Examples:

      * `SOCCER_MATCH_FIRST_HALF`
      * `SOCCER_MATCH_SECOND_HALF`
      * `BASKETBALL_QUARTER_1`
      * `FULL_TIME` (completed)
    </ResponseField>

    <ResponseField name="phaseCaption" type="string">
      Localized phase description (e.g., "First Half", "Partida finalizada")
    </ResponseField>

    <ResponseField name="isLive" type="boolean">
      Whether event is currently live
    </ResponseField>

    <ResponseField name="timeline" type="array">
      Array of match events (goals, cards, corners, etc.)
    </ResponseField>

    <Note>
      **Sport-specific fields**: Soccer includes corners, cards, fouls; Basketball includes quarters; Tennis includes sets, etc.
    </Note>
  </Expandable>
</ResponseField>

### Live Markets

<ResponseField name="liveMarkets" type="array">
  Real-time markets for live events. Each market includes a list of live bet items with current odds.

  <Expandable title="Live Market Object">
    <ResponseField name="marketId" type="string">
      Market identifier (matches the source market ID)
    </ResponseField>

    <ResponseField name="marketSysname" type="string">
      Market system name (e.g., `SOCCER_MATCH_RESULT`)
    </ResponseField>

    <ResponseField name="marketCaption" type="string">
      Raw market caption from the data source
    </ResponseField>

    <ResponseField name="marketDisplayName" type="string">
      Localized market name based on the `locale` parameter (e.g., "Match Result" in English, "Resultado Final" in Portuguese)
    </ResponseField>

    <ResponseField name="betItems" type="array">
      Array of live bet items with odds

      <Expandable title="Live Bet Item">
        <ResponseField name="code" type="string">
          Outcome code (`1`, `X`, `O`, etc.)
        </ResponseField>

        <ResponseField name="translatedCaption" type="string">
          Localized outcome caption based on the `locale` parameter
        </ResponseField>

        <ResponseField name="price" type="number">
          Decimal odds
        </ResponseField>

        <ResponseField name="priceChange" type="number">
          Price delta since the previous snapshot (if available)
        </ResponseField>

        <ResponseField name="isAvailable" type="boolean">
          Whether this outcome is currently available
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.mrdoge.co/v2/matches/123456?locale=en"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.mrdoge.co/v2/matches/123456?locale=en');
  const event = await response.json();
  console.log(event);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get('https://api.mrdoge.co/v2/matches/123456?locale=en')
  event = response.json()
  print(event)
  ```
</CodeGroup>

## Example Response

<Tabs>
  <Tab title="Upcoming Event">
    ```json theme={null}
    {
      "data": {
        "id": "42099047",
        "startDateTime": "2025-09-13T11:30:00.000Z",
        "status": "upcoming",
        "views": 1250,
        "homeTeam": {
          "id": 95450,
          "name": "Arsenal"
        },
        "awayTeam": {
          "id": 11045,
          "name": "Nottingham Forest"
        },
        "sport": {
          "id": 1,
          "name": "soccer",
          "sysname": "SOCCER_MATCH"
        },
        "competition": {
          "id": 847,
          "caption": "Premier League"
        },
        "region": {
          "id": 6,
          "caption": "England"
        },
        "stats": null,
        "markets": [
          {
            "id": "<string>",
            "betTypeSysname": "SOCCER_MATCH_RESULT",
            "betItems": [
              {
                "id": "<string>",
                "code": "1",
                "caption": "1",
                "price": 1.4,
                "isAvailable": true
              },
              {
                "id": "<string>",
                "code": "X",
                "caption": "X",
                "price": 4.7,
                "isAvailable": true
              },
              {
                "id": "<string>",
                "code": "2",
                "caption": "2",
                "price": 8.1,
                "isAvailable": true
              }
            ]
          }
        ],
        "analysisInsight": { ... },
        "eventNews": [ ... ]
      }
    }
    ```
  </Tab>

  <Tab title="Completed Event">
    ```json theme={null}
    {
      "data": {
        "id": "42243300",
        "startDateTime": "2025-09-04T10:35:00.000Z",
        "status": "completed",
        "views": 823,
        "homeTeam": {
          "id": 123456,
          "name": "FC Masar"
        },
        "awayTeam": {
          "id": 789012,
          "name": "Gazl Kafr Eldwar"
        },
        "sport": {
          "id": 1,
          "name": "soccer"
        },
        "stats": {
          "homeGoals": 0,
          "awayGoals": 0,
          "homeCorners": 5,
          "awayCorners": 1,
          "homeYellowCards": 2,
          "awayYellowCards": 2,
          "homeRedCards": 0,
          "awayRedCards": 0,
          "phaseSysname": "SOCCER_MATCH_SECOND_HALF",
          "phaseCaption": "Match Finished",
          "isLive": false,
          "timeline": [
            {
              "type": "YellowCardWithoutPlayer",
              "context": "A",
              "captions": ["1", "Gazl Kafr Eldwar"],
              "phaseCode": "1H",
              "timeOffset": 1
            },
            {
              "type": "Corner",
              "context": "H",
              "captions": ["18", "FC Masar"],
              "phaseCode": "1H",
              "timeOffset": 18
            }
          ]
        },
        "markets": [ ... ]
      }
    }
    ```
  </Tab>
</Tabs>

## Use Cases

<CardGroup cols={2}>
  <Card title="Event Page" icon="file-lines">
    Display complete event information with all markets and odds
  </Card>

  <Card title="Live Scores" icon="signal-stream">
    Show real-time scores and match statistics
  </Card>

  <Card title="Odds Comparison" icon="scale-balanced">
    Compare odds across different markets
  </Card>
</CardGroup>

## Error Responses

<ResponseField name="404 Not Found" type="error">
  Event with specified ID does not exist
</ResponseField>


## OpenAPI

````yaml /api-reference/openapi.json GET /v2/matches/{eventId}
openapi: 3.1.0
info:
  title: Mr. Doge API
  description: >-
    Comprehensive sports betting odds, AI predictions, and live data API
    covering 8 major sports with real-time updates and value betting
    recommendations.
  version: 1.0.0
  contact:
    name: Mr. Doge Support
    email: support@mrdoge.co
    url: https://mrdoge.co
servers:
  - url: https://api.mrdoge.co
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Odds
    description: Endpoints for accessing sports events, odds, and betting markets
  - name: AI
    description: AI-powered betting recommendations and value opportunities
paths:
  /v2/matches/{eventId}:
    get:
      tags:
        - Odds
      summary: Get Event Details
      description: >-
        Get complete event information including teams, markets, odds, live
        data, AI recommendations, and Mr. Doge picks. This endpoint returns all
        data needed to display a full event page.
      parameters:
        - name: eventId
          in: path
          required: true
          description: Event ID
          schema:
            type: string
            example: '123456'
      responses:
        '200':
          description: Event details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventDetails'
        '404':
          $ref: '#/components/responses/NotFound'
      security: []
components:
  schemas:
    EventDetails:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          properties:
            homeTeam:
              $ref: '#/components/schemas/Team'
            awayTeam:
              $ref: '#/components/schemas/Team'
            competition:
              $ref: '#/components/schemas/Competition'
            region:
              $ref: '#/components/schemas/Region'
            markets:
              type: array
              items:
                $ref: '#/components/schemas/Market'
            liveEventData:
              type: array
              items:
                $ref: '#/components/schemas/LiveEventData'
            bettingRecommendations:
              type: array
              items:
                $ref: '#/components/schemas/BettingRecommendation'
            mrDogePick:
              $ref: '#/components/schemas/MrDogePick'
    Event:
      type: object
      properties:
        id:
          type: string
          example: '123456'
        competitionId:
          type: integer
          example: 1
        homeTeamId:
          type: integer
          example: 100
          deprecated: true
        awayTeamId:
          type: integer
          example: 101
          deprecated: true
        regionId:
          type: integer
          example: 1
        sportId:
          type: integer
          example: 1
        startDateTime:
          type: string
          format: date-time
          example: '2025-11-08T15:00:00Z'
        status:
          type: string
          enum:
            - upcoming
            - live
            - completed
          example: upcoming
        views:
          type: integer
          example: 1250
        metadata:
          type: object
          description: Sport-specific event metadata including teams, markets, and odds
          properties:
            sportName:
              type: string
              example: soccer
            homeTeamName:
              type: string
              example: Arsenal
            awayTeamName:
              type: string
              example: Chelsea
    Team:
      type: object
      properties:
        id:
          type: integer
          example: 1
        caption:
          type: string
          example: Arsenal
        regionId:
          type: integer
          example: 1
    Competition:
      type: object
      properties:
        id:
          type: integer
          example: 1
        caption:
          type: string
          example: Premier League
        regionId:
          type: integer
          example: 1
        region:
          $ref: '#/components/schemas/Region'
        _count:
          type: object
          properties:
            events:
              type: integer
              example: 38
    Region:
      type: object
      properties:
        id:
          type: integer
          example: 1
        caption:
          type: string
          example: England
        _count:
          type: object
          properties:
            competitions:
              type: integer
              example: 5
            events:
              type: integer
              example: 120
        availableSports:
          type: array
          items:
            type: string
          example:
            - soccer
            - tennis
        competitions:
          type: array
          items:
            $ref: '#/components/schemas/Competition'
    Market:
      type: object
      properties:
        id:
          type: string
          example: mkt_123456
        eventId:
          type: string
          example: '123456'
        betTypeSysname:
          type: string
          example: SOCCER_MATCH_RESULT
        betItems:
          type: array
          items:
            $ref: '#/components/schemas/BetItem'
    LiveEventData:
      type: object
      properties:
        eventId:
          type: string
        phaseSysname:
          type: string
          example: SOCCER_MATCH_SECOND_HALF
        isLive:
          type: boolean
          example: true
        liveDataJson:
          type: object
          description: Sport-specific live data (scores, statistics, etc.)
    BettingRecommendation:
      type: object
      properties:
        id:
          type: string
          example: rec_123456
        eventId:
          type: string
          example: '123456'
        marketId:
          type: string
          example: mkt_123456
        betItemId:
          type: string
          example: bet_123456
        outcome:
          type: string
          example: Home Win
        odds:
          type: number
          format: float
          example: 2.1
        confidence:
          type: string
          enum:
            - High
            - Medium
            - Low
          example: High
        edgePercentage:
          type: number
          format: float
          example: 6.8
          description: Statistical edge over market odds
        kellyFraction:
          type: number
          format: float
          example: 0.032
          description: >-
            Optimal stake size using Kelly Criterion (10% fractional Kelly
            recommended)
        rationale:
          type: array
          items:
            type: string
          example:
            - Home team's excellent form (8 wins in last 10)
            - Away team struggling defensively (10 goals conceded in 3 games)
        riskFactors:
          type: array
          items:
            type: string
          example:
            - Away team has key players returning from injury
        dataSupport:
          type: array
          items:
            type: string
          example:
            - Simulation gives 52% home win probability vs 47.6% implied by odds
        settled:
          type: boolean
          example: false
        result:
          type: string
          enum:
            - won
            - lost
            - push
          nullable: true
    MrDogePick:
      type: object
      properties:
        id:
          type: string
          example: pick_123456
        pickType:
          type: string
          enum:
            - single
            - parlay
          example: parlay
        recommendations:
          type: array
          items:
            $ref: '#/components/schemas/BettingRecommendation'
        totalOdds:
          type: number
          format: float
          example: 8.5
          description: Combined odds for parlay (product of all recommendation odds)
        settled:
          type: boolean
          example: false
        result:
          type: string
          enum:
            - won
            - lost
            - push
          nullable: true
    Error:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: Invalid request parameters
        error:
          type: string
          example: Bad Request
    BetItem:
      type: object
      properties:
        id:
          type: string
          example: bet_123456
        marketId:
          type: string
          example: mkt_123456
        code:
          type: string
          example: '1'
        caption:
          type: string
          example: Home Win
        price:
          type: number
          format: float
          example: 2.1
          description: Decimal odds
        oddsText:
          type: string
          example: '2.10'
        isAvailable:
          type: boolean
          example: true
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 404
            message: Event not found
            error: Not Found
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Use your API key from the Mr. Doge dashboard. Format: `Bearer
        sk_live_...` or `Bearer sk_test_...`

````