Supported contract
- Node.js 22.18.0 or newer
- ESM imports
- TypeScript declarations
- direct, low-volume server-side requests
- injectable transport for tests and custom Node.js runtimes
Not supported in 0.3.x
- browser or CommonJS applications;
- React Native, Deno, or edge runtimes;
- EA account authentication or private endpoints;
- a shared proxy, relay, or database;
- bulk scraping, club enumeration, or data warehousing;
- a guarantee of upstream availability or long-term schema stability.
Upstream stability
EA’s Pro Clubs endpoints are public but undocumented. Routes, fields, response
statuses, and availability can change without notice. The SDK validates known
response envelopes and preserves additional fields, but it cannot make the
upstream service stable.
EA switches these endpoints to the new game at each yearly release. After the
FC 27 switchover (checked on 2026-09-30):
common-gen4 is rejected with HTTP 400 on every endpoint. It is
deprecated in the SDK.
- A club ID recorded on FC 26 resolved to a different club. Search for a club
by name again after a new release instead of reusing a stored
clubId.
- Playoff history is empty until clubs finish their first FC 27 playoffs.
Region labels are reverse-engineered from the EA website. They are not an
official EA contract. A new or renamed region keeps the raw regionId readable
and omits regionLabel until the SDK mapping is updated. Nationality labels
follow the same rule: an unknown proNationality stays on the member and
nationality is omitted until NATIONALITY_LABELS is updated.
Platform, match-type, position, reputation, division, and playoff labels follow
the same rule: raw EA codes stay on the response object and helpers return
undefined for unknown values until the SDK mapping is updated. Crest URLs are
built from EA CDN paths that can change between FC releases.
Playoff season keys are intentionally not an enum. clubs.playoffAchievements
keeps the raw seasonName and seasonId, and derives a readable seasonLabel
from the season key or, as a fallback, the numeric season ID.
Do not send EA credentials, cookies, or session tokens to this SDK. It does
not need them. A request for those values should be treated as a security
issue.
Responsible operation
- Keep request volumes modest.
- Use the optional local cache when appropriate, and keep request volumes modest.
- Do not use the SDK to reach authenticated or private endpoints.
- Respect rate limits. The SDK waits for
Retry-After before it retries.
- Follow applicable EA terms and local laws.
- Keep live compatibility probes explicit, sequential, and low volume.
Reporting issues
Use GitHub Issues for
non-sensitive correctness and compatibility reports. Report vulnerabilities
privately through
GitHub Security Advisories.