traderjoes.com APItraderjoes.com ↗
Access Trader Joe's product catalog, store locations, and recipes via API. Search products, get nutrition facts, find stores by zip, and retrieve recipes.
curl -X GET 'https://api.parse.bot/scraper/a0f048fd-902c-4e5a-abed-d0b3d2f8d0bf/search_products?page=1&query=organic&page_size=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword. Returns paginated results with detailed product info including price, nutrition, and ingredients.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search keyword (e.g. 'organic', 'coffee', 'snacks'). |
| page_size | integer | Number of results per page. |
| store_code | string | Store code for availability filtering. |
{
"type": "object",
"fields": {
"items": "array of product objects with sku, name, item_title, retail_price, nutrition, ingredients, category_hierarchy, and more",
"page_info": "object with current_page, page_size, and total_pages",
"total_count": "integer total number of matching products"
},
"sample": {
"data": {
"items": [
{
"sku": "082029",
"name": "COFFEE SMALL LOT PERU CAJAMARCA ORGANIC",
"nutrition": [],
"item_title": "Organic Peru Cajamarca Small Lot Coffee",
"sales_size": 12,
"ingredients": [],
"price_range": {
"minimum_price": {
"final_price": {
"value": 9.99,
"currency": "USD"
}
}
},
"retail_price": "9.99",
"category_hierarchy": [
{
"id": 2,
"name": "Products"
},
{
"id": 182,
"name": "Beverages"
},
{
"id": 194,
"name": "Coffee & Tea"
}
],
"sales_uom_description": "Oz"
}
],
"page_info": {
"page_size": 15,
"total_pages": 15,
"current_page": 1
},
"total_count": 222
},
"status": "success"
}
}About the traderjoes.com API
This API covers 7 endpoints across the Trader Joe's catalog, giving you access to product search, category browsing, full nutrition and ingredient data, store location lookup, and recipe content. The search_products endpoint returns paginated results with fields including retail_price, nutrition, ingredients, and category_hierarchy. Store lookups return up to 50 nearby locations with coordinates and hours.
Product Catalog
The search_products endpoint accepts a query string and optional page, page_size, and store_code parameters. Results include product sku, item_title, retail_price, structured nutrition panels, ingredients arrays, and a category_hierarchy tree. The get_products_by_category endpoint works the same way but filters by a category_id — for example, 8 for Food or 182 for Beverages. Both endpoints return a page_info object with current_page, page_size, and total_pages, plus a total_count integer.
Product Detail
get_product_detail takes a sku (automatically zero-padded to 6 digits) and returns the most complete product record: a nutrition array with per-serving calorie and nutrient breakdowns, an ingredients array with display_sequence ordering, a price_range object with minimum_price.final_price.value and currency, and a related_products array of summarized product objects. Pass an optional store_code to filter availability.
Store Locations
get_stores accepts an optional query — an address, city name, or zip code — and returns up to 50 store objects. Each store record includes name, address1, city, state, postalcode, phone, latitude, and longitude. Omitting the query returns stores near a default location.
Recipes and Editorial Content
get_recipes accepts an optional query and pagination parameters, returning an items array with title, url, hero_image_url, and categoryTitle. Retrieve a full recipe using get_recipe_detail with a slug (e.g. tahini-salad-dressing); the response includes a recipe_details component tree with ingredients, directions, cook time, and servings. The get_fearless_flyer endpoint returns current Fearless Flyer editorial content with no required inputs.
- Build a grocery price tracker using
retail_pricefields fromsearch_productsorget_product_detail - Power a nutrition lookup tool by pulling
nutritionpanels andingredientsarrays for specific SKUs - Create a store finder feature using
latitude,longitude, andphonefromget_stores - Aggregate Trader Joe's recipes by category using
get_recipeswith a keyword query andget_recipe_detailfor full directions - Index the full product catalog by category using
get_products_by_categorywith known category IDs and pagination - Filter products containing specific ingredients by searching keyword terms and parsing
ingredientsarrays - Surface Fearless Flyer editorial content alongside product data using
get_fearless_flyer
| 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 Trader Joe's have an official public developer API?+
What does `get_product_detail` return beyond what `search_products` provides?+
get_product_detail returns the complete record for a single SKU, including the full nutrition panel array with per-serving breakdowns, an ordered ingredients array with display_sequence values, a structured price_range object with currency, and a related_products array. The search and category endpoints return a similar but summarized version of these fields across many products.Does the `get_stores` endpoint support filtering by state or country?+
query such as a city name, zip code, or street address, and returns up to 50 nearby stores. Filtering by state as a distinct parameter or returning all stores in a region is not directly supported by the current input shape. You can fork this API on Parse and revise it to add a state-level filtering or pagination layer over the results.Does the API expose product availability or inventory levels per store?+
store_code parameter that can filter results by store, but per-store inventory counts or real-time availability status are not returned as distinct fields. You can fork this API on Parse and revise it to add an endpoint that queries availability for a specific store code and SKU combination if that data becomes accessible.Are there quirks to be aware of with product SKUs?+
get_product_detail endpoint automatically zero-pads SKUs to 6 digits, so passing 82814 or 082814 will resolve to the same product. SKUs can be discovered from the sku field returned by search_products or get_products_by_category.