Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Farfetch API page →
E-commerce & Marketplaces

Farfetch API & Scraper

The Farfetch API turns farfetch.com, the luxury marketplace where boutiques and brand stores sell side by side, into clean JSON in three actions: search, product/detail and suggest.

3 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

One validated country parameter picks one of 68 storefronts, and prices come back in that storefront's currency (USD, GBP, EUR, CHF, SEK, DKK, PLN, AED, SAR, QAR, JPY, KRW, AUD, CAD, MXN, BRL, CLP, COP, SGD, HKD, TWD, CNY) with the duties basis the site shows (VAT included, import duties included, or none). A separate language parameter returns names, composition and made-in in English, German, French, Italian, Spanish, Japanese, Korean, Chinese or Russian, and the keyword search follows that language. search takes a keyword, a designer or a category, the site's own sorts (our picks, new items, price, biggest discount) and filters (department, on-sale, price range, colour), up to 180 rows a page. Each row carries the item id, designer, name, the price a shopper pays, the struck price and sale percentage, the boutique id, sizes in stock, the pre-owned flag with condition, and images. product/detail adds what a luxury buyer compares: every size with each boutique offering it (the boutique's name, ship-from country and city, its own price and quantity), the lowest and highest offer, the composition by material and percentage, made-in, care, measurements, season, colour, the designer's style id, the category path and the duties basis. suggest is the autocomplete with designer and category ids. A query with no genuine match returns empty instead of a page of unrelated padding. In a live check on 2026-09-15, 179 of 179 cases passed across all 68 countries, and on 6 of 6 products the brand, price, currency and stock matched the product page exactly. No Farfetch account, no browser, one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

The same item has a different price, currency and tax basis in every country, and a different boutique per size

Farfetch prices are set per storefront, and one product is often stocked by several boutiques. The API returns the country's price with the duties basis the site shows, keeps the page price separate from every other boutique's offer, and returns each size with who sells it and for how much.

ZIMMERMANN Coco cotton hoodiepricewas_priceduties basiswho sells it
Germany (EUR)352452 (−20 %)VAT includedELLITE ALTEA, Spain (XS, S); JANES, Portugal (M) at 397
United Kingdom (GBP)300nullImport duties includedsame boutiques
Japan (JPY)65,70096,500Import duties includedsame boutiques
United States (USD)443nullImport duties includedsame boutiques

Values from 2026-09-15. price is the page offer; lowest_price and highest_price span every in-stock boutique offer; sizes[].offers[] lists each boutique's own price, quantity and ship-from country. A sale search is product-level: a product is included when any of its offers is discounted, so a row's own on_sale can be false. When an item is not sold to a country, price is null and purchasable is false, never 0.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/farfetch/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "country": "us",
    "query": "gucci"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "farfetch",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1005.1,
    "record_count": 48,
    "bytes": 46014,
    "cache_hit": false,
    "pagination": {
      "page": 1,
      "page_size": 48,
      "total": 9107,
      "has_more": true
    }
  },
  "data": {
    "results": [
      {
        "product_id": "24098660",
        "url": "https://www.farfetch.com/shopping/men/gucci-re-web-trainers-item-24098660.aspx",
        "brand": "Gucci",
        "brand_id": "25354",
        "name": "Re-Web trainers",
        "label": null,
        "price": 790,
        "currency": "USD",
        "was_price": null,
        "discount_percent": null,
        "on_sale": false,
        "price_type": "FULL",
        "promotion_offer": null,
        "purchasable": true,
        "boutique_id": "17144",
        "search_index_stock_quantity": 24,
        "sizes_in_stock": [
          "42",
          "42.5",
          "43"
        ],
        "size_count": 6,
        "color_count": null,
        "pre_owned": false,
        "condition": null,
        "members_only": false,
        "image": "https://cdn-images.farfetch-contents.com/24/09/86/60/24098660_55295262_480.jpg?ov=true",
        "images": [
          "https://cdn-images.farfetch-contents.com/24/09/86/60/24098660_55295262_480.jpg?ov=true",
          "https://cdn-images.farfetch-contents.com/24/09/86/60/24098660_54195385_480.jpg?ov=true"
        ]
      },
      {
        "product_id": "15359979",
        "url": "https://www.farfetch.com/shopping/women/gucci-medium-dionysus-gg-shoulder-bag-item-15359979.aspx",
        "brand": "Gucci",
        "brand_id": "25354",
        "name": "medium Dionysus GG shoulder bag",
        "label": null,
        "price": 3350,
        "currency": "USD",
        "was_price": null,
        "discount_percent": null,
        "on_sale": false,
        "price_type": "FULL",
        "promotion_offer": null,
        "purchasable": true,
        "boutique_id": "16010",
        "search_index_stock_quantity": 9,
        "sizes_in_stock": [
          "OS"
        ],
        "size_count": 1,
        "color_count": null,
        "pre_owned": false,
        "condition": null,
        "members_only": false,
        "image": "https://cdn-images.farfetch-contents.com/15/35/99/79/15359979_53139015_480.jpg?ov=true",
        "images": [
          "https://cdn-images.farfetch-contents.com/15/35/99/79/15359979_53139015_480.jpg?ov=true",
          "https://cdn-images.farfetch-contents.com/15/35/99/79/15359979_53139028_480.jpg?ov=true"
        ]
      },
      {
        "product_id": "38876763",
        "url": "https://www.farfetch.com/shopping/men/gucci-small-essence-classic-messenger-bag-item-38876763.aspx",
        "brand": "Gucci",
        "brand_id": "25354",
        "name": "small Essence Classic messenger bag",
        "label": "New Season",
        "price": 1881,
        "currency": "USD",
        "was_price": null,
        "discount_percent": null,
        "on_sale": false,
        "price_type": "FULL",
        "promotion_offer": null,
        "purchasable": true,
        "boutique_id": "16035",
        "search_index_stock_quantity": 8,
        "sizes_in_stock": [
          "OS"
        ],
        "size_count": 1,
        "color_count": null,
        "pre_owned": false,
        "condition": null,
        "members_only": false,
        "image": "https://cdn-images.farfetch-contents.com/38/87/67/63/38876763_72253871_480.jpg?ov=true",
        "images": [
          "https://cdn-images.farfetch-contents.com/38/87/67/63/38876763_72253871_480.jpg?ov=true",
          "https://cdn-images.farfetch-contents.com/38/87/67/63/38876763_72244922_480.jpg?ov=true"
        ]
      }
    ],
    "count": 48,
    "total_results": 9107,
    "page": 1,
    "page_size": 48,
    "has_more": true,
    "sort": "relevance",
    "query": "gucci",
    "gender": "all",
    "brand_id": null,
    "category_id": null,
    "on_sale": false,
    "country": "us",
    "language": "en",
    "currency": "USD",
    "keyword_matches_on_page": 48,
    "fallback_results_dropped": 0
  }
}
Actions

What the Farfetch API does

ActionDescriptionConcrete use caseKey params
searchSearch Farfetch in any storefront country by keyword and/or designer/category, with the site's own sorts and filters (department, on-sale, price range, colour). Each row: item id, designer, name, the price a shopper pays in that country's currency, the struck price + sale %, the discounted offer of another size/boutique when one exists, the boutique id, the search-index stock quantity, sizes in stock, pre-owned + condition, members-only flag, and images. A query with no genuine match returns empty (padding counted in fallback_results_dropped).Pricing teams call search to search Farfetch in any storefront country by keyword and/or designer/category, with the site'….country, language, query, gender, sort, ...
product/detailThe full Farfetch product by item id or URL in a storefront country: designer, name, the highlights list, season, gender, colour, designer style id, made-in, composition, care, measurements, condition for pre-owned, category path, the page price with struck price/sale %, the discounted offer of another size/boutique, and the duties/VAT basis, the boutique that sells it (name, country, city), total stock, and every size with the boutique offers for it (each boutique's own price, quantity and ship-from), plus the lowest/highest offer price and images.Marketplace operators call product/detail to get the full Farfetch product by item id or URL in a storefront country.country, language, product_id, url
suggestFarfetch autocomplete for a partial keyword: designer, category and phrase suggestions with the designer/category id and the storefront URL.Catalog enrichment teams call suggest to get farfetch autocomplete for a partial keyword.query, country, language, gender
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/farfetch/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"country":"us","query":"gucci"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.farfetch.search with {"country":"us","query":"gucci"}.
Use cases

Who uses this API and why

  • Luxury price-monitoring teams compare one item's price, struck price and duties basis across up to 68 countries from a single API.
  • Brands and resellers see which boutiques stock their products, in which sizes, at what price and from which country they ship.
  • Resale and authentication platforms pull pre-owned listings with their condition grades and measurements.
  • Catalog and assortment teams read composition, made-in, season and the designer style id to match products across retailers.
FAQ

Questions developers ask before integrating

Which countries does it cover, and what currency and tax basis come back?

68 storefronts: the United States, the United Kingdom, the EU countries, Switzerland, Norway, the Nordics, the Gulf (UAE, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman), Japan, Korea, China, Hong Kong, Macau, Taiwan, Singapore, Australia, New Zealand, Canada, Mexico, Brazil, Argentina, Chile, Colombia, Peru, India and more. The currency follows the storefront (22 currencies). taxes_and_duties carries the site's own basis: VAT included, import duties included, or a free-trade-agreement price. Fifteen storefronts show no duties line at all, and taxes_and_duties is null there. Turkey, Russia, Ukraine, Belarus and Lebanon are not served by Farfetch and return MARKET_UNAVAILABLE.

Why can one product have several prices?

Because on Farfetch different boutiques can sell different sizes of the same product. price is the offer the product page shows. product/detail lists every size with its offers (boutique name, ship-from country and city, quantity, price, was_price), plus lowest_price, highest_price and boutique_count. The ZIMMERMANN hoodie in Germany is 352 € (was 452 €) in XS and S from a Spanish boutique and 397 € in M from a Portuguese one.

How do sale, struck prices and promotions work?

was_price is returned only when the site shows a higher struck price, with discount_percent from the site's own sale. on_sale says whether the row's page price is the discounted one. The on_sale filter follows Farfetch's own sale listing, which includes a product when any of its offers is discounted. promotion_offer is the discounted offer of another size or boutique of the same product: it is informational, never the price, and it can be higher than the page price.

Does it cover pre-owned items?

Yes. Farfetch lists pre-owned pieces from resale partners. Rows and products carry pre_owned: true, and condition (Unworn, Excellent, Good…) when the site grades the item. A live search for pre-owned Chanel bags returned 12 of 12 rows flagged. Pre-owned items often sit in both the women's and men's category trees, returned as category_paths.

What does a product record include beyond the price?

The designer and the designer's own style id, name, the highlight bullets the page shows, season (e.g. AW25, VINTAGE), gender, colour, made-in, composition by material and percentage, care instructions, measurements for bags, eyewear and jewellery, the category path, size scale, every size with availability and boutique offers, the total stock, and the images. Farfetch publishes no reviews or ratings, no EAN and no long description paragraph, so those are not returned.

What happens on a query with no match, a typo, or a word in another language?

A query with no genuine match returns an empty list. When Farfetch pads such a page with unrelated products, they are dropped and counted in fallback_results_dropped, and include_fallback_results=true returns them separately. Typos like 'pradaa' or 'moncller' keep their results. Keyword search follows the language parameter: search 'Kleid' with language=de or 'bolso' with language=es.

Is stock on a search row the same as on the product?

Not always. A search row's search_index_stock_quantity comes from the search index and can lag. It matched the live figure on 13 of 17 products checked. product/detail returns stock_quantity from the live product, and each size's quantity per boutique.

What is the Farfetch API?

Farfetch API is a ReefAPI endpoint group for luxury fashion from boutiques worldwide in 68 countries: local prices, every size with the boutique that sells it, composition and made-in as json. It returns live JSON through POST requests under /farfetch/v1.

Is the Farfetch API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Farfetch calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Farfetch login or account?

No login to Farfetch is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Farfetch data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Farfetch API use?

Farfetch actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Farfetch from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call farfetch actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Farfetch API a Farfetch scraper?

It is the managed alternative to a DIY Farfetch scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same luxury fashion from boutiques worldwide in 68 countries: local prices, every size with the boutique that sells it, composition and made-in as json back as clean JSON.

docs / farfetch

Farfetch

Luxury fashion from boutiques worldwide in 68 countries: local prices, every size with the boutique that sells it, composition and made-in as JSON.

base /farfetch/v13 endpoints
post/farfetch/v1/product/detail1 credit

The full Farfetch product by item id or URL in a storefront country: designer, name, the highlights list, season, gender, colour, designer style id, made-in, composition, care, measurements, condition for pre-owned, category path, the page price with struck price/sale %, the discounted offer of another size/boutique, and the duties/VAT basis, the boutique that sells it (name, country, city), total stock, and every size with the boutique offers for it (each boutique's own price, quantity and ship-from), plus the lowest/highest offer price and images.

ParameterAllowed / rangeDescription
country = usoptionalus · uk · de · fr · it · es · nl · at · ch · se · dk · no · fi · pl · be · lu · pt · ie · gr · cz · sk · si · hr · bg · ee · lv · lt · ro · hu · cy · mt · ae · sa · qa · kw · bh · om · jo · eg · ma · il · jp · kr · au · nz · ca · mx · br · ar · cl · co · pe · sg · hk · mo · tw · in · cn · th · my · id · ph · vn · za · ng · ke · kz · isFarfetch storefront country (ISO-2; 'uk' for the United Kingdom). Prices, the currency and the duties/VAT basis follow it. Default us.
language = enoptionalen · de · fr · it · es · ja · ko · zh · ruLanguage of names, labels, composition and made-in — and of the keyword index (search a Spanish word with language=es). Independent of country. Default en.
product_idoptionalFarfetch item id (the number in …-item-<id>.aspx; search rows return product_id).
urloptionalA farfetch.com product URL instead of product_id. Its /<country>/ subfolder sets the country unless country is given.
Try in playground →
post/farfetch/v1/suggest1 credit

Farfetch autocomplete for a partial keyword: designer, category and phrase suggestions with the designer/category id and the storefront URL.

ParameterAllowed / rangeDescription
queryrequiredPartial keyword.
country = usoptionalus · uk · de · fr · it · es · nl · at · ch · se · dk · no · fi · pl · be · lu · pt · ie · gr · cz · sk · si · hr · bg · ee · lv · lt · ro · hu · cy · mt · ae · sa · qa · kw · bh · om · jo · eg · ma · il · jp · kr · au · nz · ca · mx · br · ar · cl · co · pe · sg · hk · mo · tw · in · cn · th · my · id · ph · vn · za · ng · ke · kz · isFarfetch storefront country (ISO-2; 'uk' for the United Kingdom). Prices, the currency and the duties/VAT basis follow it. Default us.
language = enoptionalen · de · fr · it · es · ja · ko · zh · ruLanguage of names, labels, composition and made-in — and of the keyword index (search a Spanish word with language=es). Independent of country. Default en.
gender = alloptionalall · women · men · kidsDepartment.
Try in playground →