Register a FACEIT developer application at developers.faceit.com to obtain a server-side API key for use with the Data API.
Look up a player by FACEIT nickname with GET https://open.faceit.com/data/v4/players?nickname=<NICKNAME> using header Authorization: Bearer <API_KEY> — the response includes player_id, country, skill_level, and elo per game.
To retrieve match history for a specific game, call GET /data/v4/players/<PLAYER_ID>/history?game=<GAME_ID>&offset=0&limit=20; GAME_ID is a string identifier such as cs2 or csgo.
Fetch detailed match data with GET /data/v4/matches/<MATCH_ID> — this returns match status, teams, map, and result; for per-player statistics within the match call GET /data/v4/matches/<MATCH_ID>/stats.
To retrieve a player's ongoing match or hub/championship participation, use GET /data/v4/players/<PLAYER_ID>/games/<GAME_ID>/stats for lifetime and segment statistics.
Paginate history results using offset and limit; there is a maximum limit per request, and very deep history may require many pages.
Known gotchas
The server-side API key (used in Authorization: Bearer) is different from the client-side key used in browser-based OAuth applications — using the wrong key type returns 401 or 403 errors.
FACEIT player IDs are UUIDs internal to FACEIT and differ from Steam IDs even though FACEIT accounts are Steam-linked; use the /players endpoint to resolve from nickname or Steam ID to FACEIT player_id before querying.
Match stats (per-player kill/death data) are in a separate endpoint from match metadata; fetching both requires two API calls per match, and stats may not be available immediately after a match ends — poll with a delay for recently completed matches.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp