badges.football Coverage check   Live demo

Integration guide

Replace your team images with Badges in a few steps — keyed by the team IDs you already use, so you don't re-key anything. Every asset is an SVG that scales to any size.

live preview
1

Get your API key

Each customer gets their own key (its own plan, rate limit and quota). Use demo to try things now; swap in your key above and every snippet below updates. Check your plan & remaining quota:

2

Try one team no setup

If you already know a team's Badges slug, request its crest as an <img>. Find slugs with /v1/clubs?q=.

Not sure which teams are covered? Run your list through the coverage check first.
3

Link your data the seamless bit

So you can render by your own team IDs, upload your team dictionary once — from the library's Connect data panel, or via the API. Provider can be opta, genius, sportradar, or your own label like internal.

You get a match report (matched / unmatched / ambiguous). It's live immediately — no redeploy.

4

Swap your image source

Wherever you render a team image today, point it at the API using the ID you already hold. It's a one-line change.

React / JSX:

5

Keep your assets where you have them fallback

Don't rip anything out — use Badges only where you have a gap, so users never see an empty crest.

6

Resolve in bulk & cache

Map your whole catalogue in one call, store the result, and serve from your own CDN. The unmatched list tells you exactly where to keep your existing asset.

7

Sizes, theming & limits

SVG scales losslessly — set &size= (8–1024). Need team colours for your own UI? /v1/club/{slug} returns them. Responses carry X-RateLimit-* headers; over-limit returns 429.

EndpointUse
/v1/badge?slug=…crest by slug
/v1/badge?provider=…&team_id=…crest by your provider ID
/v1/teams/resolvecanonical record (id, colours, asset URLs)
/v1/clubs?q=…search for slugs
/v1/accountyour plan & remaining quota
Badges are independently created identifiers, not official club crests — great as your standalone identity or as the fallback beneath licensed artwork.