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](/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](/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](/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
          },
          {
```