SSENSE API

SSENSE prices, markdowns and stock per size in 235 countries, one API

The SSENSE API turns ssense.com, the Montreal retailer of luxury and streetwear, into clean JSON in five actions: search, product/detail, product/prices, suggest and designers.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a SSENSE endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
S
/ssense/v1

5 active endpoints, on 1 and 2 credit tiers.

  • POST/ssense/v1/search
  • POST/ssense/v1/product/detail
  • POST/ssense/v1/product/prices
  • POST/ssense/v1/suggest
  • POST/ssense/v1/designers

What SSENSE endpoints does ReefAPI ship?

5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

5 endpoints

search

2 cr

Search SSENSE in any shipping country by keyword, designer or category, with the site's own s…

required
optional
country, language, gender, query, sort, page, designer_id, category_id, on_sale, include_facets, include_fallback_results

product/detail

1 cr

The full SSENSE product by id or URL in a shipping country.

required
optional
country, language, product_id, url

product/prices

1 cr

Current SSENSE prices for up to 50 product ids in one call for a shipping country.

required
product_ids
optional
country

suggest

1 cr

SSENSE designer autocomplete for a partial name in one department.

required
query
optional
country, language, gender, on_sale

designers

1 cr

The SSENSE designer directory.

required
optional
country, language, gender

Every parameter, every allowed value →

SSENSE API

5 of 5 endpoints, ready to run

View docs ↗

One page of SSENSE results in a country: product id, SKU, designer, name, the price a shopper pays, the struck price + discount %, in-stock flag, category ids and image. Totals and optional facets.

2 credits0 required · 10 optional
POST/ssense/v1/search
ok1096 ms · 120 records · sample
{
  "ok": true,
  "meta": {
    "api": "ssense",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1095.9,
    "record_count": 120,
    "cache_hit": false
  },
  "data": {
    "results": [
      {
        "product_id": "18852321",
        "sku": "261545F063013",
        "url": "https://www.ssense.com/en-gb/women/product/skims/black-woven-cotton-cropped-zip-up-jacket/18852321",
        "brand": "SKIMS",
        "brand_id": "1615",
        "name": "Black Woven Cotton Cropped Zip Up Jacket",
        "gender": "women",
        "category_ids": [
          "3",
          "60",
          "67"
        ],
        "price": 53,
        "was_price": 175,
        "discount_percent": 70,
        "on_sale": true,
        "currency": "GBP",
        "in_stock": true,
        "image": "https://res.cloudinary.com/ssenseweb/image/upload/f_auto,q_auto/261545F063013_1.jpg"
      },
      {
        "product_id": "18600951",
        "sku": "261111F060001",
        "url": "https://www.ssense.com/en-gb/women/product/carhartt-work-in-progress/blue-louis-denim-jacket/18600951",
        "brand": "Carhartt Work In Progress",
        "brand_id": "1163",
        "name": "Blue Louis Denim Jacket",
        "gender": "women",
        "category_ids": [
          "3",
          "60",
          "64"
        ],
        "price": 58,
        "was_price": 170,
        "discount_percent": 66,
        "on_sale": true,
        "currency": "GBP",
        "in_stock": true,
        "image": "https://res.cloudinary.com/ssenseweb/image/upload/f_auto,q_auto/261111F060001_1.jpg"
      },
      {
        "product_id": "18590771",
        "sku": "261190F025005",
        "url": "https://www.ssense.com/en-gb/women/product/marc-jacobs/pink-the-everyday-lipstick-case-bag-charm/18590771",
        "brand": "Marc Jacobs",
        "brand_id": "194",
        "name": "Pink 'The Everyday Lipstick Case' Bag Charm",
        "gender": "women",
        "category_ids": [
          "1",
          "29"
        ],
        "price": 63,
        "was_price": 95,
        "discount_percent": 34,
        "on_sale": true,
        "currency": "GBP",
        "in_stock": true,
        "image": "https://res.cloudinary.com/ssenseweb/image/upload/f_auto,q_auto/261190F025005_1.jpg"
      }
    ],
    "count": 120,
    "total_results": 1426,
    "total_pages": 12,
    "page": 1,
    "page_size": 120,
    "has_more": true,
    "page_out_of_range": false,
    "query": "coat",
    "gender": "women",
    "on_sale": false,
    "sort": "price_asc",
    "designer_id": null,
    "category_id": null,
    "country": "gb",
    "language": "en",
    "currency": "GBP",
    "site_currency_code": "GBP",
    "keyword_matches_on_page": 1,
    "fallback_results_dropped": 0
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the SSENSE API works

SSENSE is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 252 engines.

02
Call
POST /ssense/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Find a designer's markdowns, check sizes and stock, then watch the prices

suggest gives the designer id, search narrows to that designer's sale items, product/detail shows what is left in each size, and product/prices re-checks the whole watch list in one call.

01suggest
POST/ssense/v1/suggest
{"country": "us", "query": "rick"}

Take suggestions[].designer_id for Rick Owens.

02search
POST/ssense/v1/search
{"country": "us", "designer_id": "<designer_id>", "on_sale": true, "sort": "discount_desc"}

The designer's sale items, deepest discount first, each with was_price and discount_percent. Take results[].product_id.

03detail
POST/ssense/v1/product/detail
{"country": "us", "product_id": "<results[0].product_id>"}

Every size with stock_quantity and low_stock, the GTIN, and whether the markdown is final sale.

04prices
POST/ssense/v1/product/prices
{"country": "us", "product_ids": "<up to 50 ids>"}

Re-check the whole list later in one call.

The price, the struck price, the final-sale flag and the real stock per size, kept apart and in the country's currency.

request
curl -X POST https://api.reefapi.com/ssense/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"country":"us","query":"jacket"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "ssense",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

One jacket, seven countries: a different price, a different discount base and a different duties line

SSENSE sets a price per country, often inside the same currency, and shows a duties or taxes line only in some countries. The API returns the country's price, the struck price, whether the markdown is final sale, and the line the product page shows.

HELIOT EMIL Black Vertebrae Jacketpricewas_pricefinal_saleduties line
United States (USD)4891,630 (−70 %)trueDuties calculated at checkout.
South Korea (USD)5371,790trueDuties included.
Turkey (USD, international price list)6262,085trueTaxes and duties included.
Canada (CAD)7132,160truenull (no line shown)
United Kingdom (GBP)4701,565trueTaxes and duties included.
Germany (EUR)5401,800trueTaxes and duties included.
Japan (JPY)81,500271,500trueTaxes and duties included.

Values from 2026-09-15. price is what the shopper pays; was_price is returned only when a higher struck price is shown; discount_percent uses SSENSE's own rounding. final_sale is true when the markdown cannot be exchanged or returned. duties is null where the product page shows no duties line (181 of 235 countries in the live run, Canada included).

Which countries, which price is which, and what SSENSE does not publish

235 countries and 5 languages. Measured on 2026-09-15: 540 live cases including a search and a product in every country, 15 products in 5 categories, and 6 products checked against the product page. Some of these lines go against us.

235 countries, each with its own price

One country parameter; the currency follows it (USD, EUR, GBP, CAD, JPY, AUD, HKD). 192 countries use SSENSE's international US-dollar price list, reported as USD with site_currency_code USE. The same product is priced differently per country even within one currency. Fourteen territories SSENSE does not serve return MARKET_UNAVAILABLE.

Price, struck price and final sale kept apart

price is what the shopper pays, was_price only appears when a higher regular price is shown, discount_percent follows SSENSE's rounding, and final_sale says the markdown cannot be returned. Search-row, product and batch prices matched on 15 of 15 products.

Real stock per size, with GTIN and measurements

Each size has its stock quantity, available and low_stock (4 units or fewer), its SKU and GTIN when published, and garment measurements in cm and inches. Sold-out sizes stay listed with stock 0.

No-match searches come back empty

22 of 22 real queries and 15 of 15 common keywords kept their results; 8 of 8 nonsense queries came back empty with the padding counted. A page beyond the last one returns empty with page_out_of_range.

Against us: the duties line is shown in few countries

duties carries the line the product page shows ('Duties calculated at checkout.' in the US, 'Duties included.' in South Korea, 'Taxes and duties included.' in the UK, EU and Japan). In the live run it was shown in 54 of 235 countries, Canada not among them; elsewhere duties is null.

Against us: no colour or size filter, fixed page size

Results can be narrowed by keyword, designer, category, department and sale, not by colour or size. include_facets lists the colours and sizes present. Pages hold 120 rows and the site searches one department at a time.

Against us: batch prices do not prove availability, and no reviews exist

product/prices can quote a price for a product SSENSE does not sell to that country (product/detail answered NOT_FOUND for it in Japan). Use product/detail for availability. SSENSE publishes no ratings or reviews, and typos SSENSE itself reports as no match ('snekers', 'jakcet') return empty.

What people build with SSENSE

The jobs this data is most often used for.

5

endpoints

1/2

credits per call

01

Luxury price-monitoring teams track one product's price, markdown and final-sale status across 235 countries, 50 ids per call.

02

Resellers and sourcing teams read real stock and GTIN per size to find what is about to sell out and match items across retailers.

03

Brands follow how their collection is marked down on SSENSE by country, category and discount.

04

Catalog and assortment teams pull the designer directory, categories, composition and made-in for every product.

What SSENSE data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 252 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/ssense/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"country":"us","query":"jacket"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/ssense/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "country": "us",
  "query": "jacket"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up SSENSE.

Get a free key →
Which countries and currencies does it cover?

All 235 countries SSENSE ships to. The currency follows the country: USD, EUR, GBP, CAD, JPY, AUD or HKD. 192 countries use SSENSE's international US-dollar price list; currency says USD there and site_currency_code keeps SSENSE's own code (USE). Prices differ per country even in the same currency. Fourteen territories are not served by SSENSE (among them Cuba, Iran, North Korea, Syria, Sudan, Guernsey, Jersey and the Isle of Man) and return MARKET_UNAVAILABLE.

What does the duties field mean?

It is the line the product page shows next to the price for that country: 'Duties calculated at checkout.' in the United States, 'Duties included.' in South Korea, 'Taxes and duties included.' in the United Kingdom, the EU, Japan and others. Where the page shows no such line, duties is null. In the live run of 2026-09-15 a line was shown in 54 of 235 countries.

How do sale, struck prices and final sale work?

price is the price a shopper pays. was_price is the regular price, returned only when it is higher, and discount_percent is computed the way SSENSE rounds it. price_source says whether the price is a markdown or the full price. final_sale is true when SSENSE marks the markdown as final sale, meaning it cannot be exchanged or returned. The on_sale filter returns SSENSE's sale listing, and every row in it carries a struck price.

Is the stock a real number?

Yes. product/detail returns each size's stock quantity as SSENSE publishes it (a sweatshirt had 270 units across six sizes in the live check), plus available and low_stock, which is true at 4 units or fewer, the point where the site shows 'Only X remaining'. Sold-out sizes stay listed with available false and stock 0. Search rows carry an in_stock flag, not a count.

What does a product record include beyond the price?

The SKU, designer with its id, name, the description and its detail bullets, the supplier colour, composition, made-in, gender, the category breadcrumb with ids and names, every size with size system, SKU, GTIN, stock and garment measurements in cm and inches, the model's size and measurements, the listing date and the images. SSENSE publishes no ratings or reviews, so none are returned. GTIN is empty on some sizes, and the same GTIN is sometimes published on two sizes; it is returned exactly as published.

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; SSENSE pads such pages with its whole department, and those rows are dropped and counted in fallback_results_dropped (include_fallback_results=true returns them apart). In the live check 22 of 22 real queries and 15 of 15 common keywords kept their results, and 8 of 8 nonsense queries came back empty. Typos follow SSENSE: 'balenciga', 'monlcer', 'prda' and 'jaquemus' kept their results, while 'snekers', 'jakcet' and 'hodie' are reported by SSENSE as no match and come back empty. Keyword search follows the language parameter: search 'robe' with language=fr or 'コート' with language=ja. A page past the last one returns empty with page_out_of_range true.

When should I use product/prices instead of product/detail?

product/prices is the cheap way to watch prices: up to 50 ids per call for one country, with price, struck price, discount, final sale and currency per id, and unknown ids listed in not_found. It does not confirm that a product is sold in that country: a product that SSENSE does not sell to Japan still received a yen price, while product/detail answered NOT_FOUND there. Use product/detail for availability, sizes and stock.

What is the SSENSE API?

SSENSE API is a ReefAPI endpoint group for luxury and streetwear from ssense in 235 countries: local prices, final-sale flags, real stock per size and gtins as json. It returns live JSON through POST requests under /ssense/v1.

Is the SSENSE API free to try?

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

Do I need a SSENSE login or account?

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

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

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

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

Is the SSENSE API a SSENSE scraper?

It is the managed alternative to a DIY SSENSE 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 and streetwear from ssense in 235 countries: local prices, final-sale flags, real stock per size and gtins as json back as clean JSON.

91 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling SSENSE, you are one call away from the rest of the category — no second contract, no second integration.

Already paying for something else?SSENSE vs ZenRowsSSENSE vs ApifySSENSE vs Oxylabs

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.