Fnac APIfnac.com ↗
Access Fnac product search, detailed specs, customer reviews, bons plans deals, and laptop flash sales via a structured JSON API.
What is the Fnac API?
The Fnac.com API gives developers structured access to France's major electronics and cultural products retailer across 5 endpoints. Use search_products to query the full catalog and retrieve paginated results with prices, ratings, and availability, or call get_product_details to pull specs, descriptions, and aggregate review scores for any specific product. Review data, active promotions, and laptop flash sales are also covered.
curl -X GET 'https://api.parse.bot/scraper/efa820ea-431a-4db6-abb1-c3914cea097b/search_products?page=1&sort=0&query=iphone' \ -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 fnac-com-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.
"""
Search Fnac for products, drill into details and reviews, and browse current deals.
"""
from parse_apis.fnac_product_scraper_api import Fnac, ProductSummary, Product, Deal, Review, Sort
fnac = Fnac()
# Search for iPhones sorted by price ascending
for item in fnac.products.search(query="iphone", sort=Sort.PRICE_ASC, limit=5):
print(item.name, item.price, item.availability)
# Drill into full product details
full = item.details()
print(full.name, full.price, full.rating, full.review_count)
# List reviews for this product
for review in item.reviews.list(limit=3):
print(review.author, review.rating, review.title, review.text)
# Browse current deals (bons plans)
for deal in fnac.deals.list(limit=5):
print(deal.name, deal.price, deal.old_price, deal.promo)
# Flash sales on laptops
for laptop in fnac.deals.list_flash_sales(limit=3):
print(laptop.name, laptop.price, laptop.availability, laptop.brand)
Full-text search across Fnac's product catalog. Returns a paginated list of product summaries matching the query, with prices, ratings, availability, and optional discount info. Results can be sorted by relevance, price ascending, or price descending. Each page returns up to ~20 products.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| sort | integer | Sort order |
| queryrequired | string | Search keyword (e.g. 'iphone', 'ordinateur portable') |
{
"type": "object",
"fields": {
"page": "integer page number",
"products": "array of product summary objects with name, url, price, image_url, rating, review_count, availability, and optional old_price, brand, promo fields",
"total_results": "string with total result count or null"
},
"sample": {
"data": {
"page": 1,
"products": [
{
"url": "https://www.fnac.com/Apple-iPhone-Air-6-5-5G-e-SIM-256-Go-Or-clair/a21960880/w-4",
"name": "Apple iPhone Air 6,5\" 5G e-SIM 256 Go Or clair",
"brand": "Apple",
"price": "969 €",
"rating": "5",
"old_price": "1 229 €",
"availability": "En stock en ligne",
"review_count": "9 avis"
}
],
"total_results": null
},
"status": "success"
}
}About the Fnac API
Product Search and Details
The search_products endpoint accepts a query string (e.g., 'iphone', 'ordinateur portable') along with optional page and sort parameters to control pagination and ordering (relevance, price ascending, or price descending). Each result in the products array includes name, url, price, image_url, rating, review_count, and availability, with old_price and brand fields present when a discount or brand metadata is available. The total_results field returns the overall count as a string.
For full product information, get_product_details accepts a Fnac product page URL containing the /a<product_id>/ pattern and returns a structured object with price as a numeric euro value, a specs key-value object, description, availability as a schema.org URL string, and rating plus review_count aggregates.
Reviews and Deals
get_product_reviews takes the same product URL format and returns up to roughly 10 recent reviews from the product's /avis page. Each review object includes author, rating, title, text, origin, and a verified boolean. The endpoint also surfaces aggregate_rating (e.g., '4,5') and total_reviews (e.g., '386 avis') as top-level strings.
get_bons_plans and get_flash_sales_laptops require no inputs and return deal product arrays with the same field shape as search results — name, url, price, image_url, rating, review_count, availability, and optionally old_price and brand. get_bons_plans covers active promotions across tech categories including smartphones, headphones, and tablets; get_flash_sales_laptops is scoped to 15–17 inch laptops with the promotions filter active.
The Fnac API is a managed, monitored endpoint for fnac.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fnac.com 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 fnac.com 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 drops on specific products by comparing
priceagainstold_pricefromsearch_productsorget_bons_plans. - Aggregate customer sentiment by pulling
rating,text, andverifiedfields fromget_product_reviewsacross a product category. - Build a French electronics deal alert feed using
get_bons_plansandget_flash_sales_laptopson a scheduled poll. - Populate a product comparison table with
specs,description, andavailabilityfromget_product_details. - Monitor laptop flash sale inventory by checking
availabilityfields returned byget_flash_sales_laptops. - Research market pricing for a product category by running paginated
search_productsqueries sorted by price ascending or descending.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Fnac have an official developer API?+
What does `get_product_reviews` return beyond review text?+
author, rating, title, text, origin, and a verified boolean indicating whether the purchase was confirmed. The endpoint also returns top-level aggregate_rating and total_reviews strings. The first page returns roughly 10 most recent reviews; there is no pagination parameter to retrieve deeper review pages.Is there a way to filter `search_products` by category or brand?+
query string and a sort parameter, but does not expose category or brand filter parameters directly. You can narrow results by including category or brand terms in the query string. The API currently covers these three inputs. You can fork it on Parse and revise to add faceted filtering if the underlying data supports it.