Skip to main content

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.