Namshi
Namshi
/namshi/v1/search1 creditSearch one namshi storefront by keyword and get the matching products: namshi product id, title, brand, images, the price the shopper actually pays together with the struck-through price and the discount percentage, the market and currency the price is quoted in, rating and review count where namshi publishes them, and the express / global / outlet flags. Filter by brand, colour, price band, discounted-only, new arrivals and delivery programme; sort by namshi's ranking, price, discount or newest. The response also carries namshi's whole facet catalogue with counts, so the next call can be narrowed without guessing codes.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | What to search for on namshi.com — a product, a brand, a category or a description, in English or Arabic, e.g. 'red summer dress', 'nike air force', 'abaya'. namshi matches loosely, so a keyword it does not know still returns its nearest matches rather than nothing. |
| country = ae | optional | ae · sa · kw · bh · om · qa | Which namshi storefront to read. Each one is a separate market with its OWN catalogue, availability and currency — a price is only meaningful together with the market it came from, and every row returns both. All six were measured open. |
| language = en | optional | en · ar | Language of the titles, descriptions, categories and filter names namshi returns. |
| page = 1 | optional | 1–400 | Result page. namshi returns 60 products per page; `total_pages` in the response says how many there are. |
| sort = recommended | optional | recommended · price_asc · price_desc · discount · newest | How namshi orders the results. Anything outside this list is refused, because namshi answers an unrecognised sort by dropping the search and returning its whole catalogue. |
| brand | optional | — | Keep only one brand, given as namshi's brand code — lowercase with underscores, as it appears in `brand_code` on every result row and in the `brand_code` entry of `filters` (e.g. 'nike', 'tommy_hilfiger', 'h_m'). |
| colour | optional | — | Keep only one colour family, given as namshi's colour code. The codes available for the current result set, with counts, are returned under `filters` → `colour_family` (e.g. 'red', 'black', 'multicolour'). |
| price_min | optional | 0– | Lowest price to keep, IN THE CURRENCY OF THE CHOSEN MARKET (AED for ae, SAR for sa, KWD for kw, BHD for bh, OMR for om, QAR for qa). The band namshi itself offers for the current result set is in `filters` → `current_price` → `range`. |
| price_max | optional | 0– | Highest price to keep, in the currency of the chosen market. Must not be below `price_min`. |
| discounted_only = false | optional | — | Keep only products namshi currently shows at a reduced price (those with a struck-through `price_before_discount`). |
| new_arrivals_only = false | optional | — | Keep only the products namshi flags as new arrivals. |
| delivery_type | optional | standard · global | Keep only products in one of namshi's delivery programmes. |
/namshi/v1/category/products1 creditList one namshi category by its path — the same product rows, filters, sorts and paging as `search`, plus the category breadcrumb. Use it to walk a department (women's dresses, men's shoes, kids' clothing) rather than a keyword.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| category | required | — | The namshi category to list, as its path or as a full category URL. Take it from `breadcrumbs[].path` or from `filters` → `category` on any result, e.g. 'women-clothing-dresses', 'men-shoes', 'women/women-clothing/women-clothing-dresses/women-clothing-dresses-midi'. |
| country = ae | optional | ae · sa · kw · bh · om · qa | Which namshi storefront to read. Each one is a separate market with its OWN catalogue, availability and currency — a price is only meaningful together with the market it came from, and every row returns both. All six were measured open. |
| language = en | optional | en · ar | Language of the titles, descriptions, categories and filter names namshi returns. |
| page = 1 | optional | 1–400 | Result page. namshi returns 60 products per page; `total_pages` in the response says how many there are. |
| sort = recommended | optional | recommended · price_asc · price_desc · discount · newest | How namshi orders the results. Anything outside this list is refused, because namshi answers an unrecognised sort by dropping the search and returning its whole catalogue. |
| brand | optional | — | Keep only one brand, given as namshi's brand code — lowercase with underscores, as it appears in `brand_code` on every result row and in the `brand_code` entry of `filters` (e.g. 'nike', 'tommy_hilfiger', 'h_m'). |
| colour | optional | — | Keep only one colour family, given as namshi's colour code. The codes available for the current result set, with counts, are returned under `filters` → `colour_family` (e.g. 'red', 'black', 'multicolour'). |
| price_min | optional | 0– | Lowest price to keep, IN THE CURRENCY OF THE CHOSEN MARKET (AED for ae, SAR for sa, KWD for kw, BHD for bh, OMR for om, QAR for qa). The band namshi itself offers for the current result set is in `filters` → `current_price` → `range`. |
| price_max | optional | 0– | Highest price to keep, in the currency of the chosen market. Must not be below `price_min`. |
| discounted_only = false | optional | — | Keep only products namshi currently shows at a reduced price (those with a struck-through `price_before_discount`). |
| new_arrivals_only = false | optional | — | Keep only the products namshi flags as new arrivals. |
| delivery_type | optional | standard · global | Keep only products in one of namshi's delivery programmes. |
/namshi/v1/product/detail1 creditThe full namshi product record for one product in one market: title, brand and brand logo, description, the whole image gallery, the price paid with the struck-through price and discount, the market and currency, availability, rating and review count where namshi publishes them, the attribute table, the category breadcrumb, the returns and exchange policy flags, and every size variant with its own stock state and its own price.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| product_id | required | — | Which product to read: the code before /p/ in a namshi product URL (…/Z39B32B8C27F319D6E18FZ/p/ → Z39B32B8C27F319D6E18FZ), or the full product URL itself. Every `search` and `category/products` row returns it as `product_id`; a size-specific code such as …FZ-2 is accepted and resolves to its parent product. |
| country = ae | optional | ae · sa · kw · bh · om · qa | Which namshi storefront to read. Each one is a separate market with its OWN catalogue, availability and currency — a price is only meaningful together with the market it came from, and every row returns both. All six were measured open. |
| language = en | optional | en · ar | Language of the titles, descriptions, categories and filter names namshi returns. |
curl -X POST https://api.reefapi.com/namshi/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"red summer dress","country":"ae"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}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.
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.
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.
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.