---
title: Product API reference
description: >-
  Learn about the calls that the Ajax Product API can make and the responses it
  will return.
source_url:
  html: 'https://shopify.dev/docs/api/ajax/reference/product'
  md: 'https://shopify.dev/docs/api/ajax/reference/product.md'
---

# Product API reference

You can make a `GET` request for the information of any product using the Ajax Product API.

All Ajax API requests should use [locale-aware URLs](https://shopify.dev/docs/api/ajax#locale-aware-urls) to give visitors a consistent experience.

***

## GET /{locale}/products/{product-handle}.​js

Get the JSON of a product using the product [handle](https://shopify.dev/docs/api/liquid/basics/handle).

All monetary properties are returned in the customer's presentment currency. To check the customer's presentment currency, you can use the `currency` field of the `/{locale}/cart.js` endpoint. To learn more about selling in multiple currencies, see [Support multiple currencies and languages](https://shopify.dev/docs/storefronts/themes/markets/multiple-currencies-languages).

### Example

```js
fetch(window.Shopify.routes.root + 'products/red-rain-coat.js')
.then(response => response.json())
.then(product => alert('The title of this product is ' + product.title));
```

***

## Response

The JSON of the product.

Example:

```json
{
"id": 329678821,
"title": "Red Rain Coat",
"handle": "red-rain-coat",
"description": "<p>Lorem Ipsum.</p>",
"published_at": "2014-06-12T16:28:11-04:00",
"created_at": "2014-06-12T16:28:13-04:00",
"vendor": "Shopify",
"type": "Coat",
"tags": [
  "Spring"
],
"price": 12900,
"price_min": 12900,
"price_max": 12900,
"available": true,
"price_varies": false,
"compare_at_price": null,
"compare_at_price_min": 0,
"compare_at_price_max": 0,
"compare_at_price_varies": false,
"variants": [
  {
    "id": 794864229,
    "title": "Small",
    "options": [
      "Small"
    ],
    "option1": "Small",
    "option2": null,
    "option3": null,
    "price": 12900,
    "weight": 0,
    "compare_at_price": null,
    "inventory_management": "shopify",
    "available": true,
    "sku": null,
    "requires_shipping": true,
    "taxable": true,
    "barcode": "49738645"
  },
  {
    "id": 794864233,
    "title": "Medium",
    "options": [
      "Medium"
    ],
    "option1": "Medium",
    "option2": null,
    "option3": null,
    "price": 12900,
    "weight": 0,
    "compare_at_price": null,
    "inventory_management": "shopify",
    "available": true,
    "sku": null,
    "requires_shipping": true,
    "taxable": true,
    "barcode": "49738657"
  },
  {
    "id": 794864237,
    "title": "Large",
    "options": [
      "Large"
    ],
    "option1": "Large",
    "option2": null,
    "option3": null,
    "price": 12900,
    "weight": 0,
    "compare_at_price": null,
    "inventory_management": "shopify",
    "available": true,
    "sku": null,
    "requires_shipping": true,
    "taxable": true,
    "barcode": "49738673"
  }
],
"images": [
  "//cdn.shopify.com/s/files/1/0040/7092/products/red-rain-coat.jpeg?v=1402604893"
],
"featured_image": "//cdn.shopify.com/s/files/1/0040/7092/products/red-rain-coat.jpeg?v=1402604893",
"options": [
  {
    "name": "Size",
    "position": 1
  }
],
"url": "/products/red-rain-coat"
}
```

**Note:**

The JSON of the product can contain a maximum of 250 variants in the variants array.

### Selling plan example

Products with selling plans will have the following additional properties available at `/{locale}/products/<handle>.js`.

```json
{
"id":5290511958181,
// ...
"variants":[
  {
     "id":34620489400485,
     // ...
     "requires_selling_plan":false,
     "selling_plan_allocations":[
        {
           "price":3120,
           "compare_at_price":3900,
           "per_delivery_price":3120,
           "selling_plan_id":360613,
           "selling_plan_group_id":14699254537353206000
        },
        {
           "price":3510,
           "compare_at_price":3900,
           "per_delivery_price":3510,
           "selling_plan_id":393381,
           "selling_plan_group_id":14699254537353206000
        }
     ]
  }
],
"requires_selling_plan":false,
"selling_plan_groups":[
  {
     "id":14699254537353206000,
     "name":"Subscribe and Save",
     "options":[
        {
           "name":"Delivery Frequency",
           "position":1,
           "values":[
              "Month",
              "Week"
           ]
        },
        {
           "name":"Billing Frequency",
           "position":2,
           "values":[
              "Month",
              "Week"
           ]
        }
     ],
     "selling_plans":[
        {
           "id":360613,
           "name":"Pay every month, delivery every month | save 20%",
           "description":"No commitment · Auto-renews · Skip or cancel anytime",
           "options":[
              {
                 "name":"Delivery Frequency",
                 "position":1,
                 "value":"Month"
              },
              {
                 "name":"Billing Frequency",
                 "position":2,
                 "value":"Month"
              }
           ],
           "recurring_deliveries":true
        },
        {
```

***
