Live competitive cheer scores, competition results, and event listings for approved media partners. Access is by invitation: keys are issued by the FullOut team. Contact team@fullout.energy to become a partner.
Two kinds of keys. Secret keys (fo_live_…) are for server-to-server calls: send them in a header, never in a browser or URL. Publishable keys (fo_pk_…) are safe to appear in your page source; they only work for embeds and for browser calls from the domains registered to your key.
# Either header works:
curl -H "Authorization: Bearer fo_live_YOUR_KEY" https://fullout.energy/api/v1/scores/recent
curl -H "x-api-key: fo_live_YOUR_KEY" https://fullout.energy/api/v1/scores/recentResponses are JSON in a { data, meta } envelope; errors are { error: { status, message } }. Every response carries RateLimit-* headers; your per-minute allowance is set on your key. CORS is enabled for your registered domains.
GET/api/v1/scores/recent
The freshest score updates (the same feed behind our live page), newest first. Params: limit (1–50, default 20), cursor (from meta.nextCursor), after (ISO timestamp; only newer items).
{
"data": [
{
"id": "…", "sortAt": "2026-07-04T16:20:00.000Z", "round": "Finals", "placement": 1,
"team": { "id": "…", "name": "Cheetahs", "gym": { "name": "Cheer Athletics", … } },
"competition": { "id": "…", "name": "The Summit", "slug": "the-summit-2026", "date": "…" },
"division": { "name": "L5 Senior Small", "level": "L5", … },
"score": { "totalScore": 98.75, "finalScore": 98.4, "totalDeductions": 0.25 }
}
],
"meta": { "nextCursor": "2026-07-04T15:58:11.000Z" }
}GET/api/v1/competitions
Competition listings. Params: status (upcoming | recent), state (e.g. TX), producer (producer slug, e.g. varsity), discipline (name from /api/v1/disciplines, case-insensitive), limit (1–100), cursor. Filters combine.
# Upcoming Varsity events in Texas
GET /api/v1/competitions?producer=varsity&state=TX&status=upcoming
# Recent All Star Cheer competitions
GET /api/v1/competitions?discipline=All%20Star%20Cheer&status=recentGET/api/v1/competitions/{'{id-or-slug}'}
One competition with full results grouped by division: placement, team, gym, round, scores, and each division's discipline. Add ?division=<id | slug | exact name> to return just one division. 404 if unknown.
# All divisions
GET /api/v1/competitions/the-summit-2026
# One division only
GET /api/v1/competitions/the-summit-2026?division=L5%20Senior%20SmallGET/api/v1/disciplines
Reference list of active disciplines (All Star Cheer, School Cheer, College Cheer, Dance, STUNT, …) — the valid values for the discipline filter.
Drop-in widgets served from fullout.energy, styled to blend into your pages and updated automatically. Requires a publishable key; widgets only render on your registered domains. Available: ticker (auto-scrolling latest scores), scoreboard (one competition's results; pass data-competition, optionally narrow with a division query param on the iframe URL), events (upcoming + recent events).
<script async src="https://fullout.energy/embed.js"
data-widget="ticker"
data-key="fo_pk_YOUR_KEY"
data-theme="light"></script>
<script async src="https://fullout.energy/embed.js"
data-widget="scoreboard"
data-key="fo_pk_YOUR_KEY"
data-competition="the-summit-2026"></script>Prefer not to load third-party scripts? Place the iframe directly (the loader only injects it and auto-sizes the height):
<iframe src="https://fullout.energy/embed/ticker?key=fo_pk_YOUR_KEY"
style="width:100%;border:0;height:48px" title="FullOut live scores"></iframe>