curl --request GET \
--url https://api.fieldfunded.com/v1/events/{eventId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.fieldfunded.com/v1/events/{eventId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.fieldfunded.com/v1/events/{eventId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fieldfunded.com/v1/events/{eventId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fieldfunded.com/v1/events/{eventId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fieldfunded.com/v1/events/{eventId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fieldfunded.com/v1/events/{eventId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "87654321",
"sport": {
"key": "soccer",
"name": "Soccer"
},
"league": {
"slug": "premier-league",
"name": "Premier League",
"country": "England"
},
"home_team": "Arsenal",
"away_team": "Chelsea",
"home_logo": "https://api.fieldfunded.com/api/logo/t-38",
"away_logo": "https://api.fieldfunded.com/api/logo/t-42",
"status": "live",
"start_time": "2026-04-12T15:00:00Z",
"score": {
"home": 2,
"away": 1
},
"clock": "67:10 2nd half",
"period": "2nd Half",
"odds": {
"home": 1.45,
"draw": 4.5,
"away": 6
},
"odds_format": "decimal",
"markets_count": 72,
"scoreboard": {
"headers": [
"",
"1st",
"2nd",
"T"
],
"home": [
"",
"1",
"1",
"2"
],
"away": [
"",
"0",
"1",
"1"
]
},
"markets": [
{
"key": "1x2",
"name": "Match Winner",
"outcomes": [
{
"label": "Home",
"odds": 1.45,
"is_locked": false,
"team_side": "home"
},
{
"label": "Draw",
"odds": 4.5,
"is_locked": false,
"team_side": null
},
{
"label": "Away",
"odds": 6,
"is_locked": false,
"team_side": "away"
}
]
},
{
"key": "over_under_2_5",
"name": "Over/Under 2.5",
"outcomes": [
{
"label": "Over 2.5",
"odds": 1.6,
"is_locked": false,
"team_side": null
},
{
"label": "Under 2.5",
"odds": 2.3,
"is_locked": false,
"team_side": null
}
]
}
],
"updated_at": "2026-04-12T15:67:10Z"
}{
"error": "unauthorized",
"message": "Invalid or missing API key. Visit docs.fieldfunded.com for access."
}{
"error": "not_found",
"message": "Event not found. For historical results, use /v1/settlements."
}{
"error": "rate_limited",
"message": "Rate limit exceeded. Upgrade your plan for higher limits."
}{
"error": "server_error",
"message": "Internal server error"
}{
"error": "service_unavailable",
"message": "Data store temporarily unavailable",
"component": "realtime_data"
}Get Event Details
Returns complete event details including all available betting markets, detailed scoreboard with period scores, and sport-specific data (serving indicators for tennis, power play for hockey, etc.).
curl --request GET \
--url https://api.fieldfunded.com/v1/events/{eventId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.fieldfunded.com/v1/events/{eventId}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.fieldfunded.com/v1/events/{eventId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fieldfunded.com/v1/events/{eventId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fieldfunded.com/v1/events/{eventId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fieldfunded.com/v1/events/{eventId}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fieldfunded.com/v1/events/{eventId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "87654321",
"sport": {
"key": "soccer",
"name": "Soccer"
},
"league": {
"slug": "premier-league",
"name": "Premier League",
"country": "England"
},
"home_team": "Arsenal",
"away_team": "Chelsea",
"home_logo": "https://api.fieldfunded.com/api/logo/t-38",
"away_logo": "https://api.fieldfunded.com/api/logo/t-42",
"status": "live",
"start_time": "2026-04-12T15:00:00Z",
"score": {
"home": 2,
"away": 1
},
"clock": "67:10 2nd half",
"period": "2nd Half",
"odds": {
"home": 1.45,
"draw": 4.5,
"away": 6
},
"odds_format": "decimal",
"markets_count": 72,
"scoreboard": {
"headers": [
"",
"1st",
"2nd",
"T"
],
"home": [
"",
"1",
"1",
"2"
],
"away": [
"",
"0",
"1",
"1"
]
},
"markets": [
{
"key": "1x2",
"name": "Match Winner",
"outcomes": [
{
"label": "Home",
"odds": 1.45,
"is_locked": false,
"team_side": "home"
},
{
"label": "Draw",
"odds": 4.5,
"is_locked": false,
"team_side": null
},
{
"label": "Away",
"odds": 6,
"is_locked": false,
"team_side": "away"
}
]
},
{
"key": "over_under_2_5",
"name": "Over/Under 2.5",
"outcomes": [
{
"label": "Over 2.5",
"odds": 1.6,
"is_locked": false,
"team_side": null
},
{
"label": "Under 2.5",
"odds": 2.3,
"is_locked": false,
"team_side": null
}
]
}
],
"updated_at": "2026-04-12T15:67:10Z"
}{
"error": "unauthorized",
"message": "Invalid or missing API key. Visit docs.fieldfunded.com for access."
}{
"error": "not_found",
"message": "Event not found. For historical results, use /v1/settlements."
}{
"error": "rate_limited",
"message": "Rate limit exceeded. Upgrade your plan for higher limits."
}{
"error": "server_error",
"message": "Internal server error"
}{
"error": "service_unavailable",
"message": "Data store temporarily unavailable",
"component": "realtime_data"
}Authorizations
Your FieldFunded API Key
Path Parameters
Unique event identifier. Use GET /v1/events to discover active IDs.
Query Parameters
Odds format for all values in response. Default: decimal
decimal, american, fractional Response
Deep, comprehensive details for the specified event, including all available betting markets.
"87654321"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
PNG team logo URL. Most major teams have logos; returns a default placeholder when unavailable.
PNG team logo URL. Most major teams have logos; returns a default placeholder when unavailable.
Event status. delayed = past start time but not live (auto-detected).
postponed/suspended trigger the 48-hour settlement timer.
cancelled includes walkovers and abandoned games.
live, prematch, ended, delayed, postponed, cancelled, suspended, retired Scheduled start time in ISO 8601. May be null if the event date is unknown.
Home/away goals or points. A value of 0 is a valid score (for example, 0-0) and is returned as numeric zero.
Show child attributes
Show child attributes
Current match time (e.g. "67:10 2nd half"). Returns null for sports without a running clock (tennis, darts, CS2, etc.).
Main market odds (1X2 summary). May be absent or null for events without main market odds.
Show child attributes
Show child attributes
Odds format used in this response. Only present when odds are included.
decimal, american, fractional Current game period (e.g. '1st Half', '2nd Period', 'Set 3'). Empty string when not applicable.
Total number of available markets
True when the event is past its scheduled start_time but not yet live. Only present for delayed events.
Minutes since scheduled start_time. Only present when is_delayed is true.
ISO 8601 timestamp of when this event data was last polled/updated.
Detailed period-by-period scores
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Sport-specific live data
Show child attributes
Show child attributes
