NEWLive animation widget is here · 2.5D and 3D

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.

134open APIs
6live matches with animation
3 waysWebSocket · MQTT · MCP
Live animation widget · live match
Live · auto-picks a popular match in progress (6 with animation data right now)
Realtime push
{ "type": "match", "id": 6838 }
Multi-source cross-check
Scores · events · stats reconciled field by field
● Service operational
● 81'马德拉斯工兵 2-1 班加罗尔根源● 14'印度 0-0 马尔代夫● 44'罗勇U21 0-0 泰港U21● 57'乌隆联 0-0 乌冬班占联● 44'伊斯佩U20 4-0 妙瓦底U20● 43'匈牙利U17 1-0 北马其顿U17● 80'卢森堡U17 0-4 意大利U17● 85'马尔代夫U17 0-7 中国香港U17● 43'巴基斯坦U17 0-1 伊朗U17● 74'菲律宾U17 0-2 印度尼西亚U17● 1st half'JAD FC 0-3 La Planet Fc● 13'乌汶东方FC 1-0 皮查亚邦迪特大学● 2nd half'Megt & Centre 2-1 Roots FC● inprogress蒙古U17 1-3 也门U17● Started'Avangard Melitopol 0-1 FC Lugansk● Started'MKS Strug Tyczyn 0-0 MKS Polonia Przemyśl● 2nd half'Krasnoe Znamya Noginsk 1-1 FC Domodedovo● inprogress柬埔寨U17 0-1 阿富汗U17● 81'马德拉斯工兵 2-1 班加罗尔根源● 14'印度 0-0 马尔代夫● 44'罗勇U21 0-0 泰港U21● 57'乌隆联 0-0 乌冬班占联● 44'伊斯佩U20 4-0 妙瓦底U20● 43'匈牙利U17 1-0 北马其顿U17● 80'卢森堡U17 0-4 意大利U17● 85'马尔代夫U17 0-7 中国香港U17● 43'巴基斯坦U17 0-1 伊朗U17● 74'菲律宾U17 0-2 印度尼西亚U17● 1st half'JAD FC 0-3 La Planet Fc● 13'乌汶东方FC 1-0 皮查亚邦迪特大学● 2nd half'Megt & Centre 2-1 Roots FC● inprogress蒙古U17 1-3 也门U17● Started'Avangard Melitopol 0-1 FC Lugansk● Started'MKS Strug Tyczyn 0-0 MKS Polonia Przemyśl● 2nd half'Krasnoe Znamya Noginsk 1-1 FC Domodedovo● inprogress柬埔寨U17 0-1 阿富汗U17
Data products

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.

WebSocketMQTTREST
📊

Team stats

Live possession, shots, shots on target, attacks, dangerous attacks, corners and more.

Live
💬

Text commentary

Commentary for kickoff, half-time, full-time and every event in between, in Chinese.

Chinese
New
🎬

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.

2.5D3Diframe
🗓️

Fixtures, results & standings

League and cup fixtures, standings, knockout brackets and season data.

Pre- / post-match
👤

Players & teams

Profiles, squads, starters and subs, transfers, injuries and suspensions, honours and career stats.

Reference data
🔒 Licensed
📉

Odds & lines

Asian handicap, 1X2 and over/under from major bookmakers, pre-match and in-play.

License required
🔒 Licensed
🎫

Lottery data

Fixtures, odds and results for China Sports Lottery, Beijing single-match and traditional pools.

License required
🤖

AI / MCP

A native MCP server. Add one line of config to Claude or Cursor and every endpoint becomes a tool.

MCP
Realtime push

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.

StandardScore & statusScore, half-time, cards, corners
StandardMatch eventsGoals, cards, subs, VAR
StandardTeam statsPossession, shots, attacks…
StandardText commentaryKickoff, half-time, event calls
Add-onScene streamEvery attack, with coordinates
Add-onPressure indexRolled up over 5 / 10 minutes

Sample messages on the right. See the realtime push docs for every field.

wss://api.sports.csap.ai/ws · sample
{
  "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
  ]
}
Live animation widget

One line of code puts the match on your page

2.5D animation or 3D pitch, one layout
Live · auto-picks a popular match in progress (6 with animation data right now)

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.

Classic
Night
Flat
Custom brand
  • 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
Easy migration

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 dataTypical providerOpenDataNotes
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-onPowers the 2.5D / 3D live animation
Pressure index (last 5 / 10 minutes)—Add-onA signal for how heated the match is
Momentum curve—Add-onAttacking strength minute by minute
Fully transparent

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.

134open APIs (live count from the API catalog)
6live matches with animation data
18live matches (scoreboard)
operationalservice status (REST / realtime / MCP / database)

See Status for each component.

Developer experience

Up and running in 5 minutes

1

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.

2

Get your API Key

Set quota, rate limits and IP allowlist per key, and track usage in the console.

3

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>"
Use cases

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
Pricing

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

Every feature for 14 days, live as soon as you're approved
Free
14 days
  • Open APIs
  • WebSocket realtime push
  • Widget: Classic template
  • MQTT
  • Scene stream / pressure index
Start a trial

Basic

The essentials for live-score and news sites
Contact us
Monthly or annual · signed contract
  • Open APIs
  • WebSocket realtime push
  • Widget: core modules
  • Ticket support
  • Scene stream / pressure index
Contact sales

Pro

Sports apps and data products
Contact us
Monthly or annual · signed contract
  • All open APIs
  • WebSocket + MQTT
  • Text commentary, scene stream, pressure index
  • Widget: 2.5D + 3D, multiple templates
  • Priority ticket support
Contact sales

Enterprise

Large platforms and custom builds
Custom
Annual contract
  • Dedicated rate limits
  • All realtime channels
  • Widget: custom brand template
  • Lottery / Betfair / media data (license required)
  • Dedicated technical account manager
Contact sales

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.

Start free trialContact sales