> ## Documentation Index
> Fetch the complete documentation index at: https://proclubs-sdk.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# EA FC Pro Clubs API for TypeScript and Node.js

> Build a Pro Clubs dashboard or Discord bot with typed club stats, player rosters, rankings and recent matches. Install proclubs-sdk; no EA account required.

<img src="https://mintcdn.com/proclubs-sdk/S1C3PYMNTPR3D6Os/assets/banner.svg?fit=max&auto=format&n=S1C3PYMNTPR3D6Os&q=85&s=ef6517782c92a665372aa1aac26d5399" alt="proclubs-sdk: Pro Clubs data, ready for your app. TypeScript and Node.js." width="1200" height="630" data-path="assets/banner.svg" />

Build with EA FC Pro Clubs data. `proclubs-sdk` reads the public endpoints
behind EA's Clubs website and returns typed, validated responses to your
Node.js application.

Search a club, load its squad, and inspect recent matches. No EA account,
cookies, API key, or hosted relay is required.

```bash theme={null}
npm install proclubs-sdk
```

```ts theme={null}
import { ProClubsClient } from 'proclubs-sdk'

const proclubs = new ProClubsClient({ cache: true })
const [club] = await proclubs.clubs.search({ name: 'HEMLE FC' })

if (club) {
  const matches = await proclubs.matches.list({ clubId: club.clubId })
  console.log(matches)
}
```

Requires **Node.js 22.18.0 or newer**, ESM, and a server-side runtime.
The SDK uses a native HTTP transport; browser, React Native, and edge
runtimes are outside its support contract.

## Choose your first build

<CardGroup cols={2}>
  <Card title="Build a club dashboard" icon="chart-line" href="/docs/guides/pro-clubs-api-nodejs">
    Search a club and load its record, squad, and recent matches with a
    runnable Node.js example.
  </Card>

  <Card title="Send stats to a Discord bot" icon="discord" href="/docs/guides/discord-bot">
    Keep one cached client and format a club summary for your bot.
  </Card>

  <Card title="Fix FC 27 API failures" icon="wrench" href="/docs/guides/fc27-api-changes">
    Check platform changes, HTTP 400 and 403 responses, and stale club IDs.
  </Card>

  <Card title="Explore the SDK reference" icon="code" href="/docs/reference/client">
    Read method signatures, response types, transport options, and
    exact retry behavior.
  </Card>
</CardGroup>

## What the SDK handles

| You need | The SDK provides |
| - | - |
| Club search and statistics | Club information, aggregate records, and playoff history |
| Squad and player data | Current and career member stats, plus derived nationality labels |
| Match results | Recent league, friendly, or playoff matches; raw EA fields remain accessible |
| Leaderboards | All-time and current-season rankings, with search |
| Uncertain responses | Zod validation, typed errors, bounded retries, timeouts, and cancellation |
| Repeated requests | An optional memory cache and local request events, without telemetry |

The built-in transport uses Impit with a Chrome network profile. It helps
match EA's own website requests; it cannot guarantee that EA will serve
every request. See [errors and retries](/docs/guides/errors-and-retries).

## FC 27 platform support

| EA platform | Consoles | Status |
| - | - | - |
| `common-gen5` | PS5, Xbox Series X\|S, PC | Default |
| `nx` | Nintendo Switch family | Available; EA exposes no separate Switch 2 platform |
| `common-gen4` | PS4, Xbox One | Deprecated; EA returns HTTP 400 |

The EA endpoints now serve FC 27. They offer no game-version selector
or archive of your FC 26 matches. Recheck saved club IDs after each yearly
switchover. [Read the FC 27 guide](/docs/guides/fc27-api-changes).

<Warning>
  This is an unofficial, MIT-licensed SDK. It is not affiliated with
  Electronic Arts. EA's API is undocumented and can change or become
  unavailable. Keep requests modest and read the
  [support limits](/docs/project/limitations) before building on it.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.