proclubs-sdk
v0.2.1
Published
Unofficial TypeScript SDK for EA Sports FC Pro Clubs.
Maintainers
Readme
proclubs-sdk
A small, typed Node.js SDK for the public endpoints used by EA Sports FC Pro Clubs. It validates inputs and responses, retries transient failures, and exposes stable error classes without requiring EA credentials, cookies, or a hosted relay. An optional local memory cache helps repeated requests stay lightweight.
[!WARNING] This project is not affiliated with or endorsed by Electronic Arts. The upstream API is undocumented and may change or become unavailable without notice.
Install
npm install proclubs-sdkRequires Node.js 22.18.0 or newer and ESM.
Quick start
import { ProClubsClient } from 'proclubs-sdk'
const proclubs = new ProClubsClient()
const [club] = await proclubs.clubs.search({ name: 'ALL STAR 237' })
if (club) {
const [info, members, matches, playoffs] = await Promise.all([
proclubs.clubs.get({ clubId: club.clubId }),
proclubs.members.stats({ clubId: club.clubId }),
proclubs.matches.list({ clubId: club.clubId, limit: 5 }),
proclubs.clubs.playoffAchievements({ clubId: club.clubId }),
])
console.log({ info, members, matches, playoffs })
}The examples use ALL STAR 237 and HEMLE FC as test clubs, and
mrjordan_237 / mrjordan237 as test member names.
API
| Method | Result |
| --- | --- |
| clubs.search({ name, platform? }) | Promise<ClubSummary[]> |
| clubs.get({ clubId, platform? }) | Promise<ClubInfo \| null> |
| clubs.overallStats({ clubId, platform? }) | Promise<ClubOverallStats \| null> |
| clubs.playoffAchievements({ clubId, platform? }) | Promise<PlayoffAchievement[]> |
| rankings.allTime(input?) | Promise<RankingEntry[]> |
| rankings.searchAllTime({ name, platform? }) | Promise<RankingEntry[]> |
| rankings.currentSeason(input?) | Promise<RankingEntry[]> |
| rankings.searchCurrentSeason({ name, platform? }) | Promise<RankingEntry[]> |
| members.stats({ clubId, platform? }) | Promise<ClubMemberStats> |
| members.careerStats({ clubId, platform? }) | Promise<ClubMemberCareerStats> |
| matches.list({ clubId, platform?, type?, limit? }) | Promise<ClubMatch[]> |
Supported platforms are common-gen5 (default), common-gen4, and nx.
Supported match types are friendlyMatch, leagueMatch (default), and
playoffMatch.
Documentation
- Get started
- Quickstart
- Configuration
- Errors and retries
- Cache and observability
- SDK reference
- Clubs reference
- Rankings reference
- Metadata and crest helpers
- Types, schemas, and compatibility
- Regions
- Roadmap
- Support and limitations
Preview the Mintlify documentation locally with npx mint dev.
Contributing
See CONTRIBUTING.md. Run npm run check before opening a
pull request.
