FUT APIfut.gg ↗
Access EA Sports FC 27 Ultimate Team player cards from FUT.GG. Get ratings, positions, clubs, nations, card types, and live coin market prices for PS or PC.
What is the FUT API?
The FUT.GG API exposes one endpoint — list_players — that returns paginated pages of 30 EA Sports FC 27 Ultimate Team player cards each, sorted by overall rating descending. Each card object includes the player's name, rating, position, club, league, nation, card type, and current coin market price for either the PlayStation or PC platform. The unfiltered database covers up to 10,000 indexed cards with optional rating filtering.
curl -X GET 'https://api.parse.bot/scraper/a1271aad-bcbf-4464-8762-47f1d15efa81/list_players?page=1&platform=ps&min_rating=85' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace fut-gg-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: FUT.GG EA FC 27 player cards — bounded, re-runnable."""
from parse_apis.fut_gg_api import FutGg, Platform, PageNotFound
client = FutGg()
# Browse top-rated players on PlayStation, capped at 5 items.
for player in client.players.list(platform=Platform.PS, limit=5):
print(f"{player.name} ({player.rating} OVR) — {player.position}, {player.club}, {player.price} coins")
# Filter to elite cards (90+) on PC and grab the first result.
top_pc = client.players.list(platform=Platform.PC, min_rating=90, limit=1).first()
if top_pc is not None:
print(f"Top PC card: {top_pc.name}, {top_pc.card_type}, league={top_pc.league}, nation={top_pc.nation}")
# Handle a page that doesn't exist.
try:
client.players.list(min_rating=99, limit=1).first()
except PageNotFound:
print("No page found for the given filters.")
print("exercised: players.list / Platform enum / PageNotFound error")
Returns one page (30 cards) of EA FC 27 player cards from the FUT.GG database sorted by overall rating descending, each with name, rating, position, club, league, nation, card type and the current market price in coins on the requested platform. One page is one upstream list request plus the site's price files, so each call is a fixed-cost read. The page input is 1-based and required; next_page is the next page number (null when no further page exists) and total is the site's count of cards matching the rating filters (capped by the site at 10000 when the match exceeds that). Requesting a page beyond the last page yields a stale_input (input_not_found) result. min_rating keeps only cards with rating >= the value and max_rating keeps only cards with rating <= the value; both are applied by the site and combine into an inclusive range (one shape: min_rating 80 with max_rating 86 returns only cards rated 80-86, page 1 starting at the highest rating in the range), so total and paging reflect the filtered set. min_rating greater than max_rating is rejected as stale_input (input_format_invalid). Prices are integer coins; the site publishes 0 for cards it currently has no market price for (e.g. extinct or untradable-only items), and price is null only when the card is absent from the site's price index. card_type is the site's card rarity label (one shape is 'Gold Rare'; icons appear as 'Base Icon', in-forms as 'Team of the week'); for Icon cards club is 'ICON' and league is 'Icons'.
| Param | Type | Description |
|---|---|---|
| pagerequired | integer | 1-based page number of the rating-sorted list; each page holds 30 cards. |
| platform | string | Market whose coin prices are returned. |
| max_rating | integer | Only cards whose overall rating is <= this value are returned; combines with min_rating into an inclusive range. Omitted = no upper rating bound. |
| min_rating | integer | Only cards whose overall rating is >= this value are returned. Omitted = no lower rating bound. |
{
"type": "object",
"fields": {
"page": "integer page number that was returned",
"total": "integer count of cards matching the filters as reported by the site (site caps the count at 10000)",
"players": "array of player card objects, sorted by rating descending; each has name, rating (integer overall), position, club, league, nation, card_type, price (integer coins on the requested platform, 0 when the site has no current price, null only when absent from the price index)",
"platform": "platform code the prices refer to (ps or pc)",
"next_page": "integer next page number, or null when this is the last page"
},
"sample": {
"data": {
"page": 2,
"total": 72,
"players": [
{
"club": "Real Madrid",
"name": "Kylian Mbappé",
"price": 4800000,
"league": "LALIGA EA SPORTS",
"nation": "France",
"rating": 91,
"position": "ST",
"card_type": "Gold Rare"
},
{
"club": "ICON",
"name": "Franco Baresi",
"price": 325000,
"league": "Icons",
"nation": "Italy",
"rating": 91,
"position": "CB",
"card_type": "Base Icon"
}
],
"platform": "pc",
"next_page": 3
},
"status": "success"
}
}About the FUT API
What the API Returns
The list_players endpoint returns one page of 30 player card objects sorted by overall rating descending. Each object in the players array carries name, rating (integer overall), position, club, league, nation, and the current coin market price on the requested platform. The response also includes page (the current page number), total (total matching cards, capped at 10,000), platform (either ps or pc), and next_page (the next page number, or null on the final page).
Filtering and Pagination
The page parameter is required and 1-based — page 1 returns cards 1–30, page 2 returns 31–60, and so on. You can narrow results with min_rating, an integer that filters out any card whose overall rating falls below the specified threshold. The platform parameter controls which market's coin prices are returned; accepted values are ps (PlayStation) and pc. Omitting platform defaults to one of those markets. To walk the full dataset, iterate pages until next_page is null.
Coverage and Freshness
The API reflects the FUT.GG player database for EA Sports FC 27. Market prices represent live coin values as reported by the site for the selected platform. The total field is capped at 10,000 regardless of how many cards actually exist in the database, so pagination beyond that count is not supported. Card metadata such as club, league, and nation reflects the card's in-game attributes, not real-world transfers.
The FUT API is a managed, monitored endpoint for fut.gg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fut.gg changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official fut.gg API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a price tracker that monitors coin market values for high-rated cards across PS and PC platforms
- Assemble a sorted squad-builder database by pulling all cards above a given
min_ratingthreshold - Compare market prices between PlayStation and PC for the same player card
- Identify undervalued players at a specific position by filtering by
min_ratingand checking coin prices - Populate a FUT draft tool with current club, league, nation, and rating data for eligible cards
- Track card type distribution across the top-rated players in the FUT.GG database
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FUT.GG have an official developer API?+
What does the `list_players` endpoint return for each player card?+
players array includes name, rating (integer overall), position, club, league, nation, card type, and the current coin market price for the selected platform. The response envelope also returns page, total, platform, and next_page.Is player search by name or filtering by position supported?+
min_rating and selecting a market platform, but does not expose filtering by player name, position, club, or nation. You can fork this API on Parse and revise it to add those filter parameters.What is the `total` count cap and how does it affect pagination?+
total field in the response reflects the count reported by FUT.GG, which is capped at 10,000 even if more cards exist in the database. Pagination beyond 10,000 cards (333+ pages of 30) is not supported. Use next_page to detect the actual last page rather than calculating from total.