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

Micolet API & Scraper

The Micolet API returns micolet.com — the Spanish managed second-hand fashion marketplace for women, men and kids — as clean JSON in five actions: search, detail, seller, brands and categories.

5 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.

Micolet is a MANAGED marketplace: a private seller sends a bag, and Micolet inspects, grades, photographs and prices every garment itself, so each row is one physical piece that exists exactly once, with its own size, colour codes, season and a condition grade (new with tags, good condition, small defect). Two things make the data unusual. First, Micolet keeps SOLD garments on its listings, after the available ones, with their last price: on one day the dress category counted 1,149,515 garments of which 102,329 were available and 1,047,186 sold, and the API returns all three of the site's own counts and flags every row is_sold, so the sold side is usable as resale price evidence. Second, each of Micolet's eight storefronts keeps its OWN price list: one measured dress cost 9.49 EUR in Spain, 9.99 in Portugal and France, 10.49 in Belgium, 10.99 in Germany and the UK and 12.49 in Italy and Poland, and across twelve dresses listed on all eight storefronts the median markup over Spain ran from +5.1% (Portugal) to +33.9% (Italy and Poland). The UK and Poland then show that euro price in pounds and zloty at one exchange rate, and the API returns both the printed price and the euro list price, named apart. The same garment is priced separately on each storefront, so to compare countries you call detail with the market you want — every response states the storefront and currency it was read on. detail adds every photo in standard and zoom size, the original retail price, the pre-markdown price on reduced items, the discount both computed and as printed, availability as available, sold or reserved (in another shopper's cart), and the seller: the closet the item came from, with the parameters to open it. seller returns that closet with its own counts and the same filters. Prices on every action were checked against the item's own page: 8 of 8 matched in amount and currency across euro, pound and zloty storefronts. No login, no API key.

Reference

One garment, priced on all eight Micolet storefronts

Item 8417448, a casual dress in size M, good condition, read on 2026-10-14. Each storefront keeps its own euro price; the UK and Poland display theirs converted at one rate. Each row is one detail call with that market; every response names the market and currency it was read on.

storefrontprinted priceeuro list pricevs Spain
ES · micolet.com9.49 EUR9.49—
PT · micolet.pt9.99 EUR9.99+5.3%
FR · micolet.fr9.99 EUR9.99+5.3%
BE · micolet.be10.49 EUR10.49+10.5%
DE · micolet.de10.99 EUR10.99+15.8%
GB · micolet.co.uk£9.2810.99+15.8%
IT · micolet.it12.49 EUR12.49+31.6%
PL · micolet.pl54.67 zł12.49+31.6%

Measured to depend on the storefront only: the same item read from different networks and countries returned the same price on micolet.com, micolet.co.uk and micolet.pl. Reduced items are the exception to the per-country markup — a marked-down dress carried the same 5.87 EUR on the Spanish and UK storefronts.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/micolet/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "market": "ES",
    "category": "3",
    "condition": "new"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "micolet",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1952.9,
    "record_count": 48,
    "bytes": 273183,
    "cache_hit": false,
    "market": "ES",
    "currency": "EUR",
    "host": "www.micolet.com",
    "page": 1,
    "per_page": 48,
    "page_cap": 100,
    "last_page": 100,
    "has_more": true,
    "total": 146370,
    "total_available": 9534,
    "total_sold": 136836,
    "rows_on_page": 48,
    "filters_applied": {
      "category": 3,
      "condition": "new"
    },
    "source_url": "https://www.micolet.com/newin?category=3&condition=new",
    "department": "women",
    "upstream_requests": 1,
    "charged_credits": 3,
    "version": "1.0.0",
    "request_id": "f9a7295be43d4281",
    "queue_ms": 1.7,
    "fetched_at": "2026-10-14T18:57:28.176Z"
  },
  "data": {
    "items": [
      {
        "item_id": "8462728",
        "url": "https://www.micolet.com/vestidos/stradivarius/8462728",
        "title": "Stradivarius Vestido casual Fluido",
        "name": "Vestido casual Fluido",
        "brand": "Stradivarius",
        "category": "Vestidos",
        "colors": [
          "multicolor"
        ],
        "size": "S",
        "size_number": null,
        "size_label": "Talla S",
        "condition": "new",
        "condition_label_en": "New with tags",
        "season": "all",
        "price": {
          "amount": 10.99,
          "currency": "EUR",
          "display": "10,99 €"
        },
        "price_from_attribute": false,
        "price_eur_list": 10.99,
        "original_price": {
          "amount": 29.99,
          "currency": "EUR",
          "display": "29,99 €"
        },
        "pre_markdown_price": null,
        "is_marked_down": false,
        "discount_pct": 63.4,
        "is_sold": false,
        "image": "https://d30o7qbghf97ws.cloudfront.net/itemimage/17361611/image/list-535943e3dce0b05b769e13a66409c4dd.webp",
        "market": "ES",
        "detail_params": {
          "market": "ES",
          "item_id": "8462728"
        }
      },
      {
        "item_id": "8478233",
        "url": "https://www.micolet.com/vestidos/new-look/8478233",
        "title": "New Look Vestido casual",
        "name": "Vestido casual",
        "brand": "New Look",
        "category": "Vestidos",
        "colors": [
          "green"
        ],
        "size": null,
        "size_number": "44.0",
        "size_label": "Talla 44",
        "condition": "new",
        "condition_label_en": "New with tags",
        "season": "all",
        "price": {
          "amount": 12.49,
          "currency": "EUR",
          "display": "12,49 €"
        },
        "price_from_attribute": false,
        "price_eur_list": 12.49,
        "original_price": {
          "amount": 39.99,
          "currency": "EUR",
          "display": "39,99 €"
        },
        "pre_markdown_price": null,
        "is_marked_down": false,
        "discount_pct": 68.8,
        "is_sold": false,
        "image": "https://d30o7qbghf97ws.cloudfront.net/itemimage/17392845/image/list-cd3e1df942cedd99664293ae52d38b12.webp",
        "market": "ES",
        "detail_params": {
          "market": "ES",
          "item_id": "8478233"
        }
      },
      {
        "item_id": "8146234",
        "url": "https://www.micolet.com/vestidos/commense/8146234",
        "title": "COMMENSE Vestido casual",
        "name": "Vestido casual",
        "brand": "COMMENSE",
        "category": "Vestidos",
        "colors": [
          "pink"
        ],
        "size": "M",
        "size_number": null,
        "size_label": "Talla M",
        "condition": "new",
        "condition_label_en": "New with tags",
        "season": "all",
        "price": {
          "amount": 48.49,
          "currency": "EUR",
          "display": "48,49 €"
        },
        "price_from_attribute": false,
        "price_eur_list": 48.49,
        "original_price": {
          "amount": 79.99,
          "currency": "EUR",
          "display": "79,99 €"
        },
        "pre_markdown_price": null,
        "is_marked_down": false,
        "discount_pct": 39.4,
        "is_sold": false,
        "image": "https://d30o7qbghf97ws.cloudfront.net/itemimage/16720988/image/list-60db8b1b85c6059f6e83334cf4a4f7e4.webp",
        "market": "ES",
        "detail_params": {
          "market": "ES",
          "item_id": "8146234"
        }
      }
    ]
  }
}
Actions

What the Micolet API does

ActionDescriptionConcrete use caseKey params
searchSearch or browse one storefront and department, 48 rows per page as the site pages them. Every row is a unique garment with its own size, condition grade and price in the storefront's currency, plus the euro list price and the original retail price. Rows come in the site's own order (no sort exists): available garments first, then sold ones, each flagged `is_sold`. The meta reports the site's own three counts (total / available / sold). Every filter here was measured biting against the unfiltered control in the same run; the ones the site silently ignores are not offered. Paging stops at the site's 100-page ceiling.Pricing teams call search to search or browse one storefront and department, 48 rows per page as the site pages them.market, department, page, exclude_sold, query, ...
detailThe full item page of one garment on one storefront: title, brand, type, the breadcrumb, colour codes, letter and numeric size, condition grade, season, the localized detail list exactly as printed, the current price in the storefront's currency with the euro list price, the original retail price and the pre-markdown price, the discount (computed AND the site's own figure), availability (available / sold / reserved), every photo in standard and zoom size, and the SELLER: the closet id and name the page shows, with the parameters to open that closet. A dead id is NOT_FOUND. Each storefront prices the same garment separately (DE/UK +18.9%, IT/PL +33.9% median over Spain), so to compare countries call `detail` once per `market`; the response states the market, currency and host it was read on.Marketplace operators call detail to get the full item page of one garment on one storefront.item_id, market
sellerA seller's public closet ('El armario de...'): the closet name, the site's own counts (total / available / sold — one measured closet: 1,146 garments, 128 available) and its garments 48 per page, filterable with the same measured filters as `search` (colour pink -> 37 of 1,146). An unknown closet id is NOT_FOUND.Catalog enrichment teams call seller to get a seller's public closet ('El armario de...').seller_id, market, page, exclude_sold, query, ...
brandsResolve a brand name to the id `search` filters on, straight from the site's own brand autocomplete (10 rows for 'levi', 14 for 'zara' in the measured run). Brand ids are the same on every storefront.Retail analysts call brands to resolve a brand name to the id `search` filters on, straight from the site's own brand autoco….query, market
categoriesThe 15 category ids `search` accepts, with their English names, the storefront's own local sub-type tags (tag ids + local labels, read live from the storefront's menu) and which departments list each category.Pricing teams call categories to get the 15 category ids `search` accepts, with their English names, the storefront's own local su….market
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/micolet/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"market":"ES","category":"3","condition":"new"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.micolet.search with {"market":"ES","category":"3","condition":"new"}.
Use cases

Who uses this API and why

  • Compare what the same second-hand garment costs on Micolet's storefronts by calling detail with each market, and buy where it is cheapest.
  • Use Micolet's sold listings, with their last prices, as evidence of what second-hand items of a brand and size actually sold for.
  • Track a brand's available versus sold second-hand supply per category and country using the site's own counts.
  • Follow a seller's closet: its available and sold garments, filtered by colour, size or price.
  • Feed a resale or styling catalogue with graded, photographed one-of-a-kind garments across women's, men's and kids' departments.
FAQ

Questions developers ask before integrating

Does the API return sold items?

Yes, because Micolet lists them. Its category pages show available garments first and sold ones after, and the headline count is mostly sold: 1,149,515 dresses on one day, 102,329 of them available. Every row carries is_sold, the response carries the site's three counts (total, available, sold), and exclude_sold drops the sold rows if you only want what can be bought. A sold garment's detail page still returns its last price.

Is the price the same on every Micolet storefront?

No. Each of the eight storefronts keeps its own euro price list. Across twelve dresses listed on all eight, the median markup over Spain was +5.1% in Portugal, +8.8% in France, +14.3% in Belgium, +18.9% in Germany and the UK and +33.9% in Italy and Poland. The UK and Poland display their euro price in pounds and zloty at one exchange rate. Reduced items carry the same euro price everywhere. To compare, call detail on the same item_id with each market you care about.

What is price_eur_list next to price?

price is what the storefront prints, in its own currency. price_eur_list is the storefront's euro list price that the printed one is derived from. On the six euro storefronts they are equal; on the UK and Polish storefronts the printed price is the euro list price converted (one dress: 10.99 euro list, printed £9.28 and, in Poland, 12.49 euro list, printed 54.67 zł).

Which filters can I use?

Department (women, men, kids), category, sub-type tag, brand id, colour, letter size, numeric size, condition (new with tags or small defect), season, a price range and free text. Each was measured against the unfiltered total in the same run — for example dresses 1,149,513, red ones 88,921, new-with-tags ones 146,370. The price range is in the storefront's own currency, and free text is matched in the storefront's language.

How deep can I page?

48 rows per page, up to page 100 — 4,800 rows per query. Micolet returns empty pages after that, so the API refuses a page above 100 and reports the last page and whether there is more. Narrow the filters to reach further.

Who is the seller?

Micolet sells and ships every item, and the item page also names the private seller's closet the garment came from. detail returns that closet's id and name, and seller opens the closet with its own counts — one measured closet held 1,146 garments, 128 of them available. Items from influencer closets are marked as such.

Can I sort results?

No. Micolet's storefront has no sort control, so rows come in the site's own order: available garments first, then sold ones. Filter instead, or sort the rows you receive.

Does it return measurements or a description of flaws?

No, because Micolet does not publish them per item. The condition is a grade — new with tags, good condition or small defect — and the photos show the piece. The hanger-measurements link on the site opens a general guide, not the garment's own measurements.

What is the Micolet API?

Micolet API is a ReefAPI endpoint group for spain's managed second-hand fashion marketplace as json: one-of-a-kind garments graded and priced by micolet, sold items included with their last price, and each of the eight european storefronts with its own price. It returns live JSON through POST requests under /micolet/v1.

Is the Micolet API free to try?

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

Do I need a Micolet login or account?

No login to Micolet 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 Micolet 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 Micolet API use?

Micolet actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

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

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

docs / micolet

Micolet

Spain's managed second-hand fashion marketplace as JSON: one-of-a-kind garments graded and priced by Micolet, sold items included with their last price, and each of the eight European storefronts with its own price.

base /micolet/v15 endpoints
post/micolet/v1/detail2 credits

The full item page of one garment on one storefront: title, brand, type, the breadcrumb, colour codes, letter and numeric size, condition grade, season, the localized detail list exactly as printed, the current price in the storefront's currency with the euro list price, the original retail price and the pre-markdown price, the discount (computed AND the site's own figure), availability (available / sold / reserved), every photo in standard and zoom size, and the SELLER: the closet id and name the page shows, with the parameters to open that closet. A dead id is NOT_FOUND. Each storefront prices the same garment separately (DE/UK +18.9%, IT/PL +33.9% median over Spain), so to compare countries call `detail` once per `market`; the response states the market, currency and host it was read on.

ParameterAllowed / rangeDescription
item_idrequired—The garment's numeric id — the `item_id` of any search row, or the last number of a micolet URL (/vestidos/pompom/8417448). Ids are shared by all eight storefronts.
market = ESoptionalES · FR · BE · PT · GB · IT · DE · PLWhich Micolet storefront to read. It picks the PRICE LIST, not just the language: each storefront prices the same garment differently (item 8417448: ES 9.49 · PT 9.99 · FR 9.99 · BE 10.49 · DE 10.99 · UK 10.99 EUR · IT 12.49 · PL 12.49 EUR; median markup over Spain on 12 dresses: PT +5.1%, FR +8.8%, BE +14.3%, DE/UK +18.9%, IT/PL +33.9%). The UK shows pounds and Poland zloty, converted from that storefront's euro price at one rate. Measured to depend on the storefront only, not on where the request comes from. Default ES (micolet.com).
Try in playground →
post/micolet/v1/seller3 credits

A seller's public closet ('El armario de...'): the closet name, the site's own counts (total / available / sold — one measured closet: 1,146 garments, 128 available) and its garments 48 per page, filterable with the same measured filters as `search` (colour pink -> 37 of 1,146). An unknown closet id is NOT_FOUND.

ParameterAllowed / rangeDescription
seller_idrequired—The seller's closet id: `seller.seller_id` of a `detail` record, or the number in a /armario/<id> URL.
market = ESoptionalES · FR · BE · PT · GB · IT · DE · PLWhich Micolet storefront to read. It picks the PRICE LIST, not just the language: each storefront prices the same garment differently (item 8417448: ES 9.49 · PT 9.99 · FR 9.99 · BE 10.49 · DE 10.99 · UK 10.99 EUR · IT 12.49 · PL 12.49 EUR; median markup over Spain on 12 dresses: PT +5.1%, FR +8.8%, BE +14.3%, DE/UK +18.9%, IT/PL +33.9%). The UK shows pounds and Poland zloty, converted from that storefront's euro price at one rate. Measured to depend on the storefront only, not on where the request comes from. Default ES (micolet.com).
queryoptional—Free-text search, matched in the STOREFRONT'S language: 'jeans' on the UK men's root returned 62,790 rows, the Spanish 'vaqueros' on the UK women's root 14. Brand names work everywhere ('levis' 20,728 vs brand id 19 20,725 on ES).
categoryoptional1 · 3 · 4 · 8 · 46 · 47 · 48 · 49 · 50 · 51 · 52 · 53 · 54 · 55 · 56Micolet's own category id. Ids are shared by the three departments (`54` = jackets: 440,746 for women, 50,583 for men). Use `categories` for the local names and the sub-type tags. An id the site does not know is HTTP 404 at the source and is rejected here.
tag_idoptional—Sub-type tag ids from `categories` (216 = casual dress: 774,960 of 1,149,513 dresses). Several ids are OR-ed. An unknown id returns 0 rows (measured).
brand_idoptional—Brand ids from the `brands` action (Levi's = 19, Zara = 3, Mango = 15). Several ids are OR-ed (Zara+Mango dresses: 199,571). Unknown id -> 0 rows.
coloroptionalbeige · black · blue · brown · gold · green · grey · multicolor · navy_blue · orange · pink · purple · red · silver · white · yellowColour codes, OR-ed (red 88,921 + blue 80,980 -> red,blue 168,884 dresses). Closed list on purpose: the site does NOT ignore an unknown colour, it matches the items with no colour recorded (`nonsense` -> 494 rows), which would look like a real answer.
sizeoptionalxs · s · m · l · xl · xxl · 3xl · 4xl · 5xl · 6xl · 7xlLetter sizes, OR-ed (s 312,911 · s,m 656,489 dresses).
numeric_sizeoptional—Numeric sizes as the site writes them: EU clothing 32-70 and shoe sizes (38 -> 49,691 dresses). A size the category does not use returns 0 rows (`37` on dresses), it is not ignored.
conditionoptionalnew · flawOnly the two grades the site can filter on: `new` (new with tags, 146,370 dresses) and `flaw` (small defect). 'Good' is the default grade and the site IGNORES `condition=good` (returned the unfiltered total), so it is not offered.
seasonoptionalautumn-winter · spring-summerSeason. Both values INCLUDE all-season garments: spring-summer matched 1,073,824 of 1,149,515 dresses.
min_priceoptional0–Lowest price, in the STOREFRONT'S display currency (EUR, GBP on GB, PLN on PL) — the site applies it that way: `20-50` on dresses gave ES 44,876, UK 43,515 and PL 375,365.
max_priceoptional0–Highest price, in the storefront's display currency. Either bound may be used alone.
page = 1optional1–1001-based page of 48 rows (fixed by the site). The source stops at page 100 (4,800 rows): page 101, 500, 2000 and 99999 all came back EMPTY, so paging past 100 is rejected here — narrow the filters instead.
exclude_sold = falseoptional—Drop SOLD rows from the page. The site lists sold garments after the available ones (POMPOM dresses: 8 available, then 22 sold) and its headline count is mostly sold (dresses: 102,329 available of 1,149,515). Default false returns what the storefront shows, each row flagged `is_sold`, because the sold rows carry their last price.
Try in playground →
post/micolet/v1/brands1 credit

Resolve a brand name to the id `search` filters on, straight from the site's own brand autocomplete (10 rows for 'levi', 14 for 'zara' in the measured run). Brand ids are the same on every storefront.

ParameterAllowed / rangeDescription
queryrequired—Start of a brand name. The site returns its own match list, alphabetically (measured: 10 rows for 'levi' -> levi & fiona, Levi's (19), LEVIATHAN ...; 14 for 'zara').
market = ESoptionalES · FR · BE · PT · GB · IT · DE · PLWhich Micolet storefront to read. It picks the PRICE LIST, not just the language: each storefront prices the same garment differently (item 8417448: ES 9.49 · PT 9.99 · FR 9.99 · BE 10.49 · DE 10.99 · UK 10.99 EUR · IT 12.49 · PL 12.49 EUR; median markup over Spain on 12 dresses: PT +5.1%, FR +8.8%, BE +14.3%, DE/UK +18.9%, IT/PL +33.9%). The UK shows pounds and Poland zloty, converted from that storefront's euro price at one rate. Measured to depend on the storefront only, not on where the request comes from. Default ES (micolet.com).
Try in playground →
post/micolet/v1/categories2 credits

The 15 category ids `search` accepts, with their English names, the storefront's own local sub-type tags (tag ids + local labels, read live from the storefront's menu) and which departments list each category.

ParameterAllowed / rangeDescription
market = ESoptionalES · FR · BE · PT · GB · IT · DE · PLWhich Micolet storefront to read. It picks the PRICE LIST, not just the language: each storefront prices the same garment differently (item 8417448: ES 9.49 · PT 9.99 · FR 9.99 · BE 10.49 · DE 10.99 · UK 10.99 EUR · IT 12.49 · PL 12.49 EUR; median markup over Spain on 12 dresses: PT +5.1%, FR +8.8%, BE +14.3%, DE/UK +18.9%, IT/PL +33.9%). The UK shows pounds and Poland zloty, converted from that storefront's euro price at one rate. Measured to depend on the storefront only, not on where the request comes from. Default ES (micolet.com).
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.