Live football data
Faster, fuller, nothing missing
Scores, events, team stats, text commentary and 2.5D / 3D live animation, all with one API Key. Fields map one-to-one to the industry-standard structure and every value is cross-checked across sources, so migrating takes no rework.
{ "type": "match", "id": 6838 }One API, from kickoff to final whistle
Fixtures, live scores, events, team stats, text commentary, lineups, player and team profiles, odds and live animation, with one auth scheme and one usage meter.
Live scores & events
Score, status, cards, corners and the match clock, plus goal, substitution and VAR events with players and assists.
Team stats
Live possession, shots, shots on target, attacks, dangerous attacks, corners and more.
Text commentary
Commentary for kickoff, half-time, full-time and every event in between, in Chinese.
Live animation widget
Replays the action on a 2.5D pitch or in a 3D stadium. Style, modules and layout are all set in the console.
Fixtures, results & standings
League and cup fixtures, standings, knockout brackets and season data.
Players & teams
Profiles, squads, starters and subs, transfers, injuries and suspensions, honours and career stats.
Odds & lines
Asian handicap, 1X2 and over/under from major bookmakers, pre-match and in-play.
Lottery data
Fixtures, odds and results for China Sports Lottery, Beijing single-match and traditional pools.
AI / MCP
A native MCP server. Add one line of config to Claude or Cursor and every endpoint becomes a tool.
One connection, the whole match live
Subscribe once and get a continuous stream of scores, clock, events, team stats and text commentary. Every attack, shot and corner reaches your service within seconds.
Sample messages on the right. See the realtime push docs for every field.
{
"type": "match",
"id": 6838,
"status_id": 4,
"home_scores": [
0,
0,
0,
1,
3,
0,
0
],
"away_scores": [
1,
1,
0,
2,
3,
0,
0
]
}One line of code puts the match on your page
The 2.5D pitch replays every attack, shot, set piece and goal as it happens. In 3D, 22 players move with the live ball position in their teams' real kit colors, and the stands react to goals and cards. Both views share the same layouts, and you set style, data modules and layout in the console without writing any rendering code.
- Two views: 2.5D animation or 3D pitch
- 4 official templates with custom colors, fonts, corner radius and brand badge
- 12 data modules you can toggle: stats, events, text commentary, momentum, lineups…
- 4 layouts: standard, wide, compact and mobile portrait
- Short-lived token auth, so your API Key never touches the page
Maps one-to-one to the industry standard, and adds more
Field names, status codes and event types line up with the structure most providers use, so an existing system only needs a new base URL. On top of that, you get extra realtime dimensions.
| Realtime data | Typical provider | OpenData | Notes |
|---|---|---|---|
| Score / status / half-time score | ✓ | ✓ | Cross-checked across sources, conflicts flagged automatically |
| Match clock | ✓ | ✓ | Period start time and elapsed time, so clients can run the clock themselves |
| Match events (goals, cards, subs, VAR…) | ✓ | ✓ | With players, assists and the score after each event |
| Team stats | ✓ | ✓ | Possession, shots, attacks, dangerous attacks, corners and more |
| Text commentary | ✓ | ✓ | Kickoff, half-time, full-time and event calls |
| Per-play scenes (attack / dangerous attack / possession, with coordinates) | — | Add-on | Powers the 2.5D / 3D live animation |
| Pressure index (last 5 / 10 minutes) | — | Add-on | A signal for how heated the match is |
| Momentum curve | — | Add-on | Attacking strength minute by minute |
Live production status, right here
These numbers come straight from production: the API catalog, matches currently streaming animation, and the health of each component. Every endpoint's docs are generated from a real request.
See Status for each component.
Up and running in 5 minutes
Apply for a trial and get approved
Tell us about your company. Once a person approves it, you get a full-featured 14-day trial.
Get your API Key
Set quota, rate limits and IP allowlist per key, and track usage in the console.
Call the API or subscribe
Pull snapshots over REST, receive pushes over WebSocket / MQTT, or plug AI apps straight into MCP.
# Matches in progress curl https://api.sports.csap.ai/api/v1/live \ -H "X-API-Key: <YOUR_KEY>" # Realtime: exchange your key for a one-time ticket first curl -X POST https://api.sports.csap.ai/api/v1/realtime/ticket \ -H "X-API-Key: <YOUR_KEY>"
Data ready for your kind of business
Sports news & media
Live-score pages, match features and text commentary, with the widget dropped right in.
- Live animation widget
- Text commentary / events
- Standings and fixtures
Sports apps
Score alerts, match centers, player and team profiles in one place.
- WebSocket / MQTT
- Lineups and stats
- Mobile portrait layout
Analytics & quant
Per-play scene stream and pressure index: signals within seconds.
- Scene stream (add-on)
- Live team stats
- Historical data
AI apps
Native MCP support. One line of config for Claude or Cursor.
- Matches in progress
- Every endpoint as a tool
- Metered on the same key
From trial to enterprise, pick what fits
Every plan starts with a free 14-day trial. Paid plans are signed offline, with bank transfer and invoices; quota and concurrency follow your contract.
Trial
- Open APIs
- WebSocket realtime push
- Widget: Classic template
- MQTT
- Scene stream / pressure index
Basic
- Open APIs
- WebSocket realtime push
- Widget: core modules
- Ticket support
- Scene stream / pressure index
Pro
- All open APIs
- WebSocket + MQTT
- Text commentary, scene stream, pressure index
- Widget: 2.5D + 3D, multiple templates
- Priority ticket support
Enterprise
- Dedicated rate limits
- All realtime channels
- Widget: custom brand template
- Lottery / Betfair / media data (license required)
- Dedicated technical account manager
FAQ
Are your fields compatible with my current data provider?
Status codes, event types, stat types and the score array all map one-to-one to the structure most providers use, and every endpoint in the docs lists the mapping. Most customers switch by changing only the base URL and the auth header.
How do you make sure the data is accurate?
Every live match is cross-checked field by field against several independent sources. Conflicts are flagged and reviewed automatically, so one source's mistake never reaches you.
Why do trials need approval?
Some data comes with licensing and compliance requirements. A manual review keeps out abuse and keeps service quality high for everyone on a trial.
Will the animation widget expose my API Key?
No. Your server exchanges the key for a short-lived token tied to the widget config and your page's domain. The page only ever sees the token, which works only on your domain and only until it expires.
I don’t have a server. Can I paste the widget straight into my page?
Yes. Use an App Key (it starts with pk_): it can only load the widget and must be bound to a domain allowlist, so other sites that copy it are refused. For stricter control, turn on signed mode.
Should I use 2.5D or 3D?
2.5D is light and runs smoothly on any phone, so it suits home-page cards and lists. 3D downloads about 11 MB on first load and fits match pages and feature pages. Both share the same layouts, so switching is a config change.
How do I pay? Can I get an invoice?
Paid plans are signed offline and paid by bank transfer. We issue standard and special VAT invoices.
Ready to get started?
Apply now. Once approved, you get every feature free for 14 days.