# Árukereső / Compari / Pazaruvaj API — price comparison for Hungary, Romania and Bulgaria: search, categories, every shop's offer with shipping, specs and price history

> Keyword search across the whole catalogue of one country's site. Each row is a product with its lowest price ('from'), the number of shop offers, rating, review count, brand and category. Optional price range and sort.
> ReefAPI engine `arukereso` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/arukereso/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/arukereso/v1/search — 3 credits
Keyword search across the whole catalogue of one country's site. Each row is a product with its lowest price ('from'), the number of shop offers, rating, review count, brand and category. Optional price range and sort.

**Parameters:**
- `query` (string, required) — Search words, in any language the site understands (product names and brands work everywhere).
- `country` (enum, optional, default "hu") — Which site: hu = arukereso.hu, ro = compari.ro, bg = pazaruvaj.com. The three share one product id space, so the same product_id works in every country where the product is listed. [one of: hu, ro, bg]
- `min_price` (number, optional) — Lowest 'from' price, in the site's currency (HUF / RON / EUR).
- `max_price` (number, optional) — Highest 'from' price, in the site's currency.
- `sort` (enum, optional, default "relevance") — Result order. [one of: relevance, popular, price_asc, price_desc, rating, name]
- `page` (integer, optional, default 1) — Result page. Search: 20 per page, at most 100 pages (the site's own pager limit). Category: 25 per page, last page in `last_page`.

**Returns:** {query, country, page, last_page, has_more, results[{product_id, row_type (product | shop_offer), title, url, brand, price_from, price_max, currency, offer_count, shop_name, outbound_url, rating_percent, review_count, category_id, category_path, image}], category_facets}. Both row types' product_id opens with product / offers / price_history.

**Example request body:**
```json
{
  "query": "iphone 15",
  "country": "hu"
}
```

### POST https://api.reefapi.com/arukereso/v1/category — 3 credits
One category's product listing (e.g. 3277 = mobile phones), with the category's own product total, sort and paging. Category ids are shared by the three sites.

**Parameters:**
- `category` (string, required) — Category id (the number after '-c' in a category URL, e.g. mobiltelefon-c3277 → 3277), the slug 'mobiltelefon-c3277', or the `category_id` of a search row.
- `country` (enum, optional, default "hu") — Which site: hu = arukereso.hu, ro = compari.ro, bg = pazaruvaj.com. The three share one product id space, so the same product_id works in every country where the product is listed. [one of: hu, ro, bg]
- `sort` (enum, optional, default "popular") — Result order. [one of: popular, price_asc, price_desc, rating, name]
- `page` (integer, optional, default 1) — Result page. Search: 20 per page, at most 100 pages (the site's own pager limit). Category: 25 per page, last page in `last_page`.

**Returns:** {category_id, category_url, title, total, country, page, last_page, has_more, results[...same row shape as search]}

**Example request body:**
```json
{
  "category": "3277",
  "country": "hu"
}
```

### POST https://api.reefapi.com/arukereso/v1/product — 3 credits
One product page: title, brand, category path, lowest and highest current price, offer counts (paid / sponsored / free listings), rating (0-5 and 0-100) with review count, the full specification sheet, and the same product's best price on the two sister sites (converted by the site).

**Parameters:**
- `product_id` (string, optional) — Product id: the `product_id` of a search / category row, also the number after '-p' in a product URL (…/iphone-15-128gb-p996936880/). 'p996936880' is accepted too. Provide product_id OR url.
- `url` (string, optional) — A product URL from arukereso.hu, compari.ro or pazaruvaj.com; alternative to product_id (its host sets the country).
- `country` (enum, optional, default "hu") — Which site: hu = arukereso.hu, ro = compari.ro, bg = pazaruvaj.com. The three share one product id space, so the same product_id works in every country where the product is listed. [one of: hu, ro, bg]

**Returns:** {product_id, title, brand, url, category_id, category_path, lowest_price, highest_price, currency, offer_counts, rating, rating_percent, review_count, specs[{group, specs[{name, value}]}], other_countries[{country, url, price_converted}], image}

**Example request body:**
```json
{
  "product_id": "996936880",
  "country": "hu"
}
```

### POST https://api.reefapi.com/arukereso/v1/offers — 3 credits
Every shop offer for one product, in the site's own order: shop, price, shipping fee and total (when the fee is stated), free-shipping flag, stock, delivery time, shop star rating and review count, trusted-shop badge, whether the row is a sponsored placement, and the click-through link.

**Parameters:**
- `product_id` (string, optional) — Product id: the `product_id` of a search / category row, also the number after '-p' in a product URL (…/iphone-15-128gb-p996936880/). 'p996936880' is accepted too. Provide product_id OR url.
- `url` (string, optional) — A product URL from arukereso.hu, compari.ro or pazaruvaj.com; alternative to product_id (its host sets the country).
- `country` (enum, optional, default "hu") — Which site: hu = arukereso.hu, ro = compari.ro, bg = pazaruvaj.com. The three share one product id space, so the same product_id works in every country where the product is listed. [one of: hu, ro, bg]

**Returns:** {product_id, title, country, currency, lowest_price, offer_count, offers[{position, offer_id, shop_id, shop_name, price, shipping_cost, total_price, free_shipping, shipping_text, in_stock, delivery_time, shop_rating_stars, shop_review_count, shop_trusted, listing_type, offer_title, click_url}]}

**Example request body:**
```json
{
  "product_id": "996936880",
  "country": "hu"
}
```

### POST https://api.reefapi.com/arukereso/v1/price_history — 1 credit
The product's price chart as the site draws it: the lowest and the average shop price over time (points roughly monthly, then denser).

**Parameters:**
- `product_id` (string, optional) — Product id: the `product_id` of a search / category row, also the number after '-p' in a product URL (…/iphone-15-128gb-p996936880/). 'p996936880' is accepted too. Provide product_id OR url.
- `url` (string, optional) — A product URL from arukereso.hu, compari.ro or pazaruvaj.com; alternative to product_id (its host sets the country).
- `country` (enum, optional, default "hu") — Which site: hu = arukereso.hu, ro = compari.ro, bg = pazaruvaj.com. The three share one product id space, so the same product_id works in every country where the product is listed. [one of: hu, ro, bg]

**Returns:** {product_id, country, currency, series{<label>: [{date, price}]}, points_lowest, first_date, last_date}

**Example request body:**
```json
{
  "product_id": "996936880",
  "country": "hu"
}
```

## 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=arukereso
- Human docs page: https://reefapi.com/docs/arukereso
- Overview page: https://reefapi.com/arukereso-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
