# Supreme API Scraper (`rl1987/supreme-api-scraper`) Actor

Scrape the Supreme (supreme.com) catalogue via the mobile app's own content API — categories, full product detail, every colour/size variant with stock, all images, price/sale, and drop/season. Human-friendly location & category inputs.

- **URL**: https://apify.com/rl1987/supreme-api-scraper.md
- **Developed by:** [R.L.](https://apify.com/rl1987) (community)
- **Categories:** E-commerce
- **Features:** Limited permissions
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.39 / 1,000 product rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Supreme Scraper — Scrape supreme.com Products, Prices, Colours, Sizes, Stock & Images

**Supreme Scraper** — Scrape the Supreme (supreme.com) catalogue via the mobile app's own content API — categories, full product detail, every colour/size variant with stock, all images, price/sale, and drop/season. Human-friendly location & category inputs. It reads Supreme's own API directly, so it's **fast, reliable and complete** — no flaky HTML parsing, no headless browser. Export to **JSON, CSV, Excel, or an API**.

> Scrape the full Supreme catalogue — every product, colourway, size, stock status, price and image — via the Supreme mobile app's own content API. Browse by category or dump the whole shop, from a human location.

***

### Why use this Supreme Scraper?

- Talks to the same content API the Supreme mobile app uses — no browser, no CAPTCHA solving, fast and reliable.
- Human-friendly inputs: pick a category from a named dropdown and type a location (e.g. "New York", "Tokyo") — no internal IDs.
- Maximum field coverage: full product detail, every colour/size variant with live stock, all images, price/sale and drop/season.
- Low memory footprint (HTTP-only) and pay-per-event pricing.

***

### What can you do with Supreme data?

- Track drops and restocks across categories week to week.
- Build a price/stock monitor for specific styles, colours or sizes.
- Populate a product catalogue or resale-market dataset with full media and variants.
- Analyse assortment by category, colour, season or availability.

***

### What data does the Supreme Scraper extract?

Each row includes: `id`, `title`, `handle`, `url`, `product_type`, `color`, `style`, `season`, `price`, `price_formatted`, `currency`, `sale`, `is_new`, `available` …and more. See the full **Data table** below.

***

### How to scrape supreme.com (3 steps)

1. **Set your input** — provide `location` or `region` (see the table below; defaults work out of the box).
2. **Pick options** — filters, a `proxyConfiguration`, and a `maxItems` cap.
3. **Run & export** — click **Start**, then download the dataset as JSON/CSV/Excel or fetch it via the API.

***

### Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `location` | string | `New York` | Human-friendly location (e.g. 'New York', 'Tokyo', 'London', 'Germany'). Resolved to a Supreme region via the app's own mobile geolocate endpoint — no third-party geocoder. |
| `region` | enum | – | Force a Supreme regional store. Overrides Location. Leave empty to derive from Location / IP. — one of \`\`, `us`, `eu`, `uk`, `jp`, `kr`, `cn`, `int` |
| `maxItems` | integer | `0` | Maximum number of products to output. 0 = all. |
| `category` | enum | – | Browse a single Supreme category. Leave empty to scrape the whole catalogue. — one of `new`, `sale`, `jackets`, `shirts`, `tops-sweaters`, `sweatshirts`, `pants`, `shorts`, `t-shirts`, `hats`, `bags`, `accessories`, `shoes`, `skate`, `all` |
| `proxyConfiguration` | object | Apify Proxy | Route requests through a proxy (Apify Proxy by default). |

> **Match proxy country to store region.** Supreme localises catalogue/prices by IP. Set `apifyProxyCountry` (or a country-scoped proxy group) to the same country as your `region`/`location` — e.g. `region: "uk"` needs a UK proxy exit, `region: "jp"` needs Japan. Mismatched proxy country and region returns the wrong store's catalogue.

#### Example input

```jsonc
{
  "location": "New York",
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

***

### Output

Each result is a JSON object like this:

```jsonc
{
  "id": 7703571136716,
  "title": "Harrington Jacket",
  "handle": "haysbz-3ig54_zty",
  "url": "https://us.supreme.com/products/haysbz-3ig54_zty",
  "product_type": "jackets",
  "color": "Snow Camo",
  "style": "J103",
  "season": "Spring/Summer 2026",
  "price": 23800,
  "price_formatted": "€238.00",
  "currency": "EUR",
  "sale": false,
  "is_new": false,
  "available": true,
  "description": "All cotton chino twill with cotton lining and taffeta sleeve lining. Full zip closure with welt hand pockets at lower front and interior chest pocket. Elasti…",
  "product_order_limit": 1,
  "style_order_limit": 2,
  "options": [
    "Size"
  ],
  "sizes": [
    {
      "size": "Small",
      "sku": "SS26J103-CMO-S",
      "available": true,
      "price": 23800,
      "compare_at_price": null,
      "variant_id": 42727124926668,
      "barcode": "0199310147694",
      "inventory_management": "shopify"
    },
    {
      "size": "Medium",
      "sku": "SS26J103-CMO-M",
      "available": true,
      "price": 23800,
      "compare_at_price": null,
      "variant_id": 42727124205772,
      "barcode": "0199310147687",
      "inventory_management": "shopify"
    },
    "…+3 more"
  ],
  "variants": [
    {
      "…": "21 fields"
    },
    {
      "…": "21 fields"
    },
    "…+3 more"
  ],
  "images": [
    "https://eu.supreme.com/cdn/shop/files/J103_SS26_HarringtonJacket_SnowCamo01.jpg?v=1778532208",
    "https://eu.supreme.com/cdn/shop/files/J103_SS26_HarringtonJacket_SnowCamo04.jpg?v=1778532208",
    "…+2 more"
  ],
  "cover_image": "https://eu.supreme.com/cdn/shop/files/J103_SS26_HarringtonJacket_SnowCamo01.jpg?v=1778532208",
  "region": "us",
  "host": "us.supreme.com",
  "webStore": 202,
  "market": "8c7fa7ec-5ee7-440c-9cce-70762dcc7f8f"
}
```

***

### Data table

| Field | Type | Description |
| --- | --- | --- |
| `id` | number | Product ID |
| `title` | text | Name |
| `handle` | text | Handle |
| `url` | link | Product URL |
| `product_type` | text | Category |
| `color` | text | Colour |
| `style` | text | Style code |
| `season` | text | Drop/Season |
| `price` | number | Price (minor units) |
| `price_formatted` | text | Price |
| `currency` | text | Currency |
| `sale` | text | On sale |
| `is_new` | text | New |
| `available` | text | Available |
| `description` | text | Description |
| `product_order_limit` | number | Order limit |
| `style_order_limit` | number | Style order limit |
| `options` | array | Options |
| `sizes` | array | Sizes & stock |
| `variants` | array | Variants (raw) |
| `images` | array | Images |
| `cover_image` | link | Cover image |
| `region` | text | Region |
| `host` | text | Host |
| `webStore` | number | Web store id |
| `market` | text | Market |
| `raw` | object | Raw product |

***

### How much does it cost?

The current price of every event is on the **Pricing** tab of this Actor's page in Apify Store. That tab is generated from the Actor's own pricing record, so it is always current, and your plan's rung is applied automatically. A figure repeated here would be a second copy that drifts out of date.

You can cap what any single run may spend with **Max total charge**.

### Use the Supreme Scraper via API

Run it programmatically with the [Apify API](https://docs.apify.com/api/v2):

```bash
curl -X POST "https://api.apify.com/v2/acts/supreme-api-scraper/runs?token=YOUR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "location": "New York",
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}'
```

Or with the Apify CLI: `apify call supreme-api-scraper -i input.json -o`.

***

### FAQ

**Does it need login or an API key?**

No. The Supreme catalogue routes require no authentication. The region-resolver uses the app's own bundled geolocate key automatically.

**How do I get products for a specific region?**

Type a location (e.g. "London") or set the advanced Region field. Supreme localises its catalogue by IP, so for region-accurate prices/handles run the actor through a proxy in that country (set proxyConfiguration to that country).

**Can I scrape a single category?**

Yes — choose one from the Category dropdown (Jackets, Hats, Shoes, New, Sale, …). Leave it empty to scrape the whole catalogue.

**What does each record contain?**

Full product detail: id, name, category, colour, style, price (+ formatted), sale/new flags, availability, description, every size variant with SKU and stock, all image URLs, drop/season, plus the complete raw object.

***

### How it works

The actor impersonates Supreme's official app/site and calls its private API the same way the app does, then normalises each response into the flat record above. No browser, no HTML scraping — just clean, structured data.

***

### Good to know

- Scrape only public streetwear product data and respect supreme.com's Terms of Service and robots policy.
- For personal data, comply with GDPR/CCPA and applicable law — you are the data controller.
- Fields can be `null` when Supreme doesn't expose them for a given record.

***

### Sneaker & streetwear resale toolkit

Part of the **Sneaker & streetwear resale toolkit** — resale-market pricing and product data across the major sneaker/streetwear marketplaces and brands:

- [StockX API Scraper](https://apify.com/rl1987/stockx-api-scraper) — Product listings, market data, and pricing from StockX.
- [GOAT API Scraper](https://apify.com/rl1987/goat-api-scraper) — Scrapes GOAT.com product listings by search query or category.
- [Nike API Scraper](https://apify.com/rl1987/nike-api-scraper) — Scrape Nike.com listings and full product detail from api.nike.com.
- [Puma API Scraper](https://apify.com/rl1987/puma-api-scraper) — Scrapes PUMA.com product listing and detail via mobile app GraphQL API.

### Found this useful?

Give the **Supreme Scraper** a star on Apify and check out my other `apify-*-api-scraper` actors.

# Actor input Schema

## `location` (type: `string`):

Human-friendly location (e.g. 'New York', 'Tokyo', 'London', 'Germany'). Resolved to a Supreme region via the app's own mobile geolocate endpoint — no third-party geocoder.

## `region` (type: `string`):

Which regional Supreme store to read. Leave blank to use whichever store Supreme serves your proxy exit. IMPORTANT: Supreme routes by exit IP, so a region only works when the proxy exit is in a matching country - set proxyConfiguration.apifyProxyCountry accordingly (verified 2026-10-06: eu needs DE, uk needs GB, jp needs JP, us needs US). Mismatched runs stop with a message rather than quietly returning another store's catalogue. Each store has its own currency and inventory (jp carried 249 products where us carried 210).

## `maxItems` (type: `integer`):

Maximum number of products to output. 0 = all.

## `category` (type: `string`):

Browse a single Supreme category. Leave empty to scrape the whole catalogue. Supreme's catalogue rotates with every drop, so a valid category can be empty this week - 't-shirts' and 'shoes' held nothing on 2026-10-06. An empty category now returns no rows and says so, rather than returning the whole catalogue.

## `proxyConfiguration` (type: `object`):

Route requests through a proxy (Apify Proxy by default).

## Actor input object example

```json
{
  "location": "New York",
  "region": "",
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "location": "New York",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rl1987/supreme-api-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "location": "New York",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("rl1987/supreme-api-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "location": "New York",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call rl1987/supreme-api-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rl1987/supreme-api-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6ubn3dLKMPIYljBwQ/builds/immMexed5pSG1bEyK/openapi.json
