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.
Search products
By text or category, near a point or across the city, with price and published-stock filters.
Compare prices
Every store that sells a product, sorted by price, with lowest, median, highest and spread.
Price history
One series per store, a point each day the price changed. History since June 2026.
Search stores
By category or name, in a district, across the city or within 5 km.
A store's catalogue
The store's profile and everything it publishes, paginated and filterable by category.
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.
| Field | What it is |
|---|---|
| name, brand, category | The clearest name across stores, brand and category. |
| image_url, edition | An image from one of its stores, and the edition when there is one. |
| stores_count | Distinct stores that sell it; a chain counts once. |
| price | Lowest, median and highest across those stores. |
| match_method | How it was matched: gtin, mpn, name, llm, manual or single. |
| Field | What it is |
|---|---|
| store | Store, district, city and coordinates. |
| price_eur | The price the store shows, sales included. |
| listed_in_stock | Whether the store lists it as available, on the read date. |
| captured_at | The day we read that price. |
| source_url | The 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.