Trader Joe's Search API
Our Trader Joe's Search API allows you to scrape products from Trader Joe's search results. For each product, the API returns its title, link, product ID, image, category, price, and size. Search all Trader Joe's products with q, or only the products sold in one store with store_id.
The API endpoint is https://serpapi.com/search?engine=trader_joes
Head to the playground for a live and interactive demo.
API Parameters
Localization
store_id
Optional
Parameter defines the Trader Joe's store to search in, so only products sold in this store are returned (e.g., 454 for Austin - Northwest). Head to the Trader Joe's stores page for a full list of store IDs.
When it isn't set, or when no store has this ID, products sold in any store are returned.
Advanced Filters
category_id
Optional
Parameter defines the category of the products (e.g., 194 for Coffee & Tea). Head to the Trader Joe's categories page for a full list of category IDs.
characteristics
Optional
Parameter defines the characteristics the products must all have. It's a comma-separated list of options (e.g., organic,vegan).
Available options:kosher - Kosherorganic - Organicgluten_free - Gluten Freevegan - Veganantibiotic_free - Antibiotic Freedairy_free - Dairy Freegrass_fed - Grass Fedvegetarian - Vegetarianfair_trade - Fair Trade
tags
Optional
Parameter defines the tags the products must all have, from the Trader Joe's "fun tags" like Date Night or Cheese Board. It's a comma-separated list of options (e.g., date_night,cheese_board). Head to the Trader Joe's tags page for a full list of tags.
Serpapi Parameters
no_cache
Optional
Parameter will force SerpApi to fetch the Trader Joe's results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.
async
Optional
Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.
zero_trace
Optional
Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.
output
Optional
Parameter defines the format of the result. It can be set to json (default) to get a structured JSON of the results, html to get the raw HTML retrieved, or md to get a markdown-formatted version optimized for LLMs and AI agents.
json_restrictor
Optional
Parameter defines the fields you want to include in the output, reducing payload size for faster response. See the JSON Restrictor documentation for more details.
API Results
JSON Results
JSON output includes structured data for Organic Results.
A search status is accessible through search_metadata.status.
It flows this way: Processing -> Success || Error.
If a search has failed, error will contain an error message.
search_metadata.id is the search ID inside SerpApi.
HTML Results
This API does not have a full HTML response, only text.
search_metadata.prettify_html_file contains a link to the prettified version of the result.
It is displayed in the playground.
Markdown Results
Markdown output is optimized for LLMs and AI agents. It provides a curated view of the JSON results
in a token-efficient format using tables, markdown links, and YAML frontmatter.
To access, use the output=md parameter, the /search.md endpoint, or request header Accept: text/markdown.
API Examples
Example with q: coffee
{
...
"search_information": {
"total_results": 82
},
"organic_results": [
{
"product_id": "097234",
"title": "Pumpkin Spice Coffee",
"link": "https://www.traderjoes.com/home/products/pdp/pumpkin-spice-coffee-097234",
"serpapi_link": "https://serpapi.com/search.json?engine=trader_joes_product&product_id=097234",
"thumbnail": "https://www.traderjoes.com/content/dam/trjo/products/m304/97234.png/jcr:content/renditions/cq5dam.web.1280.1280",
"category": "Coffee & Tea",
"category_link": "https://www.traderjoes.com/home/products/category/coffee-tea-194",
"price": "$9.99",
"extracted_price": 9.99,
"size": "14 Oz"
},
{
"product_id": "066148",
"title": "Autumn Maple Coffee",
"link": "https://www.traderjoes.com/home/products/pdp/autumn-maple-coffee-066148",
"serpapi_link": "https://serpapi.com/search.json?engine=trader_joes_product&product_id=066148",
"thumbnail": "https://www.traderjoes.com/content/dam/trjo/products/m304/66148.png/jcr:content/renditions/cq5dam.web.1280.1280",
"category": "Coffee & Tea",
"category_link": "https://www.traderjoes.com/home/products/category/coffee-tea-194",
"price": "$9.99",
"extracted_price": 9.99,
"size": "14 Oz"
},
{
"product_id": "081315",
"title": "Ethiopia Guji Coffee",
"link": "https://www.traderjoes.com/home/products/pdp/ethiopia-guji-coffee-081315",
"serpapi_link": "https://serpapi.com/search.json?engine=trader_joes_product&product_id=081315",
"thumbnail": "https://www.traderjoes.com/content/dam/trjo/products/m304/81315.png/jcr:content/renditions/cq5dam.web.1280.1280",
"category": "Coffee & Tea",
"category_link": "https://www.traderjoes.com/home/products/category/coffee-tea-194",
"price": "$10.99",
"extracted_price": 10.99,
"size": "12 Oz"
},
...
],
...
}
Example with store_id: 454
Each Trader Joe's store sells part of the products. With store_id, only the products sold in this store are returned, like on the Trader Joe's website after selecting a store. Here, 60 of the 82 coffee products are sold in the Austin - Northwest store.
{
...
"search_parameters": {
"engine": "trader_joes",
"q": "coffee",
"store_id": "454"
},
"search_information": {
"total_results": 60
},
"organic_results": [
{
"product_id": "097234",
"title": "Pumpkin Spice Coffee",
"link": "https://www.traderjoes.com/home/products/pdp/pumpkin-spice-coffee-097234",
"serpapi_link": "https://serpapi.com/search.json?engine=trader_joes_product&product_id=097234&store_id=454",
"thumbnail": "https://www.traderjoes.com/content/dam/trjo/products/m304/97234.png/jcr:content/renditions/cq5dam.web.1280.1280",
"category": "Coffee & Tea",
"category_link": "https://www.traderjoes.com/home/products/category/coffee-tea-194",
"price": "$9.99",
"extracted_price": 9.99,
"size": "14 Oz"
},
...
],
...
}
Example with page: 2
{
...
"organic_results": [
{
"product_id": "063482",
"title": "Cold Brew Coffee Bags",
"link": "https://www.traderjoes.com/home/products/pdp/cold-brew-coffee-bags-063482",
"serpapi_link": "https://serpapi.com/search.json?engine=trader_joes_product&product_id=063482",
"thumbnail": "https://www.traderjoes.com/content/dam/trjo/products/m304/63482.png/jcr:content/renditions/cq5dam.web.1280.1280",
"category": "Coffee & Tea",
"category_link": "https://www.traderjoes.com/home/products/category/coffee-tea-194",
"price": "$8.49",
"extracted_price": 8.49,
"size": "8.5 Oz"
},
...
],
"serpapi_pagination": {
"current": 2,
"previous": "https://serpapi.com/search.json?engine=trader_joes&page=1&q=coffee",
"next": "https://serpapi.com/search.json?engine=trader_joes&page=3&q=coffee",
"other_pages": {
"1": "https://serpapi.com/search.json?engine=trader_joes&page=1&q=coffee",
"3": "https://serpapi.com/search.json?engine=trader_joes&page=3&q=coffee",
"4": "https://serpapi.com/search.json?engine=trader_joes&page=4&q=coffee",
"5": "https://serpapi.com/search.json?engine=trader_joes&page=5&q=coffee",
"6": "https://serpapi.com/search.json?engine=trader_joes&page=6&q=coffee"
}
}
}
JSON Structure Overview
{
...
"search_information": {
"total_results": "Integer - Number of products matching the search.",
"organic_results_state": "String - 'Fully empty' when the page has no products, because no product matches the search or the page is after the last one."
},
"organic_results": [
{
"product_id": "String - Trader Joe's product ID (SKU). (Ex. 097234)",
"title": "String - Name of the product.",
"link": "String - Link to the product page on Trader Joe's.",
"serpapi_link": "String - Link to the product details with SerpApi's Trader Joe's Product API.",
"thumbnail": "String - Link to the image of the product.",
"category": "String - Category of the product. (Ex. Coffee & Tea)",
"category_link": "String - Link to the category page on Trader Joe's.",
"price": "String - Price of the product, as displayed. Absent when Trader Joe's shows the price as not available. (Ex. $9.99)",
"extracted_price": "Float - Price of the product.",
"size": "String - Size of the product the price is for. (Ex. 14 Oz, 1 Each)"
},
...
],
"serpapi_pagination": {
"current": "Integer - Current page number.",
"previous": "String - Link to the previous page of results with SerpApi.",
"next": "String - Link to the next page of results with SerpApi.",
"other_pages": {
"page_number": "String - Link to this page of results with SerpApi."
}
},
...
}