Skip to main content
GET
/
v1
/
events
Get Events — Real-time odds with 300ms refresh (filterable)
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

X-API-Key
string
header
required

Your FieldFunded API Key

Query Parameters

sport
string

Filter by sport key (e.g. soccer, basketball, cs2). Use all or omit for all sports.

Example:

"soccer"

status
enum<string>
default:all

Filter by event status

Available options:
live,
prematch,
all
league
string

Filter by league. Supports exact slug match (premier-league) or partial name match (Premier). Use /v1/leagues to discover available league slugs.

Example:

"premier-league"

country
string

Filter by country (exact or partial match, case-insensitive)

Example:

"england"

date
string<date>

Filter events on a specific day (UTC). Format: YYYY-MM-DD. Cannot combine with from/to.

Example:

"2026-04-15"

from
string<date>

Filter events starting from this date (UTC inclusive). Format: YYYY-MM-DD. Use with to for a range.

Example:

"2026-04-15"

to
string<date>

Filter events up to this date (UTC inclusive). Format: YYYY-MM-DD. Use with from for a range.

Example:

"2026-04-17"

starts_within
string

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.

Example:

"60m"

limit
integer
default:50

Maximum number of events to return

Required range: 1 <= x <= 200
offset
integer
default:0

Number of events to skip (for pagination)

Required range: x >= 0
odds_format
enum<string>
default:decimal

Odds format for all values in response. Default: decimal

Available options:
decimal,
american,
fractional

Response

A paginated list of live and upcoming sports events, including available betting markets.

events
object[]
total
integer

Total events matching filters (before pagination)

limit
integer
offset
integer