Every public VTEX store as JSON: products, EAN, seller prices and stock
VTEX is the e-commerce platform behind a large share of Latin America's supermarkets, pharmacies, DIY chains and department stores.
7 active endpoints, on 2 and 3 credit tiers.
- POST/vtex/v1/search
- POST/vtex/v1/product
- POST/vtex/v1/products
- POST/vtex/v1/categories
- POST/vtex/v1/facets
- POST/vtex/v1/brands
- POST/vtex/v1/store_info
What VTEX stores endpoints does ReefAPI ship?
7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
VTEX stores API
4 of 7 endpoints, ready to run
Milk at Chedraui Mexico, cheapest first
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the VTEX stores API works
VTEX stores is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 491 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From a store domain to a price list by EAN
Confirm the store, find the category, read the products, then follow them by barcode.
Currency (PEN), country, default sales channel, catalog size (645,763 products) and which search APIs are open.
Every category with its id path, ready to pass as category_id.
50 products per page with the exact total, every SKU's EAN and each seller's sale and list price and stock.
Up to 50 barcodes in one call to re-read prices and stock later; barcodes the store no longer sells are listed in not_found.
A daily price and stock list by EAN for any VTEX retailer, comparable across stores and countries.
curl -X POST https://api.reefapi.com/vtex/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"store":"www.chedraui.com.mx","query":"leche","page_size":10}'{
"ok": true,
"data": { … },
"meta": {
"api": "vtex",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a VTEX field actually contains
Fields that read differently from how they look. Every row was measured against live VTEX stores on 2026-10-14.
| Field | What it holds |
|---|---|
| price | The default seller's selling price, in the store's currency. On 11 of 11 products where the product page publishes structured data, it matched the page's price exactly (Olímpica, Panamericana, Jumbo, Farmacity, Pague Menos, Zona Sul). |
| list_price, list_price_suspect | The store's struck-through price. Some stores fill this field with something else: on Jumbo Argentina the value is the price without 21 % VAT in cents (8,300 becomes 685,950). When the list price is more than five times the price, list_price is null, the original is kept in list_price_raw and list_price_suspect is true, so no fake 98 % discount is reported. |
| spot_price | The cash or PIX price, returned with search_api=intelligent_search only (the catalog search does not carry it). On Americanas 12 of 12 notebook rows had a spot price below the card price; on Plaza Vea and Pague Menos it equalled the price. |
| available_quantity, stock_quantity_capped | Many stores publish a ceiling instead of a count: 99,999, 10,000 or 100 (Zona Sul showed 100 on 7 of 8 rows). Those are returned with stock_quantity_capped true; in_stock is the flag to rely on. Promart publishes real counts such as 18, 240 and 2,198. |
| in_stock, price | An offer with price 0 or quantity 0 is out of stock, not free. Its price is returned as null and in_stock as false. A product that is out of stock everywhere keeps its last offered price with in_stock false. |
| ean, ean_valid | The SKU's EAN as the store entered it. ean_valid checks length and check digit: one pharmacy reuses the placeholder 123456789101112 on unrelated products, which is returned as is with ean_valid false. |
| currency | Read from the store's own sales-channel record, never guessed from the country: MXN, COP, PEN, ARS and BRL were measured. |
| product_id | VTEX's product id as a string. Every search row carries it and product accepts it unchanged: 79 of 79 round trips matched over two runs, leaving out calls a store's firewall refused and one placeholder EAN shared by several products. |
Prices and stock are the logged-out prices of the store's default sales channel. The same eight products returned identical prices and stock from inside and outside the store's country on Chedraui, Plaza Vea and Jumbo. A sales channel can change the assortment: Plaza Vea's channel 2 listed 1,449 milk products against 1,549.
VTEX coverage, measured
Every number below was read from live VTEX stores on 2026-10-14.
18 of 28 VTEX domains answered: Chedraui MX (66,379 products), Olímpica CO (51,076), Panamericana CO, Plaza Vea PE (645,763), Promart PE, Oechsle PE, Metro PE, Wong PE, Jumbo AR, Disco AR, Vea AR, Carrefour AR, Farmacity AR, Día AR, Frávega AR, Pague Menos BR, Zona Sul BR, Americanas BR. Ten others sit behind a firewall or do not serve the catalog.
MXN, COP, PEN, ARS and BRL, read from each store's own sales-channel record.
Chedraui 'leche' 1,154 → milk category 427, brand 14, 10 to 50 pesos 597; Plaza Vea 'arroz' 1,119 → category 33, brand 15, 10 to 50 soles 296. Price sorts return rows in price order on both stores; with Intelligent Search the price order held on 2 of 3 stores and on 11 of 12 rows of the third, where a product with several SKUs is ranked by a different SKU's price.
Search row and product call agreed on price and EAN on 79 of 79 round trips over two runs (calls a firewall refused left out); the product page's own structured data agreed on price on 11 of 11 products that publish it, and on EAN on 2 of 2 that publish a barcode.
On 156 search rows across 10 stores: name, brand, category, url, price and images 156/156; EAN on 146 of 156 SKUs; description 129.
First 2,550 rows per search, 50 per page; logged-out prices of the default sales channel; the cash or PIX price only through Intelligent Search; stores behind a firewall are not read.
What people build with VTEX stores
The jobs this data is most often used for.
endpoints
credits per call
Compare supermarket and pharmacy prices across Mexico, Colombia, Peru, Argentina and Brazil by EAN.
Track a brand's shelf price, list price and promotions across every VTEX retailer that sells it.
Monitor stock and sellers of marketplace listings on department-store sites.
Build a product catalog with EAN, images, specifications and categories from a retailer's own data.
What VTEX stores data costs
The cheapest call here is 2 credits, so $15/mo (Pro) buys 5,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 491 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/vtex/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"store":"www.chedraui.com.mx","query":"leche","page_size":10}'import requests
r = requests.post(
"https://api.reefapi.com/vtex/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"store": "www.chedraui.com.mx",
"query": "leche",
"page_size": 10
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up VTEX stores.
Get a free key →Which stores does it work with?▾
Any VTEX store whose public catalog is open. On 2026-10-14 these answered: Chedraui (Mexico), Olímpica and Panamericana (Colombia), Plaza Vea, Promart, Oechsle, Metro and Wong (Peru), Jumbo, Disco, Vea, Carrefour, Farmacity and Día (Argentina), Frávega search (its firewall refused some product lookups), Pague Menos, Zona Sul and Americanas (Brazil). Stores that put a firewall in front of the catalog return a clear error instead of data.
Do I need an account or an API key from the store?▾
No. Everything is the store's public, logged-out catalog. You only need your reefapi.com key.
How do I know if a site runs on VTEX?▾
Call store_info with the domain. It answers with the currency, country, locale, default sales channel, the size of the catalog and which search APIs are open, or a not-found error when the domain is not a VTEX store.
Which search filters work?▾
Keyword, category id, brand id, price range, seven sorts and page. Each was checked against the unfiltered count in the same run: Chedraui 'leche' 1,154 → milk category 427, department 1,041, brand Bové 14, 10 to 50 pesos 597, from 100 pesos 272; Plaza Vea 'arroz' 1,119 → category 33, brand 15, 10 to 50 soles 296. An unknown brand id returns zero results, never the whole catalog.
How deep can I page?▾
VTEX serves the first 2,550 rows of any one search, 50 per page. When a search matches more, the answer says so and deeper pages are refused rather than billed; narrow the search with a category, brand or price range to reach the rest.
Can I look products up by barcode?▾
Yes. product accepts an EAN, and products accepts up to 50 EANs or 50 product ids in one call and lists the ones the store did not return.
Are marketplace sellers included?▾
Yes. Every SKU lists one offer per seller with its own price, list price and stock, and marks the store's default offer. The product-level price uses the default offer, so a placeholder offer with price 0 never becomes the product's price.
Is this the same as the Shopify API?▾
It is the same idea for a different platform: one API, any store on it. Shopify stores are read with the shopify API; VTEX stores with this one.
What is the VTEX stores API?▾
VTEX stores API is a ReefAPI endpoint group for any public vtex store in latin america: products, every sku with ean, each seller's sale and list price, stock, categories and brands. It returns live JSON through POST requests under /vtex/v1.
Is the VTEX stores API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. VTEX stores calls use the same shared credit balance as every other ReefAPI engine.
Do I need a VTEX stores login or account?▾
No login to VTEX stores 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 VTEX stores 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 VTEX stores API use?▾
VTEX stores actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call VTEX stores from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call vtex actions with the same key, credit pool and JSON envelope used by normal REST requests.
231 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling VTEX stores, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.