# Sharaf DG API — UAE, Bahrain and Oman electronics prices, discounts, sellers, store stock, specifications and reviews

> Search the Sharaf DG catalogue (UAE, Bahrain or Oman) by keyword and/or category or brand, with price range, in-stock, store, seller and on-sale filters and three sorts. Each row: sku, product id, model number, title, brand, URL, image, price, price before discount, discount, in-stock flag, number of stores with stock, seller (Sharaf DG or a marketplace seller), offer count, shipping fee, rating, review count, category path, tags, key specs. Plus the source's own total and whether that total is exact. Either `query`, `category` or `brand` is required.
> ReefAPI engine `sharafdg` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/sharafdg/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/sharafdg/v1/search — 2 credits
Search the Sharaf DG catalogue (UAE, Bahrain or Oman) by keyword and/or category or brand, with price range, in-stock, store, seller and on-sale filters and three sorts. Each row: sku, product id, model number, title, brand, URL, image, price, price before discount, discount, in-stock flag, number of stores with stock, seller (Sharaf DG or a marketplace seller), offer count, shipping fee, rating, review count, category path, tags, key specs. Plus the source's own total and whether that total is exact. Either `query`, `category` or `brand` is required.

**Parameters:**
- `country` (enum, optional, default "ae") — Which store: ae (UAE, prices in AED), bh (Bahrain, BHD, 3 decimals), om (Oman, OMR, 3 decimals). [one of: ae, bh, om]
- `query` (string, optional) — Search words as typed into the site's search box.
- `category` (string, optional) — Category exactly as the `categories` action (or a row's category_path) prints it: a top level (Computing) or a path (Computing > Laptops). An unknown category returns 0 rows.
- `brand` (string, optional) — Brand exactly as rows print it (Apple, Samsung, Lenovo …). An unknown brand returns 0 rows.
- `min_price` (number, optional) — Lowest price (the price you pay) in the country's currency.
- `max_price` (number, optional) — Highest price (the price you pay) in the country's currency.
- `in_stock` (boolean, optional, default true) — true (default, as the site lists) = only products in stock; false = include out-of-stock products.
- `store` (string, optional) — Only products in stock at this store, by name exactly as the `stores` action prints it.
- `seller` (string, optional) — Only products offered by this seller, exactly as rows print it (Sharaf DG itself or a marketplace seller).
- `on_sale` (boolean, optional) — true = only products the site marks with a discount percentage.
- `sort` (enum, optional, default "relevance") — Order. The price sorts are the site's own and can return fewer results than relevance for a keyword (they keep only the closest matches). [one of: relevance, price_asc, price_desc]
- `page` (integer, optional, default 1) — Result page (see last_page).
- `page_size` (integer, optional, default 24) — Rows per page (1-100).

**Returns:** results[]{sku, product_id, item_code, model_number, title, brand, url, image, country, currency, price, price_before_discount, regular_price, regular_price_below_price, discount_percent, discount_amount, discount_label, in_stock, stores_in_stock_count, seller, seller_code, marketplace, offer_count, shipping_fee, rating, review_count, category, category_path, product_type, tags[], key_specs{}, updated_at} + total, total_is_exact, page, page_size, last_page, has_more, sort

**Example request body:**
```json
{
  "query": "samsung tv",
  "country": "ae"
}
```

### POST https://api.reefapi.com/sharafdg/v1/product — 2 credits
Full record of one product in one country: title, brand, sku, product id, model number, price, price before discount, discount, every seller's offer (price, regular price, shipping fee, default / best flags), stock per store with pickup and delivery flags, the full specification table, key specs, description, summary, images, rating and review count, category path, tags.

**Parameters:**
- `sku` (string, optional) — The product code exactly as a search row returns it in `sku` (the 'Item S600982431' code the site prints), or a row's `product_id` (759456), or a product URL.
- `country` (enum, optional, default "ae") — Which store: ae (UAE, prices in AED), bh (Bahrain, BHD, 3 decimals), om (Oman, OMR, 3 decimals). [one of: ae, bh, om]

**Returns:** {…every search row field, description, summary, images[], specifications[]{group, name, value}, offers[]{seller, seller_code, marketplace, price, regular_price, sale_price, is_default, is_best, active, tier, shipping_fee, free_shipping_threshold, free_shipping, promo_text, fulfilment_center}, store_stock[]{store_id, store_name, in_stock, active, store_pickup, home_delivery, seller_code, lat, lng}, stores_with_stock[], categories_all[], created_at}

**Example request body:**
```json
{
  "sku": "S600982431",
  "country": "ae"
}
```

### POST https://api.reefapi.com/sharafdg/v1/reviews — 3 credits
The review feed the product page shows: user reviews (syndicated from other retailers and Sharaf DG's own) or expert reviews, each with date, title, text, author, score, source and pros/cons for experts, plus the product's overall rating (out of 5), review counts and the 1-5 star distribution. Paged with `cursor`.

**Parameters:**
- `sku` (string, optional) — The product code exactly as a search row returns it in `sku`.
- `type` (enum, optional, default "user") — Which feed: user (default) or pro (expert reviews). [one of: user, pro]
- `cursor` (string, optional) — `next_cursor` from the previous page, to read the next page.
- `country` (enum, optional, default "ae") — The store the sku belongs to (ae, bh, om). The review feed is the same widget for all three; country is used to tell an unknown sku from a product that has no reviews yet. [one of: ae, bh, om]

**Returns:** {sku, rating, score_10, user_review_count, expert_review_count, user_star_distribution{}, expert_star_distribution{}, type, reviews[]{type, date, title, text, author, score, score_max, rating, source, source_domain, language, country, product_reviewed, pros, cons, votes_up, votes_down, link}, next_cursor}

**Example request body:**
```json
{
  "sku": "S600982431"
}
```

### POST https://api.reefapi.com/sharafdg/v1/categories — 1 credit
The category tree with the number of in-stock products in each category — the exact values the search `category` filter accepts. Top level by default, or the children of `parent`.

**Parameters:**
- `country` (enum, optional, default "ae") — Which store: ae (UAE, prices in AED), bh (Bahrain, BHD, 3 decimals), om (Oman, OMR, 3 decimals). [one of: ae, bh, om]
- `parent` (string, optional) — List the sub-categories of this category (exactly as printed).

**Returns:** categories[]{category, name, level, count} + total

**Example request body:**
```json
{
  "country": "ae"
}
```

### POST https://api.reefapi.com/sharafdg/v1/stores — 1 credit
The stores that currently hold stock, with the number of in-stock products each one carries (the values the search `store` filter accepts).

**Parameters:**
- `country` (enum, optional, default "ae") — Which store: ae (UAE, prices in AED), bh (Bahrain, BHD, 3 decimals), om (Oman, OMR, 3 decimals). [one of: ae, bh, om]

**Returns:** stores[]{store_name, products_in_stock} + total

**Example request body:**
```json
{
  "country": "ae"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=sharafdg
- Human docs page: https://reefapi.com/docs/sharafdg
- Overview page: https://reefapi.com/sharafdg-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
