Trader Joe's Product API

Our Trader Joe's Product API allows you to scrape a product page from Trader Joe's.


The API endpoint is https://serpapi.com/search?engine=trader_joes_product

Head to the playground for a live and interactive demo.

API Parameters

Search Query

product_id

Required

Parameter defines the Trader Joe's product to get results for. It's the number at the end of the product page URL (e.g., 080794 in https://www.traderjoes.com/home/products/pdp/cold-brew-coffee-black-080794).

Advanced Parameters

store_id

Optional

Parameter defines the Trader Joe's store to check the product availability in. It's the number at the end of the store page URL on the Trader Joe's store locator (e.g., 454 in https://locations.traderjoes.com/tx/austin/454/). When the product isn't sold in the store, available is false and the price is not returned, as on the Trader Joe's website.

Serpapi Parameters

engine

Required

Set parameter to trader_joes_product to use the Trader Joe's Product API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Trader Joe's Product 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.

api_key

Required

Parameter defines the SerpApi private key to use.

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 Product 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 product_id:080794

Example with product_id:080794

JSON Example

{
  ...
  "product_results": {
    "product_id": "080794",
    "title": "Cold Brew Coffee Black",
    "link": "https://www.traderjoes.com/home/products/pdp/cold-brew-coffee-black-080794",
    "categories": [
      {
        "name": "Products",
        "link": "https://www.traderjoes.com/home/products/category/products-2"
      },
      {
        "name": "Beverages",
        "link": "https://www.traderjoes.com/home/products/category/beverages-182"
      },
      {
        "name": "Coffee & Tea",
        "link": "https://www.traderjoes.com/home/products/category/coffee-tea-194"
      }
    ],
    "price": "$1.99",
    "extracted_price": 1.99,
    "size": "8.45 Fl Oz",
    "available": true,
    "images": [
      "https://www.traderjoes.com/content/dam/trjo/products/m304/80794.png"
    ],
    "description": "As much as we appreciate a good cold brew, we don’t always appreciate as much the price that cold brew can command when ordered from a coffee shop. That’s why we‘ve created so many ways to get your morning cold brew at a significant value within our stores, be it in the form of our many convenient cold brew concentrates, or, more recently, our Ready to Drink Black Cold Brew Coffee. It’s crafted for us by a renowned coffee supplier in Turkey, who’s able to produce bold, yet delightfully smooth Cold Brew at a scale that keeps prices down without sacrificing a single smidgen of quality. And since it comes in a single-serve can, it’s ideal for grabbing and enjoying on the go. Now that we can all appreciate.\n\nMade with a mix of Arabica beans from South and Central America, Trader Joe’s Ready to Drink Black Cold Brew Coffee is rich and robust, with a delicately fruity sweetness (though, we should add, it doesn’t contain any sweeteners) and an easy-going finish. When chilled, it tastes great right out of the can, and serves spectacularly well over ice, especially when accessorized with our Vanilla Cold Foam Creamer. And since each can sells for less than two bucks, there’ll be additional room in your budget to pair with a pastry from our bakery table, too...",
    "fun_tags": [
      "Alfresco Dining",
      "Backpack Ready",
      "Brunch All Day",
      "Rise & Shine"
    ],
    "ingredients": [
      "WATER",
      "ARABICA COFFEE",
      "NATURAL FLAVOR"
    ],
    "allergens": [
      "MAY CONTAIN MILK."
    ],
    "nutrition_facts": [
      {
        "servings_per_container": "Serves 1",
        "serving_size": "1 can (250mL)",
        "calories_per_serving": "10",
        "nutrients": [
          {
            "name": "Total Fat",
            "amount": "0g",
            "daily_value": "0%"
          },
          {
            "name": "Sodium",
            "amount": "0mg",
            "daily_value": "0%"
          },
          {
            "name": "Total Carbohydrate",
            "amount": "1g",
            "daily_value": "0%"
          },
          ...
        ]
      }
    ]
  }
}

Example with store_id:454

When the product isn't sold in the store, available is false and the price is not returned, as on the Trader Joe's website.

Example with store_id:454

JSON Example

{
  ...
  "product_results": {
    "product_id": "084844",
    "title": "Spaghetti",
    "link": "https://www.traderjoes.com/home/products/pdp/spaghetti-084844",
    "size": "16 Oz",
    "available": false,
    "characteristics": [
      "Kosher"
    ],
    ...
  }
}

Example with several nutrition_facts panels for product_id:090874

Example with several nutrition_facts panels for product_id:090874

JSON Example

{
  ...
  "product_results": {
    "product_id": "090874",
    "title": "Apple Blossoms®",
    ...
    "nutrition_facts": [
      {
        "title": "Per serving",
        "servings_per_container": "Serves 2",
        "serving_size": "1 piece (114g)",
        "calories_per_serving": "340",
        "nutrients": [
          {
            "name": "Total Fat",
            "amount": "17 g",
            "daily_value": "22%"
          },
          {
            "name": "Saturated Fat",
            "amount": "8 g",
            "daily_value": "40%"
          },
          {
            "name": "Trans Fat",
            "amount": "0 g"
          },
          ...
        ]
      },
      {
        "title": "Per container",
        "servings_per_container": "Serves 2",
        "serving_size": "1 piece (114g)",
        "calories_per_serving": "670",
        "nutrients": [
          {
            "name": "Total Fat",
            "amount": "33 g",
            "daily_value": "42%"
          },
          {
            "name": "Saturated Fat",
            "amount": "17 g",
            "daily_value": "85%"
          },
          {
            "name": "Trans Fat",
            "amount": "0 g"
          },
          ...
        ]
      }
    ]
  }
}

JSON Structure Overview

{
  ...
  "product_results": {
    "product_id": "String - Product ID (e.g. '080794')",
    "title": "String - Title of the product",
    "link": "String - Link to the product page",
    "categories": [
      {
        "name": "String - Name of the category",
        "link": "String - Link to the category page"
      },
      ...
    ],
    "price": "String - Price of the product. Not returned when the product is not available",
    "extracted_price": "Float - Extracted price of the product",
    "size": "String - Size of the product the price is for (e.g. '8.45 Fl Oz')",
    "available": "Boolean - Whether the product is available. With store_id, whether it's sold in that store",
    "characteristics": "Array of Strings - Characteristics of the product (e.g. 'Vegan', 'Gluten Free', 'Kosher')",
    "label": "String - Label shown on the product image (e.g. 'LIMITED TIME')",
    "images": "Array of Strings - Links to the product images",
    "description": "String - Description of the product",
    "fun_tags": "Array of Strings - Occasions listed under 'We Love This For...'",
    "ingredients": "Array of Strings - Ingredients of the product",
    "allergens": "Array of Strings - Allergen statements of the product",
    "nutrition_facts": [
      {
        "title": "String - Title of the nutrition panel (e.g. 'Per serving')",
        "servings_per_container": "String - Servings per container (e.g. 'Serves 2')",
        "serving_size": "String - Serving size (e.g. '1 piece (114g)')",
        "calories_per_serving": "String - Calories per serving",
        "nutrients": [
          {
            "name": "String - Name of the nutrient",
            "amount": "String - Amount of the nutrient per serving",
            "daily_value": "String - Percent daily value of the nutrient (e.g. '2%')"
          },
          ...
        ]
      },
      ...
    ]
  }
}