fahorro.com APIfahorro.com ↗
Access Farmacias del Ahorro's product catalog, prices, categories, filters, and promotions via 9 structured endpoints covering Mexico's pharmacy chain.
curl -X GET 'https://api.parse.bot/scraper/0b481c35-f26e-4181-868c-ccef7dee72c4/search_products?query=aspirina' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword using the catalog search. Returns paginated results from the Empathy.co search API.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| limit | integer | Max results per page. |
| queryrequired | string | Search keyword (e.g. 'aspirina', 'vitamina c'). |
{
"type": "object",
"fields": {
"content": "array of product objects with sku, ecommTitle, currentPrice, ecommBrand, ecommImageFullUrl, ecommUrlKey",
"numFound": "integer total number of matching products",
"pagination": "object with start, rows, and numFound fields"
},
"sample": {
"data": {
"content": [
{
"sku": "7501008499047",
"ownBrand": false,
"ecommBrand": "ASPIRINA",
"ecommTitle": "Aspirina Analgesico Para Dolor de Cabeza y Fiebre 20 Tabletas 500 mg",
"ecommUrlKey": "aspirina-500-mg-20-tabletas",
"currentPrice": 32,
"previousPrice": 38,
"ecommImageFullUrl": "https://www.fahorro.com/media/catalog/product/7/5/7501008499047_5.jpg"
}
],
"numFound": 9,
"pagination": {
"rows": 24,
"start": 0,
"numFound": 9
}
},
"status": "success"
}
}About the fahorro.com API
The fahorro.com API gives developers structured access to Farmacias del Ahorro's product catalog through 9 endpoints covering search, category browsing, product details, and promotions. The get_product_details endpoint returns full product data including SKU, price, brand, images, and a key-value attributes object for specifications. The filter_products endpoint lets you combine keyword search with brand, price range, and promotion filters in a single call.
Product Search and Browsing
The search_products endpoint accepts a query string (e.g. 'aspirina', 'vitamina c') and returns paginated arrays of product objects containing sku, ecommTitle, currentPrice, ecommBrand, ecommImageFullUrl, and ecommUrlKey. Pagination is controlled via page and limit parameters, and the numFound field tells you the total match count. The get_category_products endpoint works the same way but scoped to a category_id; use get_categories first to retrieve the full category tree with numeric IDs and display names.
Filtering and Facets
filter_products is the most flexible endpoint: it accepts query, category_id, brand, price_min, price_max, and a promotions_only flag. Brand values must exactly match those returned by get_category_filters, which exposes the full set of available facets — including facetEcommBrand values with per-value counts and facetCurrentPrice statistics (min and max). Two shortcut endpoints, get_promotions and get_marca_propia_products, pre-apply the promotions and private-label filters respectively so you don't need to construct those filter calls manually.
Product Detail and Specifications
get_product_details accepts either a full url or a url_key slug (taken from ecommUrlKey in any listing response) and returns the most complete product record in the API: name, brand, price, an images array, a free-form attributes object for specification key-value pairs, and a full description string. This is the only endpoint that exposes product images as an array and the structured attributes object.
Trending Terms
get_suggestions accepts a query parameter but returns globally trending search terms rather than query-specific autocomplete suggestions. The response includes a topTrends object with a content array of terms carrying a title_raw field. This is useful for surfacing what shoppers are currently searching across the site, not for matching a specific partial input.
- Track price changes for specific medications by polling
get_product_detailswith a producturl_key. - Build a comparison tool for generics vs. branded drugs using
ecommBrandandcurrentPricefromsearch_products. - Aggregate all active promotions across the Farmacia category using
get_promotionsandnumFound. - Enumerate the full product catalog for a given category by iterating
get_category_productswith pagination. - Discover available brands and price distribution in a category via
get_category_filtersfacets before filtering. - Identify Farmacias del Ahorro private-label products with
get_marca_propia_productsfor competitive analysis. - Surface trending health search terms from
get_suggestionsto inform content or ad keyword strategies.
| 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 Farmacias del Ahorro have an official developer API?+
What does `get_suggestions` actually return — does it autocomplete my query?+
query parameter, get_suggestions returns the same globally trending search terms regardless of the input. The topTrends.content array reflects site-wide popular terms, not completions matched to your partial string. If you need query-specific filtering, use search_products instead.Does the API expose stock availability or inventory levels?+
currentPrice, sku, and promotion flags, but no in-stock status, quantity, or store-level availability fields. You can fork this API on Parse and revise it to add an availability endpoint if fahorro.com exposes that data on product pages.Can I retrieve customer reviews or ratings for products?+
get_product_details returns product specifications, description, images, and price, but no review counts, star ratings, or review text. You can fork this API on Parse and revise it to add a reviews endpoint if that data is accessible on fahorro.com product pages.How do I find the correct `category_id` to use with `get_category_products` or `filter_products`?+
get_categories returns the full site navigation as an array of objects, each with an id field (numeric string) and a name field. Pass that id directly as category_id in the other endpoints. For example, the Farmacia category uses ID '7404', which is also the default when no category_id is supplied to filter_products.