# ASOS Search API

> Get ASOS keyword search results as JSON for the German, US and UK storefronts: product IDs, brand, colour, price, availability, sponsored flag and paging.

- URL: https://everydata.io/asos-search-api
- Updated: 2026-09-20
- Publisher: everydata.io (https://everydata.io)

ASOS lists tens of thousands of products for a broad term – 5,762 for "sneaker" on the German storefront alone – and ranks them by relevancy, freshness or price. The everydata.io ASOS Search API executes that search on the storefront you specify with domainCode (de, us or co.uk) and returns the result grid as JSON: product IDs, brand, title, colour, current and original price in the local currency, availability and whether a tile is a paid placement. Paging follows ASOS's own grid of 72 tiles per page.

## Key facts

- Platform: [ASOS API](https://everydata.io/apis/asos) (live)
- Main endpoint: `GET /aso/search-by-keyword`
- Quota: A call to the ASOS API counts as 1 request against the monthly quota.
- Pricing: 100 free requests a month; paid plans from €30 a month for 5,000 requests (€1.00–€6.00 per 1,000 requests). One quota is shared across all 35 platforms; failed requests (5xx, blocked pages) are not counted.

## What you get

Each element of searchProductDetails corresponds to one tile: productDescription is ASOS's tile title ("adidas Originals – Handball Spezial – Sneaker in Braun und Weiß"), manufacturer the brand, productId the product and variationId the colourway shown, colour its name in the storefront language, price and retailPrice in the storefront currency, available whether it can be bought and sponsored whether it is promoted. dpUrl links to the product page including the colourWayId anchor, and imgUrl to the tile image.

The envelope gives you the storefront (domainCode), sortStrategy, resultCount for the total number of matches, numberOfProducts for this page and currentPage / nextPage / lastPage for iteration. Because ASOS prices differ per storefront, the same keyword on de, us and co.uk gives you three independent, locally priced result sets.

- Storefront selection with domainCode de, us or co.uk – prices in EUR, USD or GBP
- sortBy relevancy (default), freshness, price-asc or price-desc
- Per tile: productId, variationId, manufacturer, productDescription, colour
- price, retailPrice, currency and available for markdown and stock scans
- sponsored flag and detail URL with colourWayId for follow-up lookups
- resultCount, numberOfProducts, currentPage, nextPage, lastPage
- withCache for research crawls that can reuse a recently fetched page

## How it works

Call GET /aso/search-by-keyword with keyword, domainCode and page. Both keyword and domainCode are required – there is no default storefront – and sortBy is optional.

```bash
curl -s "https://api.everydata.io/aso/search-by-keyword?keyword=sneaker&domainCode=de&page=1&sortBy=relevancy" \
  -H "x-api-key: YOUR_API_KEY"
```

Response (shortened):

```json
{
  "responseStatus": "PRODUCT_FOUND_RESPONSE",
  "responseMessage": "Product successfully found!",
  "sortStrategy": "relevancy",
  "domainCode": "de",
  "keyword": "sneaker",
  "numberOfProducts": 72,
  "resultCount": 5762,
  "currentPage": 1,
  "nextPage": 2,
  "lastPage": 81,
  "searchProductDetails": [
    {
      "productDescription": "New Balance – 530 – Unisex-Sneaker in Wollweiß und Beige",
      "manufacturer": "New Balance",
      "productId": "204936689",
      "variationId": "204936690",
      "imgUrl": "https://images.asos-media.com/products/new-balance-530-unisex-sneaker-in-wollwei-und-beige/204936689-1-offwhite",
      "price": 120,
      "retailPrice": 120,
      "dpUrl": "https://www.asos.com/de/new-balance/new-balance-530-unisex-sneaker-in-wollwei-und-beige/prd/204936689#colourWayId-204936690",
      "sponsored": false,
      "available": true,
      "colour": "Gebrochenes Weiß",
      "currency": "EUR"
    }
  ]
}
```

Loop over page until you hit lastPage (81 for this example, i.e. about 5,800 tiles). ASOS's relevancy order is fairly stable within a day, which makes position tracking feasible; sortBy=freshness surfaces the newest drops first and sortBy=price-asc is the quickest way to map the entry price for a keyword.

The tile carries the colourway's price and stock but not the size grid. To see which sizes are available or to read the About Me block, call /aso/lookup-product-details with dpUrl – the colourWayId anchor is preserved so you land on the same colourway.

Use the same keyword against domainCode=us and domainCode=co.uk to compare ASOS's storefront pricing. Titles and colour names come back in the storefront language, so match across countries on productId rather than on text.

## What teams build with this

### Storefront price comparison

Run the same keyword across de, us and co.uk and join on productId to see how ASOS prices a style in EUR, USD and GBP and where it is on sale first.

### Drop and new-in monitoring

sortBy=freshness every morning tells you what ASOS and its partner brands launched overnight in a category you compete in.

### Search-rank tracking for brands

Record the position of your products for high-volume terms and how many sponsored tiles appear on page 1 of each storefront.

### Trend and colour analysis

Aggregate the colour field and tile titles across pages to quantify which colours and silhouettes dominate a keyword this season.

## Pricing

Each result page on each storefront is one request. Tracking 50 keywords five pages deep on all three storefronts is 750 requests per run – daily, that fits comfortably in the Production plan (50,000 requests, €80). withCache=true lets exploratory crawls reuse recently fetched pages so realtime calls are reserved for the rank-tracking run.

## FAQ

### Which storefronts can I search?

domainCode accepts de, us and co.uk – the German, US and UK storefronts. It is a required parameter; the response echoes it together with the local currency.

### How many results are on a page?

ASOS's grid returns 72 tiles per page, reported in numberOfProducts. resultCount is the total number of matches and lastPage tells you how many pages exist.

### Can I sort by price or newest?

Yes. sortBy accepts relevancy (default), freshness for newest first, price-asc and price-desc.

### Does the search return sizes?

No, tiles carry the colourway, price and availability. Call the product-details endpoint with the tile's dpUrl to get every size with its stock flag.

### Are sponsored tiles marked?

Yes, each tile has a sponsored boolean so you can exclude paid placements from organic rank analysis.

## Related use cases

- [ASOS Product Data API](https://everydata.io/asos-product-data-api)
- [ASOS Price Monitoring API](https://everydata.io/asos-price-monitoring-api)
- [Zalando Search API](https://everydata.io/zalando-search-api)

## More

- [All platforms](https://everydata.io/apis) · [Pricing](https://everydata.io/pricing) · [API reference](https://everydata.io/docs) · [Getting started](https://everydata.io/docs/getting-started) · [MCP server](https://everydata.io/docs/mcp) · [Status](https://everydata.io/status)
- Machine-readable: [llms.txt](https://everydata.io/llms.txt), [llms-full.txt](https://everydata.io/llms-full.txt), [OpenAPI](https://api.everydata.io/openapi.json)
