soriana.com APIsoriana.com ↗
Access Soriana's grocery catalog via API. Search products, get prices in MXN, retrieve coupons, browse departments, and check basket totals across 5 endpoints.
curl -X GET 'https://api.parse.bot/scraper/ad967404-4c0a-4e91-977a-35a311dc0737/search_products?limit=10&query=leche' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword or category ID. Returns a paginated list of products with prices and images parsed from Soriana's search page.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return per page. |
| query | string | Search keyword (e.g. 'leche', 'coca cola'). At least one of query or category_id should be provided. |
| start | integer | Offset for pagination. Use multiples of limit to paginate (0, 25, 50, ...). |
| category_id | string | Category slug to filter by (e.g. 'lacteos-y-huevo', 'despensa'). Use get_departments to discover valid values. |
{
"type": "object",
"fields": {
"count": "integer number of products returned in this page",
"items": "array of product objects with id, name, url, sale_price, list_price, and image",
"limit": "integer max results requested",
"total": "integer total number of matching products"
},
"sample": {
"data": {
"count": 10,
"items": [
{
"id": "11400966",
"url": "https://www.soriana.com/leche-uht-lala-deslactosada-1-litro-6-piezas/11400966.html",
"name": "Leche UHT Lala Deslactosada 1 Litro 6 Piezas",
"image": "https://www.soriana.com/dw/image/v2/BGBD_PRD/on/demandware.static/-/Sites-soriana-grocery-master-catalog/default/dwdf6ddcaa/images/product/7501020565997_A.jpg?sw=473&sh=473&sm=fit",
"list_price": 215,
"sale_price": 176
}
],
"limit": 10,
"total": 263
},
"status": "success"
}
}About the soriana.com API
The Soriana API provides 5 endpoints for extracting product data, pricing, department categories, and promotional coupons from Mexico's Soriana online grocery store. Use search_products to query by keyword or category slug, get_product_details to retrieve EAN barcodes, brand, and MXN prices for a single SKU, and get_basket_prices to fetch live prices for multiple products in one call. All price values are denominated in MXN.
Product Search and Catalog Browsing
The search_products endpoint accepts a query string (e.g. 'leche', 'coca cola') or a category_id slug, returning paginated results with each product's id, name, url, sale_price, list_price, and image. Pagination is controlled via start (offset) and limit (page size). The response also includes a total count so you can determine how many pages exist. Valid category_id values — like 'lacteos-y-huevo' or 'despensa' — are discoverable through the get_departments endpoint, which returns a flat list of department name and id pairs.
Product Details and Basket Pricing
get_product_details takes a single product_id (obtainable from search_products results) and returns the full product record: ean (13-digit barcode), brand, description, price, list_price, and currency (always MXN). For multi-product price checks, get_basket_prices accepts a JSON-encoded array of product IDs and returns an array of objects each containing id, name, price, list_price, promotionalPrice, currency, and availability — useful for validating a shopping cart without making individual calls per item.
Coupons and Promotions
The get_coupons endpoint returns Soriana's current promotions organized as couponCategories, each with a couponCategoryId, label, quantity, and a coupons array. Categories typically cover product-level discounts, order-level discounts, and shipping discounts. An optional postal_code parameter accepts a Mexican CP (e.g. '06600'), though at present the response does not vary by location. This endpoint draws from Soriana's BFF promotion service rather than the product catalog, so coupons appear independently of search results.
- Monitor MXN price changes on specific grocery SKUs using
get_product_detailsand comparingpricevslist_priceover time - Build a grocery price comparison tool across Mexican retailers by querying
search_productswith product keywords - Aggregate available Soriana coupons and promotions into a deal-alert app using
get_coupons - Validate and price a shopping basket programmatically with
get_basket_pricesbefore checkout - Catalog Soriana's department taxonomy for category-level analytics using
get_departments - Track EAN barcodes and brand metadata for grocery inventory databases via
get_product_details - Paginate through a full category (e.g.
'despensa') to index all products and their sale prices
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Soriana offer an official public developer API?+
What does `get_product_details` return that `search_products` does not?+
search_products returns a summary record per product: id, name, url, sale_price, list_price, and image. get_product_details adds the ean (13-digit barcode), brand, description, and a currency field, and resolves pricing from the product's canonical page rather than the search index.Does `get_coupons` vary by postal code or store location?+
postal_code parameter is accepted but currently returns the same coupon set regardless of the value supplied. The response reflects nationally available promotions. Regional or store-specific offer filtering is not currently differentiated in the response.Does the API return product reviews or star ratings?+
How does pagination work in `search_products`?+
start parameter as an offset and limit to control page size. For example, start=0&limit=25 returns the first 25 results, start=25&limit=25 returns the next page. The total field in the response tells you the full result count so you can calculate the number of pages needed.