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

# Ping

> Ultra-lightweight endpoint for uptime monitoring. Returns immediately with minimal payload.

> This endpoint does not count against your monthly quota. Fixed rate limit: 2 req/s, 120 req/h (equal for all plans).




## OpenAPI

````yaml GET /v1/ping
openapi: 3.0.3
info:
  title: FieldFunded Sports API
  description: >
    Real-time sports data API covering **30+ sports & esports** and **1,000+
    betting markets** per event. Built for low-latency live odds, settlement,
    and quantitative analysis.


    ## Official SDK

    The fastest way to integrate is using our official [TypeScript SDK](/sdk).
    It handles authentication, retries, and provides full type safety for all
    1,000+ markets.


    ## Features

    - **Sub-second latency** — Data refreshed every 300ms from live feeds

    - **30+ sports & esports** — Soccer, Basketball, Tennis, Ice Hockey,
    Baseball, American Football, Rugby, Cricket, MMA, Handball, Volleyball, and
    more

    - **Full Esports Coverage** — Counter-Strike, Dota 2, LoL, Valorant, Rainbow
    Six, King of Glory, Call of Duty, Mobile Legends

    - **1,000+ Markets per game** — Match Winner, Over/Under, BTTS, Handicaps,
    Corners, Cards, Player Props, Map Winner, Round Winner, and more (major
    leagues like NBA, NFL, Premier League)

    - **Live Scores** — Real-time scoreboards with period scores, serving
    indicators, and match clocks

    - **Outrights/Futures** — Long-term futures and season-level markets (e.g.,
    League Winner, Top Goalscorer, Most Assists, Tournament MVP)

    - **Settlement Results** (Automatic) — Per-market settlement outcomes
    (won/lost/refund) for ended events, with gradual market-by-market
    resolution. No developer action required — markets begin resolving within
    seconds after game end. Send `stake` to get instant `payout` calculation
    (currency-agnostic). Poll regularly after the game ends to capture all
    market resolutions as they arrive.

    - **Parlay Resolution** (Exclusive) — Submit multi-leg parlays (singles,
    combos) and get combined result + payout calculation with optional `stake`.
    Refund legs are treated as odds 1.00 in the combined calculation.

    - **Featured Games** — Curated top matches from priority leagues (Premier
    League, La Liga, Champions League, Europa League, Bundesliga, Serie A, Ligue
    1, NBA, NFL, MLB, NHL), live-first sorted.

    - **Rich Visual Assets** — PNG team logos (~85% coverage), PNG & SVG team
    logos for featured leagues, SVG league logos, 182 SVG country flags and
    custom SVG sport icons.

    - **Global Coverage** — Premier League, La Liga, NBA, NFL, NHL, MLB,
    Champions League, and thousands of worldwide leagues including 3rd
    divisions, regional cups, ITF tournaments, and youth/female leagues, etc.


    ## Pricing

    Free tier with 10,000 requests/month. Paid plans from $29/mo. All features
    included at every tier. See [full pricing comparison](/compare/pricing).



    ## Learn More

    - [Quick Start Guide](/quickstart) — First API call in 5 minutes

    - [Authentication](/authentication) — API key setup

    - [Rate Limits](/rate-limits) — Per-plan limits and quota monitoring

    - [Supported Sports](/reference/supported-sports) — Full sport key reference

    - [Market Types](/reference/market-types) — 1,000+ market catalogue

    - [Event Statuses](/reference/event-statuses) — Lifecycle and 48-hour rule

    - [Visual Assets](/reference/visual-assets) — Logos, flags, and icons

    - [SDK Reference](/sdk) — TypeScript SDK installation and usage



    ## Sport-Specific Live Data

    Detail endpoints include a `sport_data` object with sport-specific fields:

    - **Tennis/Volleyball**: `home_serving`, `away_serving` (who is serving),
    `home_game_score`/`away_game_score` (values: `0`, `15`, `30`, `40`, `AD`),
    `is_tiebreak`

    - **Ice Hockey**: `home_suspend`/`away_suspend` (players in penalty box =
    power play indicator)

    - **All sports**: Period-by-period scoreboards via `scoreboard` object


    The `scoreboard` object contains:

    - `headers`: Column labels (e.g. `["", "1st", "2nd", "T", "Corner", "YC",
    "RC"]`)

    - `home`/`away`: Stats arrays matching the headers


    **Sport-specific scoreboard detail:**


    | Sport | Scoreboard Columns | Extra Fields |

    |-------|-------------------|--------------|

    | **Football (Soccer)** | 1st Half, 2nd Half, Total, Corners, Yellow Cards
    (YC), Red Cards (RC) | `period` (1H, 2H, HT, ET, PEN) |

    | **Tennis** | Set 1, Set 2, Set 3, Set 4, Set 5, Total |
    `home_game_score`/`away_game_score` (0, 15, 30, 40, AD), `is_tiebreak`,
    `home_serving`/`away_serving` |

    | **Basketball (NBA)** | Q1, Q2, Q3, Q4, OT, Total | `period` (Q1-Q4,
    OT1-OT3) |

    | **Ice Hockey (NHL)** | P1, P2, P3, OT, Total |
    `home_suspend`/`away_suspend` (power play) |

    | **American Football (NFL)** | Q1, Q2, Q3, Q4, OT, Total | `period`,
    `down_and_distance` |

    | **Baseball (MLB)** | Inn 1-9+, Total, Hits, Errors | `period` (Top/Bot
    1-9+), `bases`, `outs` |

    | **Volleyball** | Set 1-5, Points, Total | `home_serving`/`away_serving` |

    | **Table Tennis** | Set 1-7, Total | `home_serving`/`away_serving` |

    | **CS2 / Valorant** | Map 1, Map 2, Map 3, Rounds | `current_map`,
    `map_score`, `round_score` |

    | **Dota 2 / LoL** | Game 1, Game 2, Game 3, Total | `current_game`,
    `game_duration` |

    | **Cricket** | Innings 1, Innings 2, Overs, Wickets | `run_rate`, `target`
    |

    | **Handball** | 1st Half, 2nd Half, Total | `period` |

    | **Rugby** | 1st Half, 2nd Half, Total | `period`, `try_count` |

    | **Darts** | Set/Leg scores | `current_set`, `current_leg` |

    | **Snooker** | Frame scores, Total | `current_frame`, `frame_score` |

    | **MMA / Boxing** | Round 1-12, Total | `current_round` |


    ## Prematch Odds

    - Prematch events include full market odds (up to 1,000+ markets per event
    on major leagues)

    - Odds are refreshed via incremental cursor — 10 prematch games per 300ms
    cycle (~10-30s full pass depending on total game count)

    - Detail data (markets, scoreboards) polled every ~16-20s per event

    - All odds formats supported: `decimal`, `american`, `fractional`


    ### Fixture Horizon

    Prematch fixture depth is **league-dependent** — major leagues (e.g. Premier
    League, NBA) typically appear further ahead than niche or regional events.
    There is no fixed global limit; it reflects when the data provider publishes
    upcoming matches. Use `GET /v1/events?starts_within=2h` or
    `starts_within=1d` to filter by time window. Every event includes a
    `commence_time` (ISO 8601) field for precise scheduling.



    ## Market Suspension & Locked Odds

    Individual selections or entire markets can become temporarily **locked**
    (`is_locked: true`).

    This happens during:

    - **Goal/score events** — markets lock for 30-60 seconds while odds are
    recalculated

    - **Dangerous moments** — e.g. penalty kicks, red cards, break points in
    tennis

    - **End of game** — as a match approaches final minutes, the provider
    progressively locks markets

    - **Half-time / period breaks** — some markets lock between periods


    When `is_locked: true`, the odds value is still present (last known value)
    but the selection

    **cannot be bet on**. Your UI should grey out or disable these selections.


    ### Empty Markets (End of Game)

    Near the end of a live match, the `markets` array may become **empty**
    (`[]`) or return

    with **all outcomes locked**. This is normal — the provider stops accepting
    bets in the

    final minutes. The `markets_count` field will reflect `0` in this case.


    After the game finishes (`status: "ended"`), markets are no longer returned.

    Use `/v1/events/{eventId}/result` or `/v1/settlements` for final settlement
    data.


    ### ended Game Snapshot (Endgame Data)

    When a game finishes (or is cancelled/postponed), the API archives the final
    score permanently and provides settlement data in a rolling window. This
    applies to **all sports & esports** (Soccer, NBA, CS2, LoL, Tennis, etc.).


    **Two tiers of post-game data:**


    | Endpoint | Data | Retention |

    |----------|------|-----------|

    | `/v1/events/{eventId}/result` | Final score, status | **Permanent** —
    archived indefinitely |

    | `/v1/settlements` | Market resolutions (won/lost/refund), team names,
    scores, logos | **Recent** — poll regularly after game end to capture all
    market resolutions as they arrive gradually |

    | `/v1/bets/check` | Bet resolution against settlement data | **Recent**
    (same as settlements) |


    > **Important**: Process settlements promptly by polling every 60 seconds.
    Final scores remain permanently available via `/v1/events/{eventId}/result`.


    ## Team Side Identification

    Market outcomes include an optional `team_side` field:

    - `"home"` — this selection refers to the home team

    - `"away"` — this selection refers to the away team

    - `null` or absent — neutral selection (Draw, Over/Under totals, etc.)


    This is useful for mapping selections to team names without parsing the
    `label` string.

    Available on 1X2, Handicap, Double Chance, and similar two-sided markets.



    ### Prematch → Live Transition

    Detected automatically. When a game kicks off, its status changes from
    `prematch` to `live` and it appears in `/v1/live`. No action needed from the
    developer.



    All IDs, scores, and timestamps in endpoint examples are **synthetic**. Use
    /v1/events to discover real event IDs.
  version: 1.0.0
  termsOfService: https://docs.fieldfunded.com/terms
  contact:
    name: FieldFunded API Support
    url: https://docs.fieldfunded.com
    email: support@fieldfunded.com
servers:
  - url: https://api.fieldfunded.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Sports
    description: Discover available sports and leagues
  - name: Events
    description: Browse and search sports events
  - name: Live
    description: Real-time live event data and scores
  - name: Odds
    description: Current betting odds
  - name: Results
    description: Automatic match settlement and outcomes
  - name: Settlement
    description: >
      Fully automatic bet settlement — markets resolve on their own as soon as a
      game ends. No developer action required.

      Also includes bet-check endpoints: submit your users' selections to verify
      outcomes against automatic results.

      Supports single bets and multi-leg parlays/combos.

      The 48-hour rule applies: postponed/suspended games that don't resume
      within 48h are auto-refunded.


      #### Accurate Settlement Using IDs

      Every market and selection has a unique ID (`market_id` and
      `selection_id`). Use these IDs for bet placement and settlement to
      guarantee 100% accuracy. Market names and labels are also available for
      display purposes.
  - name: Outrights
    description: |
      Season-level winner markets (e.g., League Winner).
      Updated every 3 hours.
  - name: System
    description: API health and status
  - name: Usage Monitoring
    description: >-
      Track your API usage, quota status, and active warnings. Data available
      via the Developer Portal at `/portal`.
paths:
  /v1/ping:
    get:
      tags:
        - System
      summary: Ping — Zero-cost latency and uptime check
      description: >
        Ultra-lightweight endpoint for uptime monitoring. Returns immediately
        with minimal payload.


        > This endpoint does not count against your monthly quota. Fixed rate
        limit: 2 req/s, 120 req/h (equal for all plans).
      operationId: ping
      responses:
        '200':
          description: A lightweight confirmation that the API is reachable and responding.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pong:
                    type: boolean
                    example: true
                  timestamp:
                    type: integer
                    description: Unix timestamp in milliseconds
                    example: 1718400000000
              example:
                pong: true
                timestamp: 1777046400000
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your FieldFunded API Key

````