+Instacart API
Instacart grocery categories and products with nutrition, ingredients and dietary tags as JSON.
The API.SH Instacart API returns public Instacart catalogue data as JSON. Open a category to get its name, breadcrumbs, subcategories and products, then pull one product with brand, size, description, ingredients, directions, warnings and allergens, nutrition values and dietary tags such as gluten-free or vegetarian.
- 2 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/instacart/v1/ product
{ "success": true } What you can build with the Instacart API
Grocery catalog building
Walk categories and subcategories to collect product ids, names, sizes, links and images.
Nutrition and allergen databases
Read nutrition values, ingredients, allergens and dietary tags for each product when the listing shows them.
Diet and recipe apps
Match foods to dietary attributes like gluten-free or vegetarian for meal planners.
Product research for brands
Review how products in a category are named, sized and described.
Grocery assistants and agents
Let an AI agent look up a product's ingredients and nutrition from its link or id.
Instacart data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
Instacart API endpoints and prices
Every Instacart endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Instacart category /instacart/ | $1 · $2 PAYG 1 credit |
| Instacart product /instacart/ | $1 · $2 PAYG 1 credit |
Call the Instacart API
Instacart product: GET https://api.api.sh/instacart/
curl "https://api.api.sh/instacart/v1/product?url=https%3A%2F%2Fwww.instacart.com%2Fproducts%2F3293710-iceberg-lettuce-each" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/instacart/v1/product",
params={"url": "https://www.instacart.com/products/3293710-iceberg-lettuce-each"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/instacart/v1/product");
url.searchParams.set("url", "https://www.instacart.com/products/3293710-iceberg-lettuce-each");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/instacart/v1/product", "url", "https://www.instacart.com/products/3293710-iceberg-lettuce-each")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "Instacart" and "Instacart product".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 482 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for Instacart data
- Public data only: no Instacart login, cookies or account needed
- One key and one response shape for Instacart and 481 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official Instacart API
Instacart has official APIs: the Instacart Developer Platform for recipe and shopping-list integrations, and Instacart Connect for enterprise retail partners, both documented at docs.instacart.com and requiring access approval. API.SH instead reads Instacart's public catalogue pages for product details and categories without an application.
Instead of scraping Instacart yourself or using a grocery data vendor, you get one key, a fixed price per call and the same response shape as every other platform.
Instacart API questions
What Instacart data can I get?+
A category with subcategories and products (/instacart/v1/category) and one product with brand, size, ingredients, allergens, nutrition and dietary tags (/instacart/v1/product). It reads Instacart's public catalogue, not store inventory or your orders.
How much does the Instacart API cost?+
Every Instacart endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free trial?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /instacart/v1/category at 1 credit each.
Is there an official Instacart API?+
Yes. The Instacart Developer Platform serves app developers and recipe or meal-planning sites, and Instacart Connect serves enterprise retail partners, each with its own access process. API.SH is unofficial and covers public product and category data only.
Do I need a Instacart account or login?+
No. API.SH reads Instacart's public catalogue only. No endpoint uses a login, cookies or anyone's account, and it cannot place orders, add to cart or read order history.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /instacart/v1/product with the url or id of an Instacart product. Request examples and every parameter are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.
Does Instacart have a free API?+
Instacart's developer platform has its own access process, and search results show approval for access. API.SH gives every account 1,000 free credits every month to try the public catalogue routes.
Is scraping Instacart legal?+
API.SH reads only data that Instacart shows publicly, with no login. Whether your use is allowed also depends on the site's terms and the laws where you are, including privacy rules for any personal data, so check both before you build on it. This is general information, not legal advice.