H-E-B APIheb.com ↗
Search H-E-B's grocery catalog via API. Get real-time product pricing, availability, brand, and category data for any store query.
What is the H-E-B API?
The H-E-B API provides access to the full H-E-B grocery catalog through 1 endpoint, search_products, returning up to 60 products per page with pricing, availability, brand, category, and product ID fields. Query by any search term — 'organic eggs', 'coffee', 'milk' — and receive paginated results tied to a specific store's inventory.
curl -X GET 'https://api.parse.bot/scraper/a96a5f01-55f6-4a45-a52d-23f334d160a2/search_products?page=1&sort=best_match&query=coffee&store_id=92' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace heb-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: heb_com_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.H_E_B_Grocery_API import Heb, Sort, InvalidInput
client = Heb()
# Search for products at a specific store, sorted by price
for product in client.products.search(query="coffee", store_id="109", sort=Sort.PRICE_LOW_HIGH, limit=3):
print(product.name, product.brand, product.price, product.size)
# Drill-down: take one item from a different store
item = client.products.search(query="organic eggs", store_id="92", limit=1).first()
if item:
print(item.name, item.price, item.in_stock, item.category)
# Typed error handling
try:
for p in client.products.search(query="almond milk", sort=Sort.BEST_MATCH, limit=2):
print(p.name, p.unit_price, p.is_on_sale)
except InvalidInput as e:
print("invalid input:", e)
print("exercised: products.search")
Full-text product search across the H-E-B grocery catalog. Returns paginated results with pricing, availability, brand, and product details for a given store. Each page returns up to ~60 products. Results are auto-iterated by the SDK.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated results (1-based). |
| sort | string | Sort order for search results. |
| queryrequired | string | Search term for products (e.g. 'coffee', 'milk', 'organic eggs'). |
| store_id | string | H-E-B store ID to scope pricing and availability to a specific store (e.g. '92', '109'). When omitted, the server assigns a default store. |
{
"type": "object",
"fields": {
"page": "current page number",
"query": "the search term used",
"total": "total number of matching products",
"products": "array of product objects with id, name, brand, price, category, availability"
},
"sample": {
"data": {
"page": 1,
"query": "coffee",
"total": 250,
"products": [
{
"id": "583162",
"upc": "041220843381",
"name": "CAFE Olé by H-E-B Texas Pecan Medium Roast Ground Coffee",
"size": "12 oz",
"brand": "CAFE Olé by H-E-B",
"price": 8.98,
"category": "Beverages/Coffee",
"in_stock": true,
"image_url": "https://images.heb.com/is/image/HEBGrocery/prd-small/000583162.jpg",
"is_on_sale": false,
"sale_price": 8.98,
"unit_price": "$0.75",
"description": "Ground from 100% Arabica beans...",
"product_url": "/product-detail/cafe-ol-by-h-e-b-texas-pecan-medium-roast-ground-coffee-12-oz/583162",
"is_own_brand": true
}
]
},
"status": "success"
}
}About the H-E-B API
What the API Returns
The search_products endpoint accepts a query string (required) and returns an array of product objects. Each object includes id, name, brand, price, category, and availability — covering the core fields a developer needs to compare items, track prices, or check stock for a given H-E-B location. The response also surfaces total (total matching products) and page (current page), so you can determine how many pages to iterate.
Pagination and Sorting
Each page returns approximately 60 products. Use the page parameter (1-based integer) to step through results. The optional sort parameter controls result ordering, allowing you to surface highest-priced, lowest-priced, or relevance-ranked items. The Parse SDK auto-iterates pages when using the SDK client directly.
Coverage and Scope
The API covers H-E-B's grocery catalog including branded and private-label items across all product categories — produce, dairy, packaged goods, beverages, and more. Availability and pricing reflect store-level data, so results can vary depending on the store context used in the query. H-E-B operates primarily in Texas, so catalog coverage is scoped to that regional inventory.
The H-E-B API is a managed, monitored endpoint for heb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when heb.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official heb.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor price changes on specific products across H-E-B's catalog over time using the
pricefield - Build a grocery list tool that checks
availabilitybefore adding items for a given store - Compare brand options for a product category by filtering
brandvalues from search results - Aggregate
categorydata from search results to map H-E-B's product taxonomy - Power a recipe ingredient checker by querying each ingredient against the H-E-B catalog
- Track whether store-brand vs. national-brand items are in stock using
brandandavailabilitytogether
| 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 | 100 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 H-E-B have an official public developer API?+
What does each product object in the response include?+
products array includes id, name, brand, price, category, and availability. The top-level response also returns total (count of all matching products) and the query term used, which is useful for logging or caching.Does the API support filtering by category, price range, or store location?+
query string and optional sort and page parameters. Filtering by category, price range, or explicit store ID is not exposed. The API covers full-text product search with pagination. You can fork it on Parse and revise to add a store-filtering or category-scoped endpoint.Are product reviews or nutritional information included in the response?+
How many results can I retrieve for a single query?+
total field in the response tells you how many products match the query overall. Use the page parameter to walk through all results; the Parse SDK will auto-iterate pages for you.