LOVEO Data
LOVEO Data API · v1

The local retail API.

Search products and stores near a point, compare a product's price across every store that sells it, and follow how it changes. JSON, one key and clear limits.

Free trial: 100 calls a month, every endpoint, no card.

$ curl https://data.loveoo.app/v1/products/search \
    -H "Authorization: Bearer $LOVEO_KEY" \
    -G -d q="muga crianza" -d city=madrid

{ "products": [
    { "name": "Muga Crianza 2022",
      "stores_count": 5,
      "price": { "min": 16.11, "median": 19.95, "max": 21.50 } },
    … ],
  "next_cursor": "eyJvIjoxMH0" }

Products, stores and brands. Each with its prices.

GET /v1/products/search

Search products

By text or category, near a point or across the city, with price and published-stock filters.

GET /v1/products/{id}/prices

Compare prices

Every store that sells a product, sorted by price, with lowest, median, highest and spread.

GET /v1/products/{id}/history

Price history

One series per store, a point each day the price changed. History since June 2026.

GET /v1/stores/search

Search stores

By category or name, in a district, across the city or within 5 km.

GET /v1/stores/{id}/products

A store's catalogue

The store's profile and everything it publishes, paginated and filterable by category.

GET /v1/brands/{id}

Where a brand is sold

Stores, listings, price range and districts of a brand in the city.

On the Professional plan, also: CSV exports of a store or a brand, and brand tracking with email alerts.

Every price, with its store, its date and its link.

What a product carries, and what each of its offers carries.

Product
FieldWhat it is
name, brand, categoryThe clearest name across stores, brand and category.
image_url, editionAn image from one of its stores, and the edition when there is one.
stores_countDistinct stores that sell it; a chain counts once.
priceLowest, median and highest across those stores.
match_methodHow it was matched: gtin, mpn, name, llm, manual or single.
Offer
FieldWhat it is
storeStore, district, city and coordinates.
price_eurThe price the store shows, sales included.
listed_in_stockWhether the store lists it as available, on the read date.
captured_atThe day we read that price.
source_urlThe product page on the store's website.

Clear rules, no surprises on the invoice.

Stable ids

A product keeps its id between updates; it only changes when two products are joined or split.

We never charge overage

Every response carries your usage in its headers. At the limit, 429 until the next period.

30-day cache

You can store results for up to 30 days. Reselling the data is not allowed.

Madrid today

Over 900 stores you can query. Customer requests decide the next city: tell us which one you need.

Your first call, this week.

Tell us what you'll build and we'll reply by email with your trial key.

Request access