Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Jarir Bookstore API page →
E-commerce & Marketplaces

Jarir Bookstore API & Scraper

Jarir Bookstore is the largest electronics, books and office retailer in Saudi Arabia, with storefronts in Kuwait, Qatar, the UAE and Bahrain.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

This API reads it as JSON. `search` uses Jarir's own search engine with keyword, brand, product type, price range and price sort, and returns per product: SKU, name, brand, model, manufacturer part number, barcode (ISBN for books), the price the shopper pays, the regular price and the discount, the currency of the storefront, an in-stock flag, and whether Jarir or a named marketplace seller sells it. `product` returns one SKU in full: online stock quantity, showroom pickup and home delivery, cash on delivery, Tabby and Tamara eligibility, the spec table with Jarir's labels, every colour and capacity variant with its own price and stock, categories, images and the star rating. `store_stock` lists every Jarir showroom in a country with its availability, address, hours and coordinates, and `reviews` returns the customer reviews.

Reference

What a Jarir field actually contains

Fields that read differently from how they look. Every row was measured against live Jarir pages on 2026-10-14.

FieldWhat it holds
skuJarir's SKU, the number at the end of the product address (…-666789.html). Marketplace offers are JPP-<digits>, a product family with variants is JPM<digits>. SKUs belong to one storefront: the same iPhone is 666789 in Saudi Arabia and 672350 in Kuwait. Search to product returned the same SKU on 14 of 14 rows.
price, regular_priceprice is what the shopper pays, VAT included. regular_price is the struck-through price and is only set when the product is discounted. Jarir's own search index shows the regular price as the price; this API always returns the catalogue's paid price. price matched the product page on 9 of 9 pages that publish one.
discount_pct, source_discount_pctdiscount_pct is computed from the two prices with one decimal (a 10 SAR cut on 2,599 SAR is 0.4). source_discount_pct is Jarir's own rounded figure, which says 0 for that case.
currencyThe storefront's own currency: SAR (Saudi Arabia), KWD (Kuwait, 3 decimals), QAR (Qatar), AED (UAE), BHD (Bahrain, 3 decimals). No conversion is applied.
stock.available_qtyOnline stock as Jarir's cart reads it. It stops at 100: every first-party product read showed 100, so stock_qty_is_capped is true at 100. Marketplace offers showed real small counts (2, 3, 78).
sold_by, seller_namejarir for Jarir's own stock, marketplace for offers from third-party sellers on Jarir's marketplace, with the seller's registered name.
brand (books)For books Jarir's brand is the publisher (Bloomsbury for Harry Potter). The author is in specs, the ISBN in barcode and mpn.
matched_bykeyword when the row matched the search words, semantic when Jarir's search engine added it by meaning. A query with no keyword match at all still returns semantic rows; match_counts and a warning say so.

Prices and stock did not depend on where the request came from: the same 10 products read from a Saudi connection and from outside the Kingdom gave identical prices, regular prices, stock flags and quantities (10 of 10).

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/jarir/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone 17",
    "country": "sa"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "jarir",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2866.1,
    "record_count": 24,
    "bytes": 1690233,
    "cache_hit": false,
    "total": 750,
    "country": "sa",
    "lang": "en",
    "currency": "SAR",
    "search_key_source": "page_config",
    "upstream_requests": 3,
    "charged_credits": 3,
    "version": "0.1.0",
    "request_id": "609a2d36e2c64261",
    "fetched_at": "2026-10-14T18:57:24.791Z"
  },
  "data": {
    "results": [
      {
        "sku": "666789",
        "name": "Apple iPhone 17, 256 GB, Lavender, 5G, Apple A19",
        "url": "https://www.jarir.com/sa-en/apple-iphone-17-smartphones-666789.html",
        "brand": "Apple",
        "model": "iPhone 17",
        "mpn": "MG6A4AHA",
        "barcode": "195950643121",
        "item_number": "25-MG6A4AHA",
        "product_type": "Smartphones",
        "price": 4299,
        "regular_price": null,
        "discount_amount": null,
        "discount_pct": null,
        "source_discount_pct": null,
        "special_price_from": null,
        "special_price_to": null,
        "price_ex_vat": 3738.26,
        "currency": "SAR",
        "in_stock": true,
        "sold_by": "jarir",
        "seller_name": null,
        "seller_id": null,
        "installments": {
          "tabby": true,
          "tamara": true
        },
        "promo_tagline": "Trade-in & Save up to SR1850",
        "image": "https://ak-asset.jarir.com/akeneo-prod/asset/1/7/6/e/176ecdceb1b9383b095a484937a2e86d65b9ae9d_666789.jpg",
        "matched_by": "keyword",
        "catalogue_read": true
      },
      {
        "sku": "666784",
        "name": "Apple iPhone 17, 256 GB, Black, 5G, Apple A19",
        "url": "https://www.jarir.com/sa-en/apple-iphone-17-smartphones-666784.html",
        "brand": "Apple",
        "model": "iPhone 17",
        "mpn": "MG674AHA",
        "barcode": "195950643008",
        "item_number": "25-MG674AHA",
        "product_type": "Smartphones",
        "price": 4299,
        "regular_price": null,
        "discount_amount": null,
        "discount_pct": null,
        "source_discount_pct": null,
        "special_price_from": null,
        "special_price_to": null,
        "price_ex_vat": 3738.26,
        "currency": "SAR",
        "in_stock": true,
        "sold_by": "jarir",
        "seller_name": null,
        "seller_id": null,
        "installments": {
          "tabby": true,
          "tamara": true
        },
        "promo_tagline": "Trade-in & Save up to SR1850",
        "image": "https://ak-asset.jarir.com/akeneo-prod/asset/a/6/3/0/a63054cef55f28fa77bb7fe2a971877435588156_666784.jpg",
        "matched_by": "keyword",
        "catalogue_read": true
      },
      {
        "sku": "666788",
        "name": "Apple iPhone 17, 256 GB, Mist Blue, 5G, Apple A19",
        "url": "https://www.jarir.com/sa-en/apple-iphone-17-smartphones-666788.html",
        "brand": "Apple",
        "model": "iPhone 17",
        "mpn": "MG694AHA",
        "barcode": "195950643084",
        "item_number": "25-MG694AHA",
        "product_type": "Smartphones",
        "price": 4299,
        "regular_price": null,
        "discount_amount": null,
        "discount_pct": null,
        "source_discount_pct": null,
        "special_price_from": null,
        "special_price_to": null,
        "price_ex_vat": 3738.26,
        "currency": "SAR",
        "in_stock": true,
        "sold_by": "jarir",
        "seller_name": null,
        "seller_id": null,
        "installments": {
          "tabby": true,
          "tamara": true
        },
        "promo_tagline": "Trade-in & Save up to SR1850",
        "image": "https://ak-asset.jarir.com/akeneo-prod/asset/0/0/1/7/001717bdf5104bef55656a88dba58710fe3b1394_666788.jpg",
        "matched_by": "keyword",
        "catalogue_read": true
      }
    ],
    "total": 750,
    "page": 1,
    "page_size": 24,
    "pages": 32,
    "has_more": true,
    "country": "sa",
    "lang": "en",
    "currency": "SAR",
    "match_counts": {
      "keyword": 750,
      "semantic": 0
    },
    "facets": {
      "brands": [
        {
          "name": "Apple",
          "count": 94
        },
        {
          "name": "Techpick",
          "count": 59
        },
        {
          "name": "Belkin",
          "count": 17
        }
      ],
      "product_types": [
        {
          "name": "Smartphones",
          "count": 36
        },
        {
          "name": "Renewed Smartphones",
          "count": 26
        },
        {
          "name": "Other Smartphone Accessories",
          "count": 68
        }
      ],
      "price_range": {
        "min": 39,
        "max": 9699
      }
    }
  }
}
Actions

What the Jarir Bookstore API does

ActionDescriptionConcrete use caseKey params
searchSearch Jarir's catalogue with Jarir's own search engine: keyword, brand, product type, price range in the storefront's currency and price sort. Give a `query`, or browse a whole `product_type` or `brand` without one. Each row: SKU, name, URL, brand, model, MPN, barcode, price the shopper pays, regular price, discount, currency, in-stock flag, who sells it (Jarir or a named marketplace seller), Tabby/Tamara eligibility, image. Plus Jarir's own total and the brand / product type / price facets of the result set.Pricing teams call search to search Jarir's catalogue with Jarir's own search engine.query, brand, product_type, min_price, max_price, ...
productFull Jarir product by SKU: price the shopper pays, regular price, discount and its dates, price ex-VAT, currency, online stock quantity and status, showroom pickup, home delivery, cash on delivery, order cut-off, Tabby/Tamara eligibility, payment methods, seller (Jarir or the named marketplace seller), brand, model, MPN, barcode, the spec table with Jarir's labels, every variant (colour/capacity) with its own price and stock, categories, description, images, star rating and distribution.Marketplace operators call product to get full Jarir product by SKU.sku, country, lang
reviewsCustomer reviews Jarir publishes for a SKU (rating, title, text, reviewer's display name, date) plus the star distribution. Reviews are per SKU: each colour/capacity variant has its own.Catalog enrichment teams call reviews to get customer reviews Jarir publishes for a SKU (rating, title, text, reviewer's display name, dat….sku, rating, country, lang
store_stockShowroom-by-showroom availability of a SKU in one country: every Jarir showroom with its availability (AVAILABLE / LIMITED / OUTOFSTOCK), city, address, opening hours, phone and coordinates.Retail analysts call store_stock to get showroom-by-showroom availability of a SKU in one country.sku, availability, country, lang
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/jarir/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone 17","country":"sa"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.jarir.search with {"query":"iphone 17","country":"sa"}.
Use cases

Who uses this API and why

  • Track Saudi electronics prices and discounts daily, with the regular price and the discount Jarir shows.
  • Compare the same product's price across Saudi Arabia, Kuwait, Qatar, the UAE and Bahrain in each local currency.
  • Check which Jarir showrooms in a city have a product before sending customers there.
  • Monitor third-party marketplace sellers on Jarir: who sells what, at what price and stock.
  • Build a books catalogue for the Gulf with ISBN, author, publisher and price in SAR.
FAQ

Questions developers ask before integrating

Which countries are covered?

All five Jarir storefronts: Saudi Arabia (default), Kuwait, Qatar, the UAE and Bahrain, each with its own catalogue, SKUs and currency. "iphone 17" on 2026-10-14: 750 results in Saudi Arabia, 551 in Kuwait, 495 in Qatar, 490 in the UAE, 458 in Bahrain.

Can I get the data in Arabic?

Yes. lang=ar returns Jarir's Arabic catalogue: Arabic names, spec labels and showroom names. Arabic queries work too ("ايفون" matched 2,466 products), and Arabic-Indic digits in prices and SKUs are accepted.

Which filters are there?

Brand, product type, price range and price sort. Each was checked against the unfiltered count in the same run: "laptop" 856 → Lenovo 91, Lenovo or HP 183, 1,000 to 2,000 SAR 47, 8,000 SAR and up 109, product type Laptops 229. An unknown brand returns 0 rows rather than everything.

Can I list a whole brand or product type without a keyword?

Yes. Call search with only brand or only product_type. Samsung alone listed 1,973 products in Saudi Arabia.

Do you return showroom stock?

Yes. store_stock lists every showroom in the country with AVAILABLE, LIMITED or OUTOFSTOCK, plus address, opening hours, phone and coordinates. For an iPhone 17 in Saudi Arabia: 67 showrooms, 61 available, 3 limited, 3 out of stock.

Is Tabby or Tamara available for a product?

product returns Jarir's own eligibility flags for Tabby, Tamara, Tamara Plus and Jarir's installment service, plus the full list of payment methods the product accepts. Jarir does not publish a per-product monthly amount, so none is returned.

How deep can I page?

Up to 48 rows per page; page until has_more is false. Paging past the end returns an empty page, it never repeats the last one.

Do you return delivery dates?

Not yet. Jarir computes the delivery date from a delivery address (city and district); product returns the order cut-off time and whether home delivery and showroom pickup are offered.

What is the Jarir Bookstore API?

Jarir Bookstore API is a ReefAPI endpoint group for saudi arabia's largest electronics and books retailer, plus kuwait, qatar, uae and bahrain: price, discount, online and showroom stock, seller, specs and reviews. It returns live JSON through POST requests under /jarir/v1.

Is the Jarir Bookstore API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Jarir Bookstore calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Jarir Bookstore login or account?

No login to Jarir Bookstore is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Jarir Bookstore data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Jarir Bookstore API use?

Jarir Bookstore actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Jarir Bookstore from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call jarir actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / jarir

Jarir Bookstore

Saudi Arabia's largest electronics and books retailer, plus Kuwait, Qatar, UAE and Bahrain: price, discount, online and showroom stock, seller, specs and reviews.

base /jarir/v14 endpoints
post/jarir/v1/product3 credits

Full Jarir product by SKU: price the shopper pays, regular price, discount and its dates, price ex-VAT, currency, online stock quantity and status, showroom pickup, home delivery, cash on delivery, order cut-off, Tabby/Tamara eligibility, payment methods, seller (Jarir or the named marketplace seller), brand, model, MPN, barcode, the spec table with Jarir's labels, every variant (colour/capacity) with its own price and stock, categories, description, images, star rating and distribution.

ParameterAllowed / rangeDescription
skurequired—Jarir SKU exactly as a search row returns it: digits for Jarir's own items (666789), JPP-<digits> for marketplace offers, JPM<digits> for a product family. A jarir.com product URL is accepted too.
country = saoptionalsa · kw · qa · ae · bhWhich Jarir storefront: Saudi Arabia (sa, default, prices in SAR), Kuwait (kw, KWD), Qatar (qa, QAR), UAE (ae, AED) or Bahrain (bh, BHD). Each is its own catalogue with its own prices and stock.
lang = enoptionalen · arLanguage of names, specs and showroom names: English (en, default) or Arabic (ar). Jarir runs a separate catalogue per language.
Try in playground →
post/jarir/v1/reviews1 credit

Customer reviews Jarir publishes for a SKU (rating, title, text, reviewer's display name, date) plus the star distribution. Reviews are per SKU: each colour/capacity variant has its own.

ParameterAllowed / rangeDescription
skurequired—Jarir SKU exactly as a search row returns it: digits for Jarir's own items (666789), JPP-<digits> for marketplace offers, JPM<digits> for a product family. A jarir.com product URL is accepted too.
ratingoptional1–5Only reviews with this many stars (1-5).
country = saoptionalsa · kw · qa · ae · bhWhich Jarir storefront: Saudi Arabia (sa, default, prices in SAR), Kuwait (kw, KWD), Qatar (qa, QAR), UAE (ae, AED) or Bahrain (bh, BHD). Each is its own catalogue with its own prices and stock.
lang = enoptionalen · arLanguage of names, specs and showroom names: English (en, default) or Arabic (ar). Jarir runs a separate catalogue per language.
Try in playground →
post/jarir/v1/store_stock2 credits

Showroom-by-showroom availability of a SKU in one country: every Jarir showroom with its availability (AVAILABLE / LIMITED / OUTOFSTOCK), city, address, opening hours, phone and coordinates.

ParameterAllowed / rangeDescription
skurequired—Jarir SKU exactly as a search row returns it: digits for Jarir's own items (666789), JPP-<digits> for marketplace offers, JPM<digits> for a product family. A jarir.com product URL is accepted too.
availabilityoptionalavailable · limited · outofstockOnly showrooms in this state.
country = saoptionalsa · kw · qa · ae · bhWhich Jarir storefront: Saudi Arabia (sa, default, prices in SAR), Kuwait (kw, KWD), Qatar (qa, QAR), UAE (ae, AED) or Bahrain (bh, BHD). Each is its own catalogue with its own prices and stock.
lang = enoptionalen · arLanguage of names, specs and showroom names: English (en, default) or Arabic (ar). Jarir runs a separate catalogue per language.
Try in playground →
Built for volume
5M+ requests a day

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.

Missing a source?
We build it

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.

Support
2 minute median reply

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.

One key, one balance
Every API included

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.