Fetch real-time odds for any sport with Python in under 20 lines of code. This tutorial connects to the FieldFunded API, pulls live match odds, and prints them to your terminal — no web scraping, no browser automation, no rate limit headaches.
import requestsAPI_KEY = "your_api_key_here"BASE_URL = "https://api.fieldfunded.com/v1"HEADERS = {"X-API-Key": API_KEY}# Get all currently live eventsresponse = requests.get(f"{BASE_URL}/live", headers=HEADERS)data = response.json()print(f"{data['total']} live games right now\n")for event in data["events"][:5]: print(f"{event['home_team']} vs {event['away_team']}") print(f" Sport: {event['sport_key']}") print(f" Score: {event.get('score', 'N/A')}") print()
Output:
12 live games right nowManchester United vs Liverpool Sport: soccer_epl Score: 1-2LA Lakers vs Boston Celtics Sport: basketball_nba Score: 89-94
event_id = data["events"][0]["id"]odds_response = requests.get( f"{BASE_URL}/events/{event_id}/odds", headers=HEADERS)odds = odds_response.json()print(f"Markets available: {len(odds['markets'])}\n")# Print Match Winner oddsfor market in odds["markets"]: if "winner" in market["name"].lower() or "1x2" in market["name"].lower(): print(f"--- {market['name']} ---") for selection in market["selections"]: print(f" {selection['name']}: {selection['odds']}") break
Output:
Markets available: 847--- Match Winner --- Manchester United: 3.40 Draw: 3.60 Liverpool: 2.10
Poll the API at intervals to track odds movements:
import timedef monitor_odds(event_id, interval=60): """Track odds changes for a specific event.""" previous = {} while True: resp = requests.get( f"{BASE_URL}/events/{event_id}/odds", headers=HEADERS ) odds = resp.json() for market in odds["markets"]: if "winner" not in market["name"].lower(): continue for sel in market["selections"]: key = f"{market['id']}_{sel['id']}" current = sel["odds"] if key in previous and previous[key] != current: direction = "↑" if current > previous[key] else "↓" print( f"{direction} {sel['name']}: " f"{previous[key]} → {current}" ) previous[key] = current time.sleep(interval)# Usage: monitor_odds("event_abc123", interval=30)
Here is everything combined into a single copy-paste script:
"""live_odds.py — Fetch live sports odds with Python.Requires: pip install requestsAPI Key: https://fieldfunded.com/docs (free)"""import requestsAPI_KEY = "your_api_key_here"BASE = "https://api.fieldfunded.com/v1"H = {"X-API-Key": API_KEY}# 1. Get live eventslive = requests.get(f"{BASE}/live", headers=H).json()print(f"=== {live['total']} LIVE GAMES ===\n")for ev in live["events"][:5]: print(f"{ev['home_team']} vs {ev['away_team']} ({ev['sport_key']})") # 2. Get odds for this event odds = requests.get(f"{BASE}/events/{ev['id']}/odds", headers=H).json() print(f" {len(odds['markets'])} markets available") # 3. Show match winner odds for m in odds["markets"]: if "winner" in m["name"].lower() or "1x2" in m["name"].lower(): for s in m["selections"]: print(f" {s['name']}: {s['odds']}") break print()