Footcards APIfootcards.eu ↗
Search football trading cards and stickers on footcards.eu. Get live listing prices, stock status, seller offers, card metadata, and pagination via 2 endpoints.
What is the Footcards API?
The footcards.eu API provides 2 endpoints to query the footcards.eu marketplace for football trading cards and stickers. The search_cards endpoint returns paginated listings with titles, prices, URLs, and availability flags across any keyword search — player name, card code, or collection. The get_card_offers endpoint pulls full card metadata and a ranked list of seller offers including vendor ratings, sales counts, condition notes, and per-offer quantities.
curl -X GET 'https://api.parse.bot/scraper/3003cfd5-6381-471c-869b-f37c20a3c061/search_cards?page=1&query=Messi&sort_by=relevance&items_per_page=16' \ -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 footcards-eu-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: footcards.eu SDK — search cards, drill into offers."""
from parse_apis.footcards_eu_api import FootcardsEu, SortBy, CardNotFound
client = FootcardsEu()
# Search for Messi cards sorted by ascending price, cap at 5 results.
for card_summary in client.card_summaries.search(query="Messi", sort_by=SortBy.PRICE_ASC, limit=5):
print(card_summary.title, card_summary.price, card_summary.in_stock)
# Drill down: take the first result and navigate to full card details.
hit = client.card_summaries.search(query="Ronaldo", sort_by=SortBy.NEWEST, limit=1).first()
if hit is not None:
card = hit.details()
print(card.title, card.main_price, card.in_stock)
print("Features:", card.features)
# Inspect seller offers on this card.
for seller in card.sellers:
print(f" {seller.vendor_name} — {seller.condition} — {seller.price} (qty {seller.quantity})")
# Direct point-lookup by known path, with error handling.
try:
detail = client.cards.get(card_path="stickers/world-cup/qatar-2022/arg20-lionel-messi")
print(detail.title, detail.main_price)
except CardNotFound:
print("Card not found at the given path.")
print("exercised: card_summaries.search / CardSummary.details / cards.get")
Search for football cards and stickers by keyword. Returns paginated listings with current prices and availability status. Items marked in_stock=false represent sold-out or unavailable cards. Supports sorting by relevance, price, name, or date. Pagination is controlled via page and items_per_page parameters.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search keyword for card name, player, or code (e.g. 'Messi', 'ARG20', 'Ronaldo'). |
| sort_by | string | Sort order for results. When omitted, results are sorted by relevance. |
| items_per_page | integer | Number of results per page. The site supports 16, 32, or 64. |
{
"type": "object",
"fields": {
"page": "Current page number",
"items": "Array of card listings with title, url, price, availability, and in_stock status",
"query": "The search query string",
"total_pages": "Total number of pages available",
"items_per_page": "Number of items per page"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"url": "https://footcards.eu/stickers/world-cup/qatar-2022/arg20-lionel-messi/",
"price": "0,30€",
"title": "ARG20 Lionel Messi",
"in_stock": true,
"availability": "1 item(s)"
},
{
"url": "https://footcards.eu/stickers/world-cup/qatar-2022/lionel-messi-extra-sticker/",
"price": "Contact us for a price",
"title": "Lionel Messi (Extra Sticker)",
"in_stock": false,
"availability": null
}
],
"query": "Messi",
"total_pages": 8,
"items_per_page": 16
},
"status": "success"
}
}About the Footcards API
Search Football Cards and Stickers
The search_cards endpoint accepts a required query string — player names like Messi, card codes like ARG20, or collection keywords — and returns an items array where each entry includes a card title, listing URL, current price, and in_stock boolean. Cards with in_stock: false are sold out or otherwise unavailable. Results are paginated via page and items_per_page (supporting 16, 32, or 64 items). The optional sort_by parameter controls ordering: relevance (default), price, name, or date.
Card Detail and Seller Offers
The get_card_offers endpoint takes a card_path — the URL path below the footcards.eu domain — and returns structured data about a single card. The features object includes editor, country, release year, team, format, serie, and version fields that describe the card's physical and collection context. The sellers array lists every available offer with vendor_name, vendor_rating, vendor_sales, condition, description, price, and quantity. The main_price field reflects the primary listed price or the string 'Contact us for a price' when no fixed price is set.
Coverage Notes
Both endpoints cover the footcards.eu marketplace specifically — a platform focused on football (soccer) stickers and trading cards from collections such as Panini World Cup series. The API returns only publicly visible listing and offer data; private seller contact details and order history are not exposed.
The Footcards API is a managed, monitored endpoint for footcards.eu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when footcards.eu 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 footcards.eu 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?+
- Track price fluctuations for a specific player's cards by polling
search_cardswith their name over time - Compare all current seller offers for a single card using
get_card_offersto find the lowest-priced available listing - Build a collection completion tool that checks
in_stockstatus across a set of card codes - Aggregate card metadata — editor, year, country, team — from the
featuresobject to categorize inventory - Monitor vendor ratings and sales counts in the
sellersarray to filter offers by seller reputation - Alert users when a previously sold-out card returns to stock by watching the
in_stockflag
| 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 footcards.eu have an official developer API?+
What does `get_card_offers` return beyond the listed price?+
sellers array with one entry per offer, each containing vendor_name, vendor_rating, vendor_sales, condition, description, price, and quantity. The features object adds structured metadata: editor, country, release year, team, format, serie, and version. The main_price field shows the primary displayed price or 'Contact us for a price' when no fixed price is listed.Can I retrieve historical sold prices or completed transaction data?+
Does the search endpoint return all card collections, or only certain leagues or years?+
search_cards endpoint queries across all publicly listed cards on footcards.eu regardless of collection, year, or league. Coverage is limited to what footcards.eu lists — primarily Panini and similar football sticker and card collections. If you need to filter results by a specific attribute like year or editor, you currently do that client-side using the features data returned by get_card_offers. You can fork the API on Parse and revise it to add server-side filtering parameters if the source supports them.Is there a pagination limit on `search_cards` results?+
total_pages, page, and items_per_page in every response. Setting items_per_page to 64 returns the maximum per request. There is no documented cap on the number of pages, but very broad queries may return many pages; you should check total_pages in the first response to plan iteration.