curl --request GET \
--url https://api.fieldfunded.com/v1/events \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.fieldfunded.com/v1/events"
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', 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",
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"
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")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fieldfunded.com/v1/events")
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{
"events": [
{
"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,
"updated_at": "2026-04-12T15:45:30.000Z"
}
],
"total": 842,
"limit": 50,
"offset": 0
}{
"error": "bad_request",
"message": "Selection at index 0 has invalid 'odds'. Use a decimal number >= 1 when provided."
}{
"error": "unauthorized",
"message": "Invalid or missing API key. Visit docs.fieldfunded.com for access."
}{
"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 Events
Returns a paginated list of sports events. Filter by sport, league, or status. Results are sorted by start time (live events first, then upcoming).
Note: By default, ended and cancelled events are excluded. Use ?status=all to include all statuses, or ?status=ended to retrieve only ended events.
curl --request GET \
--url https://api.fieldfunded.com/v1/events \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.fieldfunded.com/v1/events"
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', 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",
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"
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")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fieldfunded.com/v1/events")
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{
"events": [
{
"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,
"updated_at": "2026-04-12T15:45:30.000Z"
}
],
"total": 842,
"limit": 50,
"offset": 0
}{
"error": "bad_request",
"message": "Selection at index 0 has invalid 'odds'. Use a decimal number >= 1 when provided."
}{
"error": "unauthorized",
"message": "Invalid or missing API key. Visit docs.fieldfunded.com for access."
}{
"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
Query Parameters
Filter by sport key (e.g. soccer, basketball, cs2). Use all or omit for all sports.
"soccer"
Filter by event status
live, prematch, all Filter by league. Supports exact slug match (premier-league) or partial name match (Premier).
Use /v1/leagues to discover available league slugs.
"premier-league"
Filter by country (exact or partial match, case-insensitive)
"england"
Filter events on a specific day (UTC). Format: YYYY-MM-DD. Cannot combine with from/to.
"2026-04-15"
Filter events starting from this date (UTC inclusive). Format: YYYY-MM-DD. Use with to for a range.
"2026-04-15"
Filter events up to this date (UTC inclusive). Format: YYYY-MM-DD. Use with from for a range.
"2026-04-17"
Filter upcoming events starting within a time window from now.
Format: {number}{unit} where unit is m (minutes), h (hours), or d (days).
Only returns prematch events — excludes already-live games.
"60m"
Maximum number of events to return
1 <= x <= 200Number of events to skip (for pagination)
x >= 0Odds format for all values in response. Default: decimal
decimal, american, fractional 