# ASOS Scraper API — $0.001 per product

> ASOS Scraper API: Product search on ASOS — name, brand, price, was-price, colour. $0.001 per delivered product, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*ASOS Scraper API*

# ASOS Scraper API

An ASOS scraper API that searches ASOS and returns one row per product: name, brand, colour, the current price and the struck-through was-price in USD, discount percent, product URL, image and both ASOS ids. Read from the search JSON the ASOS listing page calls for itself — never a browser, never a paid placement.

By [Aldo Morese](https://quanticdata.io/about/), founder of QuanticData · Published Aug 21, 2026 · Updated Sep 3, 2026

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/asos-scraper-api/#integration)

$0.001 per delivered product · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/asos_search/run

```
$ curl $QD/asos_search/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"query": "dress", "max_results": 24}'
{ "status": "done", "count": 24,
  "results": [
    {
      "product_id": "…",
      "product_code": "…",
      "name": "…",
      "brand": "…" } ],
  "cost": 0.024 }
# 24 products × $0.001 · nothing delivered, nothing charged
```

You send query and max_results; the run goes out through a residential exit and comes back as products with rank, product_id and product_code — 20 fields on every row — and you are billed $0.001 for each product actually delivered, nothing for a run that delivers none.

**$0.001 / product**2,000 products on the free $2 every month

**Semantic input**query, max_results — no URL lists

**Up to 300**products per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [Try it](/collectors/asos-scraper-api/#try) [What it is](/collectors/asos-scraper-api/#what) [Limits](/collectors/asos-scraper-api/#caps) [Output fields](/collectors/asos-scraper-api/#output) [Inputs](/collectors/asos-scraper-api/#input) [Pricing](/collectors/asos-scraper-api/#pricing) [Integration](/collectors/asos-scraper-api/#integration) [Use cases](/collectors/asos-scraper-api/#use-cases) [Versus the alternatives](/collectors/asos-scraper-api/#compare) [FAQ](/collectors/asos-scraper-api/#faq)

Try it

## ASOS search, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

[Get my free API key](https://app.quanticdata.io/register)

## What an ASOS scraper API does

The rendered ASOS listing page was measured against the site’s own search endpoint and lost on three counts, each of which would have put wrong values in customer rows. Currency first: the page answers a US residential exit in pounds, because the store is chosen by cookie rather than by IP, so a DOM parser ships GBP numbers labelled USD. The endpoint takes the store and currency as parameters, so prices here are USD by construction. Images next: only 4 of 72 tiles on a first page carry an image URL at all; the rest are lazy placeholders with nothing in the markup. The JSON states an image for every row.

Adverts last: the tile list mixes advert containers in among products as siblings. The endpoint’s product array contains none — ASOS keeps placements in a separate campaigns object — so there is nothing to filter and nothing to misalign. The DOM is not a fallback either: its class hooks are hashed build artefacts that change on any deploy. The endpoint has its own quirks (a relative URL with no leading slash, for one), all pinned by tests.

Input is meaning, not a URL *query* *max_results*

## Limits, in plain numbers

Everything that bounds one run of this collector. No hidden throttles.

Max per run

300 products

Price

$0.001 / product

Per 1,000

$1.00

Failed runs

Free zero rows, zero charge

Free every month

$2 no card

Rate limit

60 req/min on the free tier

## What one product looks like

Every delivered product carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `rank` | integer | 1-based position in ASOS's ordering for this response. |
| `product_id` | string | ASOS product id — the id that keys the /prd/ page. |
| `product_code` | string · nullable | ASOS internal product code (does not key the URL). |
| `name` | string | Product name. |
| `brand` | string · nullable | Brand name. |
| `colour` | string · nullable | Colourway as ASOS states it — its own casing is inconsistent ("PINK", "Chocolate"). |
| `colour_way_id` | string · nullable | ASOS colourway id (the #colourWayId fragment on the URL). |
| `price` | number · nullable | Current price (USD). |
| `price_text` | string · nullable | Current price as ASOS formats it ("$52.00"). |
| `original_price` | number · nullable | Struck-through was-price (USD); null when not reduced. |
| `rrp` | number · nullable | Recommended retail price (USD) when ASOS states one. |
| `currency` | string | Currency ASOS priced the row in — USD, from the US store the request pins. A run that comes back in anything else says so in the notes. |
| `discount_pct` | integer · nullable | Percent off the was-price; null unless both prices are stated. |
| `is_marked_down` | boolean | ASOS's own markdown flag. |
| `is_outlet` | boolean | Outlet pricing. |
| `is_selling_fast` | boolean | ASOS's low-stock badge. |
| `is_new` | boolean | ASOS's "New in" flag. |
| `is_sponsored` | boolean | Paid placement (ASOS keeps these out of the product list; false on every organic row). |
| `url` | string · nullable | Product URL. |
| `image` | string · nullable | Primary product image. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `query` | string | yes | What to search, e.g. "dress". |
| `max_results` | integer | no | How many products to deliver at most (1–300). You pay only for delivered products. |

Pricing

## ASOS Scraper API pricing

$0.001 per delivered product. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 products before you spend anything.

**$0.001**per delivered product*$1 per 1,000 delivered products*

**2,000 products**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/asos_search/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/asos_search/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"dress","max_results":24}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/asos_search/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "query": "dress",
        "max_results": 24
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/asos_search/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"query":"dress","max_results":24}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quanticdata \
  -e QUANTICDATA_API_KEY=qd_live_your_key_here \
  -- npx -y quanticdata-mcp

# then, in the chat:
> run the asos_search collector with query="dress" and max_results=24
```

## What people build with the ASOS scraper API

Three shapes of work this endpoint was designed around.

### Fashion price monitoring

Current price, was-price and discount percent per product in one currency, re-run daily to catch markdowns by brand.

### Assortment analysis

Brand, colour and product type across a query — how deep a category is, who is discounting, what is new or selling fast.

### Catalogue matching

Both ASOS ids and the colour-way id on every row, so the same product is tracked across colours and days.

## ASOS Scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Currency | GBP from the page, whatever your exit | USD by parameter, from the US store |
| Images | 4 of 72 tiles carry a URL | Every row |
| Paid placements | Adverts as sibling tiles | None in the product array |
| Stability | Hashed class names that churn on deploy | A JSON endpoint the page itself relies on |

The same call you would paste into a terminal: a Bearer key, query in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many products arrived and usage.cost_usd is $0.024, which is 24 × $0.001. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

## Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

- [Schema.org: the Product type](https://schema.org/Product)

- [IETF: RFC 9309, Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309.html)

- [Google Search Central: product structured data](https://developers.google.com/search/docs/appearance/structured-data/product)

## FAQ

Questions we get about the ASOS scraper API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Which storefront and currency?

The ASOS US store in USD, fixed by parameter. The rendered site chooses a store by cookie, which is why a scraper can quietly deliver pounds; here the currency is stated on every row.

### Are sponsored products included?

No. ASOS keeps paid placements out of the product list and in a separate object, so the rows are the organic results only. `is_sponsored` stays on the row shape for completeness.

### Does it need an ASOS API key?

No. The search endpoint is the one the listing page calls for itself and it takes no key, token or cookie — only the query.

### Can I search by category rather than keyword?

This collector is keyword search. Category browsing is a different surface; a broad keyword such as “dress” or “trainers” reaches most of a category.

### Is there a free ASOS scraper API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered products on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 300 products — the maximum for this collector — costs $0.3 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the ASOS scraper API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 100 collectors](https://quanticdata.io/collectors/) [Zalando Scraper API](https://quanticdata.io/collectors/zalando-scraper-api/) [Nike Scraper API](https://quanticdata.io/collectors/nike-scraper-api/) [AliExpress scraper API](https://quanticdata.io/collectors/aliexpress-scraper-api/) [Competitor price monitoring](https://quanticdata.io/competitor-price-monitoring/) [Documentation](https://quanticdata.io/docs/)

## Also on this site

Quantic**Data**

Residential proxies & web data APIs for AI.

#### Proxies

- [Residential Basic](https://quanticdata.io/residential-proxies/#basic)

- [Residential Premium](https://quanticdata.io/residential-proxies/#plans)

- [Cheap Residential](https://quanticdata.io/cheap-residential-proxies/)

- [Mobile Proxies](https://quanticdata.io/mobile-proxies/)

- [Datacenter Proxies](https://quanticdata.io/datacenter-proxies/)

- [ISP Proxies](https://quanticdata.io/isp-proxies/)

- [Rotating Proxies](https://quanticdata.io/rotating-proxies/)

- [Sneaker Proxies](https://quanticdata.io/sneaker-proxies/)

- [SOCKS5 Proxies](https://quanticdata.io/socks5-proxies/)

- [IPv6 Proxies](https://quanticdata.io/ipv6-proxies/)

- [Proxy locations](https://quanticdata.io/proxies/)

#### Data APIs

- [MCP Server](https://quanticdata.io/mcp-server/)

- [Web Scraper API](https://quanticdata.io/web-scraping-api/)

- [SERP API](https://quanticdata.io/serp-api/)

- [Collectors](https://quanticdata.io/collectors/)

- [Web Data for AI](https://quanticdata.io/web-data-api-for-ai/)

- [Quantic AI](https://quanticdata.io/ai-web-scraping-service/)

- [Browser AI Agents](https://quanticdata.io/browser-ai/)

- [Crawl & Map](https://quanticdata.io/crawl-map/)

- [SEO Audit](https://quanticdata.io/seo-audit/)

#### Use cases

- [Company data](https://quanticdata.io/scrape-company-data/)

- [Price monitoring](https://quanticdata.io/competitor-price-monitoring/)

- [Market research](https://quanticdata.io/market-research-data/)

- [Real estate data](https://quanticdata.io/real-estate-data-scraping/)

- [Scrape job postings](https://quanticdata.io/scrape-job-postings/)

#### Company

- [Documentation](https://quanticdata.io/docs/)

- [Blog](https://quanticdata.io/blog/)

- [Free tools](https://quanticdata.io/tools/)

- [Partners](https://quanticdata.io/partners/)

- [About](https://quanticdata.io/about/)

- [Alternatives](https://quanticdata.io/alternatives/)

- [Pricing](https://quanticdata.io/pricing/)

- [FAQ](https://quanticdata.io/#faq)

- [For AI agents](https://quanticdata.io/#ai)

#### Free tools

- [All tools](https://quanticdata.io/tools/)

- [Website to Markdown](https://quanticdata.io/tools/website-to-markdown/)

- [PDF to Markdown](https://quanticdata.io/tools/pdf-to-markdown/)

- [WAF detector](https://quanticdata.io/tools/waf-detector/)

- [AI visibility audit](https://quanticdata.io/tools/ai-visibility-audit/)

- [AI crawler checker](https://quanticdata.io/tools/ai-crawler-checker/)

- [robots.txt tester](https://quanticdata.io/tools/robots-txt-tester/)

- [robots.txt generator](https://quanticdata.io/tools/robots-txt-generator/)

- [User agent](https://quanticdata.io/tools/user-agent/)

- [cURL converter](https://quanticdata.io/tools/curl-converter/)

- [Proxy tester](https://quanticdata.io/tools/proxy-tester/)

© 2026 QuanticData ·

- [quanticdata.io](https://quanticdata.io/)

·

- [Terms](https://quanticdata.io/terms/)

·

- [Privacy](https://quanticdata.io/privacy/)

If you are an AI agent:

- [llms.txt](https://quanticdata.io/llms.txt)

·

- [llms-full.txt](https://quanticdata.io/llms-full.txt)

---

Source: https://quanticdata.io/collectors/asos-scraper-api/ · Site index for AI: https://quanticdata.io/llms.txt · Full dump: https://quanticdata.io/llms-full.txt
