AltSportsData
API ReferencePublic API (Betting & Odds)Events

List Events

Fetch all events with filtering options

List Events

Retrieve a list of sports events with filtering by sport type, date range, and event status.

Endpoint

GET /api/v1/public/events

Authentication

Required. Use X-API-KEY header.

Query Parameters

ParameterTypeRequiredDescription
startDatestringNoFilter events starting from this date (ISO 8601)
endDatestringNoFilter events up to this date (ISO 8601)
sportTypestringNoFilter by sport type (see enum below)
sortOrderstringNoSort order: ASC or DESC (default: DESC)
eventStatusarrayNoFilter by event status (multiple allowed)

Sport Type Enum

wsl, sls, nrx, spr, masl, pbr, bkfc, f1, motogp, motocrs, fdrift, mxgp, jaialai, gsoc, motoamerica, byb, powerslap, usac, nhra, cdc, sprmtcrs, hlrs, xgame, worldoutlaws, dgpt, athletesunlimited, lux, raf, nll, mltt, spectation

Event Status Enum

LIVE, UPCOMING, NEXT, IN_WINDOW, COMPLETED, CANCELLED, POSTPONED

Example Request

curl -X GET "https://api.altsportsdata.com/api/v1/public/events?sportType=f1&eventStatus=LIVE&eventStatus=UPCOMING" \
  -H "X-API-KEY: YOUR_API_KEY"
import requests

headers = {'X-API-KEY': 'YOUR_API_KEY'}
params = {
    'sportType': 'f1',
    'eventStatus': ['LIVE', 'UPCOMING']
}

response = requests.get(
    'https://api.altsportsdata.com/api/v1/public/events',
    headers=headers,
    params=params
)

data = response.json()
print(data)
const url = new URL('https://api.altsportsdata.com/api/v1/public/events');
url.searchParams.append('sportType', 'f1');
url.searchParams.append('eventStatus', 'LIVE');
url.searchParams.append('eventStatus', 'UPCOMING');

const response = await fetch(url, {
  headers: {
    'X-API-KEY': 'YOUR_API_KEY'
  }
});

const data = await response.json();
console.log(data);
const url = new URL('https://api.altsportsdata.com/api/v1/public/events');
url.searchParams.append('sportType', 'f1');
url.searchParams.append('eventStatus', 'LIVE');
url.searchParams.append('eventStatus', 'UPCOMING');

const response = await fetch(url, {
  headers: {
    'X-API-KEY': 'YOUR_API_KEY'
  }
});

const data: any = await response.json();
console.log(data);
require 'net/http'
require 'json'

uri = URI('https://api.altsportsdata.com/api/v1/public/events')
params = {
  sportType: 'f1',
  eventStatus: ['LIVE', 'UPCOMING']
}
uri.query = URI.encode_www_form(params)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['X-API-KEY'] = 'YOUR_API_KEY'

response = http.request(request)
data = JSON.parse(response.body)
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    client := &http.Client{}
    url := "https://api.altsportsdata.com/api/v1/public/events?sportType=f1&eventStatus=LIVE&eventStatus=UPCOMING"
    
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("X-API-KEY", "YOUR_API_KEY")

    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", "YOUR_API_KEY");

var url = "https://api.altsportsdata.com/api/v1/public/events?sportType=f1&eventStatus=LIVE&eventStatus=UPCOMING";
var response = await client.GetAsync(url);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ListEvents {
    public static void main(String[] args) throws Exception {
        String urlString = "https://api.altsportsdata.com/api/v1/public/events?sportType=f1&eventStatus=LIVE&eventStatus=UPCOMING";
        URL url = new URL(urlString);
        
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("X-API-KEY", "YOUR_API_KEY");

        BufferedReader in = new BufferedReader(
            new InputStreamReader(conn.getInputStream())
        );
        
        String line;
        StringBuilder response = new StringBuilder();
        while ((line = in.readLine()) != null) {
            response.append(line);
        }
        in.close();
        
        System.out.println(response.toString());
    }
}

Example Response

{
  "data": [
    {
      "id": "f1-bahrain-gp-2026",
      "name": "Bahrain Grand Prix",
      "sportType": "f1",
      "eventStatus": "UPCOMING",
      "startDate": "2026-03-15T15:00:00Z",
      "endDate": "2026-03-15T17:00:00Z",
      "venue": {
        "name": "Bahrain International Circuit",
        "location": "Sakhir, Bahrain"
      },
      "participants": 20,
      "marketsAvailable": 15
    }
  ]
}

Response Fields

FieldTypeDescription
idstringUnique event identifier
namestringEvent name
sportTypestringSport type code
eventStatusstringCurrent event status
startDatestringEvent start time (ISO 8601)
endDatestringEvent end time (ISO 8601)
venueobjectVenue information
participantsintegerNumber of participants
marketsAvailableintegerNumber of betting markets

On this page