This page describes what you can rely on when you build against the 4league public API and the embed widget script, and how we will tell you before anything is removed.
/v1 is the current and only major version. Every response from /v1, including errors (401, 404, 405, 429, 500, 503), carries:
X-4League-Api-Version: 1
The same value is returned as apiVersion by GET /v1/ping. A new major version, if one is ever needed, would be served under a new path prefix (/v2) and run alongside /v1.
Within /v1 we only make non-breaking changes. Anything breaking waits for a new major version or goes through the deprecation process.
| Non-breaking (may happen at any time) | Breaking (never without notice) |
|---|---|
|
|
Clients must ignore unknown fields. Do not fail on, or strictly validate against, a closed list of response properties.
No endpoint is deprecated today. The Deprecation and Sunset headers described below are therefore not currently sent on any response.
When we deprecate something in /v1 we will:
Deprecation header on the affected endpoint's responses from the announcement date.Sunset header with the planned removal date as an HTTP-date (for example Sunset: Wed, 11 Nov 2026 23:59:59 GMT).Minimum notice period between announcement and removal: To be announced.
The current scopes (organizations:read, competitions:read, matches:read, standings:read, teams:read, players:read, matchStatistics:read) are provisional: a name may still change before we call the scope set stable. If one changes, we will keep the old name working as an alias and migrate existing keys to the new name, so no key loses access. Changes will be announced the same way as deprecations.
The embed widget is a script versioned independently of the API. Both URLs below serve embed.v1.js:
| Channel | URL | Caching |
|---|---|---|
| Canonical (receives fixes) | https://4league.app/assets/js/widgets/embed.v1.js | 10 minutes |
| Pinned patch version | https://4league.ams3.cdn.digitaloceanspaces.com/embed/v1/<semver>/embed.v1.js | Immutable (max-age=31536000, immutable) |
v1 build. Fixes and backwards-compatible additions reach your pages within about ten minutes.<semver> path is never overwritten, a fix ships as a new version. Pin if you need byte-for-byte stability, and move to newer versions yourself.v1 in the file name is the widget's major version. Breaking changes would ship as embed.v2.js, and embed.v1.js would follow the deprecation process above./v1 API released with HMAC-SHA256 request signing and organization-scoped keys.X-4League-Api-Version: 1 on every response.embed.v1.js released.