live-sports-hub

Multi-sport live scores and events aggregator powered by ESPN data. Real-time scores for tennis, UFC, NBA, NFL, and more.

  • 6 Entrypoints
  • v1.0.0 Version
  • Enabled Payments
live-sports-hub-production.up.railway.app

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

overview

Invoke

Free overview of live and upcoming sports events across all major leagues

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/overview/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://live-sports-hub-production.up.railway.app/entrypoints/overview/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {}
    }
  '

sport

Invoke

Get current scores and events for a specific sport

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/sport/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "sport": {
      "type": "string",
      "enum": [
        "tennis_atp",
        "tennis_wta",
        "ufc",
        "nba",
        "nfl",
        "nhl",
        "mlb",
        "soccer_epl",
        "soccer_laliga",
        "soccer_mls",
        "golf_pga"
      ],
      "description": "Sport to query"
    },
    "limit": {
      "default": 10,
      "description": "Max events to return",
      "type": "number"
    }
  },
  "required": [
    "sport",
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://live-sports-hub-production.up.railway.app/entrypoints/sport/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "sport": "tennis_atp",
        "limit": 0
      }
    }
  '

live

Invoke

Get all currently live sporting events across all sports

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/live/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "sports": {
      "description": "Filter to specific sports",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://live-sports-hub-production.up.railway.app/entrypoints/live/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "sports": [
          "string"
        ]
      }
    }
  '

upcoming

Invoke

Get upcoming sporting events scheduled for today

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/upcoming/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "sports": {
      "description": "Filter to specific sports",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limit": {
      "default": 20,
      "description": "Max events to return",
      "type": "number"
    }
  },
  "required": [
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://live-sports-hub-production.up.railway.app/entrypoints/upcoming/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "limit": 0
      }
    }
  '

event

Invoke

Get detailed information about a specific event by ID

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/event/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "sport": {
      "type": "string",
      "description": "Sport category"
    },
    "eventId": {
      "type": "string",
      "description": "Event ID from ESPN"
    }
  },
  "required": [
    "sport",
    "eventId"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://live-sports-hub-production.up.railway.app/entrypoints/event/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "sport": "<Sport category>",
        "eventId": "<Event ID from ESPN>"
      }
    }
  '

search

Invoke

Search for events, teams, or athletes across all sports

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/search/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query (team name, athlete, etc.)"
    },
    "sports": {
      "description": "Limit search to specific sports",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://live-sports-hub-production.up.railway.app/entrypoints/search/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "query": "<Search query (team name, athlete, etc.)>"
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…