Get Started
Integrate the Football Data Platform in three steps: apply → call REST endpoints → subscribe to realtime data.
The API key stays on your server. Browser and app code only ever gets the one-time ticket or widget token your server exchanged for it. Key rules (read this first) →
Apply
Fill in the form below to apply. Applications are reviewed by a person and the trial starts once approved; no key is returned on this page. To sign in to the console yourself, manage keys and see usage, use "Start a trial". Start a trial (with a console account) →
Call REST endpoints
On your server, pass the X-API-Key header to call any endpoint. See the API docs for the full list.
curl https://api.sports.csap.ai/api/v1/matches/schedule/diary \-H "X-API-Key: kid_your_id.your_secret"
Node server (fetch) example:
const res = await fetch("https://api.sports.csap.ai/api/v1/matches/schedule/diary", { headers: { "X-API-Key": process.env.API_KEY } }) const data = await res.json()
Subscribe to realtime data
Exchange your key for a one-time ticket (valid for 60 seconds, single use), connect the WebSocket with the ticket, then send a subscription message. The key never appears in the WebSocket URL; do the exchange on your server and give the browser only the ticket. The key needs realtime push enabled.
① Your server: exchange the key for a ticket and hand the result to the front end
const ticketRes = await fetch("https://api.sports.csap.ai/api/v1/realtime/ticket", { method: "POST", headers: { "X-API-Key": process.env.API_KEY } }) const { data: ticket } = await ticketRes.json() // { ticket, expires_in: 60, ws_url }
② Browser or app: connect with the ticket only
const ws = new WebSocket("wss://api.sports.csap.ai" + ticket.ws_url) ws.onopen = () => { ws.send(JSON.stringify({ action: "set", channels: ["match", "incident"] })) } ws.onmessage = (ev) => { const msg = JSON.parse(ev.data) console.log("realtime:", msg) }
Realtime: WebSocket / SSE / MQTT with live test →
Or use an SDK: it handles the ticket exchange, reconnecting and catching up →