Every highlight. Every break.
In your app in seconds.

Highlight API watches team socials and verified insiders around the clock. Clips get matched to the exact play, breaking news gets parsed into structured events. Both land in your app in seconds.

CLIP MATCHING

Every clip, bound to the exact play.

Team, provider, and league social clips get matched to the play-by-play event they show and served within seconds of the post going live.

Knicks vs Hawks
NBA · Apr 6, 2026
Waiting for tip-off…
Listening for plays...
{ "match": { "tweetId": "2041322141916746137", "caption": "CAN'T BELIEVE WHAT I'M SEEING" } }
The response includes the embed URL ready to render in your app.
Masters · Round 2
Augusta National
Waiting for the first play…
Listening for plays...
{ "play": { "player": "Rory McIlroy", "round": 2, "hole": 12, "result": "birdie" } }
Sportradar gives the play. We return the clip.
See the full Week 10 backtest, all 14 games, 1,120 clips ingested, 345 matched.
Patriots vs Buccaneers
NFL · Week 10
Waiting for kickoff…
Listening for plays...
{ "match": { "tweetId": "1987601624576020727", "caption": "OH MY TOE TAP STEFON DIGGS" } }
Same pipeline, different sport - no code changes needed.
Want to see this on your own game data?
BREAKING NEWS

Every break. Parsed. Pushed to your users in less than 15 seconds.

Injuries, inactives, trades, contracts, firings, suspensions, etc. We watch all verified insiders (Shams, Schefter, Passan, Rosenthal, Fabrizio, Ornstein, and more) around the clock. When news breaks we detect it, structure it, and push it to your app in less than 15 seconds.

Source tweet
Detected and structured in 38 seconds
GET /v1/news response
Every event returns the same envelope. Top-level type (trade, extension, firing, injury, signing, …) tells you what it is. Fields source, subjects[], and headline are always present. A type-specific block (contract, injury, tenure) is attached when it applies.
Pushed to your users
3:42
Friday, April 3
🏀
Your app now
Lakers' Luka Doncic out indefinitely with hamstring
Out for the remainder of the regular season; playoff status uncertain.
INJURY
Luka Doncic · LAL · out indefinitely
Sets a new ceiling for non-QB contracts.
SOURCE VERIFICATION

A confidence level that grows with every confirmation.

Same story, evolving signal. When a second independent reporter confirms, your app gets a new event with a higher confidence level. So you can treat a one-source break differently from a verified one.

T + 0s · first reporter breaks it
SC
Shams Charania
@ShamsCharania · ESPN
BREAKING: Wembanyama stepped into concussion protocol after last night's contact. Out indefinitely, sources tell @espn.
confidence lead
T + 63s · a second reporter confirms
CH
Chris Haynes
@ChrisBHaynes · TNT / B/R
Wembanyama is OUT indefinitely. Concussion protocol, per sources. San Antonio providing an update once medical staff completes testing.
confidence upgrades multi-sourced
FULL GAME HIGHLIGHTS

Official full-game highlights, minutes after the final whistle.

The league's own highlight reel, auto-ingested the moment it publishes. Sport-agnostic: any league with an official highlights channel plugs in.

From the Champions League to the Super Bowl, same API.

Any league with an official highlights channel plugs in. Full-game recaps auto-ingest from the official league feed the moment the final whistle goes, then surface in your app alongside every other sport your users follow.

One integration. Every league.

NFL MLB NHL La Liga Premier League Bundesliga Serie A Ligue 1 and more
UEFA Champions League | Official Match Highlights
UEFA · official YouTube · post-match
HOW IT WORKS

Finished before it lands.

We do the work as content lands. The payload that reaches your client is finished, ready to render.

1

A tweet lands

The moment a team account posts a highlight or one of our verified insiders breaks news, our ingest pipeline pulls the tweet, the video (if any), and the caption. NBA, NFL, MLB, golf, and soccer run on the same rails, and insider news covers every league plus European soccer.

@nyknicks · just posted "CAPTAINNNNN 🎯" · 0:14 video @ShamsCharania · just posted "ESPN Sources: Jayson Tatum cleared to play tonight."
2

We do the work

Either we match the clip to its play (video understanding paired with the live play-by-play feed, roster context, and caption signals) or extract the structured event from the news tweet (type, subjects, headline, impact). Every result is stored before a client ever asks. 95% of clip matches come back as high confidence, and in our backtests 100% of those are accurate.

Brunson 25' 3PT
94
Post-game interview
skip
Team promo graphic
skip
3

Pick your delivery

Three ways to receive, same payload shape. REST for batch jobs. SSE for live dashboards holding one connection per feed. Webhooks for autoscaled web tiers.

app.post('/webhooks/highlightapi', rawJson, (req, res) => { const sig = 'sha256=' + hmac(SECRET, req.body); if (!equal(sig, req.headers['x-highlight-signature'])) return res.status(401).end(); const { event, data } = JSON.parse(req.body); handle(event, data); // { tweetId, embedUrl, matchedPlay } res.status(202).end(); });
GET ACCESS

Request API access.

We're in beta with a limited number of teams. Tell us about your product and we'll get back to you within 24 hours.

✓ Request received.
We'll reach out to you within 24 hours.