---
title: "Compare prices nearby (default 10km), promos applied"
method: GET
path: "/v1/products/{id}/prices"
---

# Compare prices nearby (default 10km), promos applied

`GET /v1/products/{id}/prices`

## Request

- Base URL: `https://supermcp.co.il`
- URL: `https://supermcp.co.il/v1/products/{id}/prices`
- Auth: none required

## Path parameters

- `id` string, uuid, required

## Query parameters

- `city` string
- `near` string
- `location` string
- `radius_km` number
- `sort` 'price' | 'unit_price'
- `include_club` boolean

## Response `200`

OK

- object
  - `data` object[]
    - `storeId` string, uuid
    - `storeName` string
    - `chainId` string
    - `chainName` string
    - `city` string, nullable
    - `address` string, nullable
    - `lat` number, nullable
    - `lng` number, nullable
    - `distanceKm` number, nullable
    - `listingId` string, uuid
    - `itemCode` string
    - `listPrice` number
    - `unitPrice` number, nullable: ₪ per 100g, 100ml, or per unit, computed from the SHELF price. Ignores promotions; use effectiveUnitPrice to compare what is actually paid.
    - `effectiveUnitPrice` number, nullable: unitPrice with any applicable active promo applied. This is what `sort=unit_price` orders by.
    - `unitBasis` 'per_100g' | 'per_100ml' | 'per_unit' | 'unknown'
    - `currency` string
    - `effectivePrice` number: listPrice with any applicable active promo applied.
    - `promoApplied` boolean
    - `promoDescription` string, nullable
    - `clubOnly` boolean: The quoted price needs the chain loyalty card.
    - `couponOnly` boolean: The quoted price needs a clipped coupon.
    - `link` string, nullable: Clickable storefront URL to open this product on the chain's site (search-by-barcode, or by name for chains that don't index barcodes). Null when the chain has no online store.
    - `freshness` object
      - `sourceTs` string, date-time: When the chain published this price.
      - `ingestedAt` string, date-time: When this service last ingested it.

## Other responses

- `400`: Bad request. Query parameters are validated strictly: a parameter this document does not list is rejected, and `details[].keys` names it. A misspelled filter used to be dropped silently, which answered a question nobody asked with a plausible list of products.
- `401`: Unauthorized
- `404`: Not found
- `429`: Rate limited

---

[API](https://skmtc.dev/supermcp/apis/super-mcp-api.md) · [All operations](https://skmtc.dev/supermcp/apis/super-mcp-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supermcp/apis/super-mcp-api/revisions/f0dea9415b1c?raw)
