Odds API for React Native

Drop real-time odds and player props into your React Native app with a plain fetch call. Normalized JSON, American odds, and one API key — no SDK to install.

Overview

The MoneyLine odds API is a plain REST/HTTPS API, so consuming it in React Native is just fetch — no native modules, no SDK, no platform-specific build steps. Authenticate with the x-api-key header and render normalized odds directly in your components.

Because every market is normalized to American odds under canonical event IDs, your mobile client stays thin: no per-sportsbook parsing, no reconciliation, and small paginated payloads that suit mobile networks.

Key features

Just fetch

No SDK or native modules — call the REST API with the built-in fetch.

Thin client payloads

Normalized, paginated responses keep mobile data and parsing minimal.

American odds ready

Render prices directly; no client-side odds conversion.

All leagues + props

Game lines and player props across every major US league.

Supported leagues

NFLNBAMLBNHLNCAAFNCAAB

Supported sportsbooks

DraftKingsFanDuelBetMGMCaesarsESPN BETFanaticsHard Rock BetBetRiversPinnaclebet365 (US)BovadaBetOnline.ag

Example request

React Native — fetch odds in a component

Request

import { useEffect, useState } from 'react'
import { Text, View } from 'react-native'

const API_KEY = process.env.EXPO_PUBLIC_ML_API_KEY

export function NbaOdds() {
  const [games, setGames] = useState([])
  useEffect(() => {
    fetch('https://mlapi.bet/v1/odds?league=nba&market=moneyline', {
      headers: { 'x-api-key': API_KEY },
    })
      .then((r) => r.json())
      .then((json) => setGames(json.data))
  }, [])
  return (
    <View>
      {games.map((g) => (
        <Text key={g.eventId}>{g.eventId}</Text>
      ))}
    </View>
  )
}

Response

{
  "success": true,
  "data": [
    {
      "eventId": "nba-ev-311286",
      "leagueId": "nba",
      "bookmakers": [
        {
          "bookmakerId": "draftkings",
          "bookmakerName": "DraftKings",
          "markets": [
            { "marketType": "moneyline", "outcomes": [
              { "name": "Boston Celtics", "price": -180 },
              { "name": "Los Angeles Lakers", "price": 155 }
            ] }
          ]
        }
      ]
    }
  ]
}

Use cases

Mobile betting apps

Render live odds screens and bet slips natively from one feed.

Expo projects

Read the key from EXPO_PUBLIC_ env and fetch — works in managed Expo.

Prop pages

Show player props with hit-rate context in a mobile-friendly layout.

Latency & performance

FAQ

Do I need an SDK?

No. The API is REST over HTTPS, so the built-in fetch is all you need in React Native or Expo.

Where should I store the API key?

For production, proxy requests through your backend so the key is never shipped in the app bundle. Public env vars are fine only for prototyping.

Does it work with Expo?

Yes — there are no native modules to link, so it works in managed Expo and bare React Native alike.

Related

Start building in minutes

Free tier to start, one API key, normalized responses across every league and sportsbook.