AltSportsLeagues
Getting Started

Quickstart

Get started with the AltSportsLeagues API in minutes

Quickstart

Get up and running with AltSportsLeagues in just a few minutes using our official SDKs.

Prerequisites

  • An AltSportsLeagues API key (or use demo key: demo-0001)
  • Node.js 16+ (for TypeScript/JavaScript) or Python 3.8+

Step 1: Install the SDK

npm install altsportsleagues

📦 Package: altsportsleagues on npm

pip install altsportsleagues

📦 Package: altsportsleagues on PyPI

Step 2: Initialize the Client

import { AltSportsLeagues } from 'altsportsleagues';

const client = new AltSportsLeagues({
  apiKey: process.env.ASL_API_KEY || 'demo-0001'
});
from altsportsleagues import AltSportsLeagues
import os

client = AltSportsLeagues(
    api_key=os.getenv('ASL_API_KEY', 'demo-0001')
)

Step 3: List Leagues

Let's fetch alternative sports leagues:

// List tier-2 leagues
const leagues = await client.leagues.list({
  tier: 'tier-2',
  sport: 'Soccer',
  limit: 10
});

// Print league names
leagues.data.forEach(league => {
  console.log(`${league.name} (${league.country})`);
});
# List tier-2 leagues
leagues = client.leagues.list(
    tier='tier-2',
    sport='Soccer',
    limit=10
)

# Print league names
for league in leagues.data:
    print(f"{league.name} ({league.country})")

Step 4: Search & Discover

Use intelligent search to find leagues:

// Intelligent search
const results = await client.discovery.search({
  query: 'professional pickleball leagues',
  minConfidence: 0.7,
  limit: 5
});

results.data.forEach(result => {
  console.log(`Found: ${result.name}`);
  console.log(`Confidence: ${result.confidence_score}`);
  console.log(`Tier: ${result.estimated_tier}`);
});
# Intelligent search
results = client.discovery.search(
    query='professional pickleball leagues',
    min_confidence=0.7,
    limit=5
)

for result in results.data:
    print(f"Found: {result.name}")
    print(f"Confidence: {result.confidence_score}")
    print(f"Tier: {result.estimated_tier}")

Step 5: Get League Valuation

Evaluate a league's quality and partnership potential:

// Get valuation for a league
const valuation = await client.valuation.evaluate({
  leagueId: 'league_001'
});

console.log(`Composite Score: ${valuation.data.composite_score}/100`);
console.log(`Tier: ${valuation.data.tier}`);
console.log(`Annual Value: $${valuation.data.estimated_annual_value}`);

// View dimension scores
Object.entries(valuation.data.dimensions).forEach(([dim, score]) => {
  console.log(`  ${dim}: ${score}/100`);
});
# Get valuation for a league
valuation = client.valuation.evaluate(
    league_id='league_001'
)

print(f"Composite Score: {valuation.data.composite_score}/100")
print(f"Tier: {valuation.data.tier}")
print(f"Annual Value: ${valuation.data.estimated_annual_value}")

# View dimension scores
for dim, score in valuation.data.dimensions.items():
    print(f"  {dim}: {score}/100")

Using Raw HTTP (Optional)

Prefer to use HTTP directly? Here are examples:

curl -X GET "https://api.altsportsleagues.ai/v1/leagues?tier=tier-2&limit=10" \
  -H "Authorization: Bearer demo-0001"
const url = "https://api.altsportsleagues.ai/v1/leagues?tier=tier-2&limit=10";

const response = await fetch(url, {
  headers: { "Authorization": "Bearer demo-0001" }
});

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

uri = URI('https://api.altsportsleagues.ai/v1/leagues')
uri.query = URI.encode_www_form({ tier: 'tier-2', limit: 10 })

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

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer demo-0001'

response = http.request(request)
data = JSON.parse(response.body)
puts data
<?php
$url = 'https://api.altsportsleagues.ai/v1/leagues?tier=tier-2&limit=10';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer demo-0001'
]);

$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
print_r($data);
?>
using System;
using System.Net.Http;
using System.Threading.Tasks;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer demo-0001");

var url = "https://api.altsportsleagues.ai/v1/leagues?tier=tier-2&limit=10";
var response = await client.GetStringAsync(url);
Console.WriteLine(response);
package main

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

func main() {
    client := &http.Client{}
    url := "https://api.altsportsleagues.ai/v1/leagues?tier=tier-2&limit=10"
    
    req, _ := http.NewRequest("GET", url, nil)
    req.Header.Set("Authorization", "Bearer demo-0001")

    resp, _ := client.Do(req)
    defer resp.Body.Close()
    
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class QuickStart {
    public static void main(String[] args) throws Exception {
        String urlString = "https://api.altsportsleagues.ai/v1/leagues?tier=tier-2&limit=10";
        URL url = new URL(urlString);
        
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Authorization", "Bearer demo-0001");

        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": "league_001",
      "name": "International Pickleball Federation",
      "sport": "Pickleball",
      "tier": "tier-2",
      "country": "US",
      "region": "North America",
      "status": "active",
      "data_readiness": 0.85
    }
  ],
  "meta": {
    "total": 156,
    "limit": 10,
    "has_more": true,
    "api_version": "v1",
    "timestamp": "2026-03-07T00:00:00Z"
  }
}

Next Steps

On this page