Verifiable sports data,
bought by agents, per request.
Football and basketball live scores, results, match events, odds and football player statistics for autonomous AI agents. No account, no API key: an agent finds us in the x402 Bazaar, pays a fraction of a cent in USDC on Algorand, and receives signed data it can verify on its own.
Read the whitepaper See the endpoints# 1. ask
GET /v1/football/results?date=2026-10-03
← 402 Payment Required
0.002 USDC · exact · Algorand
# 2. pay and retry
GET … PAYMENT-SIGNATURE: eyJ4NDAy…
← 200 OK
{
"data": { "events": [ … ] },
"meta": { "freshnessSeconds": 11 },
"proof": { "algorithm": "ed25519-sha256-jcs",
"signature": "9f2c…" }
}
How it works
- Discover. The agent lists an x402 Bazaar catalog, filters it for sports data and reads our machine-readable description, input and output schemas and price.
- Request. It calls the endpoint and receives
HTTP 402 Payment Requiredwith the exact price, asset and network. - Pay. It signs a USDC payment on Algorand; the facilitator verifies it. Payment is settled only after the data has been produced, so a failed request costs nothing.
- Verify. The response carries an Ed25519 signature over the canonical data. Final results are also committed to Algorand as hourly Merkle roots.
Why agents use it
Built for machines
Stable JSON schemas, canonical event ids, explicit freshness and status fields, cursor pagination.
Pay as you go
From 0.001 USDC per request. No subscription, no signup. Settlement on Algorand in seconds.
Verifiable
Signed responses, public keys at a well-known URL, and on-chain Merkle anchoring for final results.
Discoverable
Every paid endpoint publishes the official x402 Bazaar discovery extension, so agents can find us without knowing our URL.
Endpoints
MainNet
https://api.kocalgo.io
TestNet
https://api-testnet.kocalgo.io
| Endpoint | Returns | USDC / request |
|---|---|---|
GET /v1/football/live | Football matches in play now | 0.005 |
GET /v1/basketball/live | Basketball games in play now | 0.005 |
GET /v1/football/results | Results by date, competition, team, status | 0.002 |
GET /v1/basketball/results | Results by date, competition, team, status | 0.002 |
GET /v1/football/events/:eventId | Score, goals, cards, substitutions, lineups | 0.002 |
GET /v1/basketball/events/:eventId | Score, half-time, status | 0.002 |
GET /v1/football/events/:eventId/odds | Pre-match and live betting markets | 0.005 |
GET /v1/basketball/events/:eventId/odds | Betting markets | 0.005 |
GET /v1/events/changes | Score and status changes since a cursor or time | 0.001 |
GET /v1/results/final | Finalized results only, with on-chain anchor proofs | 0.002 |
GET /v1/football/players/:playerId | Player profile, career and season match by match | 0.05 |
Free: /.well-known/sports-data-keys.json (signing keys), /v1/proofs/anchors/:merkleRoot (anchor lookup), /healthz.
Access: the payment is the only requirement until 31 December 2026
Any wallet that pays the quoted USDC amount gets the data. Until 31 December 2026 there is no account, API key or token-holding requirement on either network. From 1 January 2027, on Algorand MainNet the paying wallet must also hold at least 1 KC (Algorand Standard Asset 1035899249); a payer that holds less is rejected with kc_holding_required before settlement, so nothing is charged. TestNet has no holding requirement. Payment is settled only when the request succeeds: an invalid parameter, an unknown id or a source outage returns an error and nothing is charged. Browser-based x402 clients are supported: CORS is enabled and the PAYMENT-REQUIRED and PAYMENT-RESPONSE headers are exposed.
Status
This is an early service. It is live on Algorand MainNet, and Algorand TestNet remains available for testing. The paid endpoints are listed in the x402 Bazaar catalog through the GoPlausible facilitator; the football player statistics endpoint was added in October 2026. Responses are signed, and final results are committed to Algorand as hourly Merkle roots. Payments are accepted in USDC only. The data is normalized from public sports sources; we are not affiliated with any league or official data provider. Odds are informational and are not betting advice. Details and limitations are in the whitepaper.