# Get product details (https://developer.godaddy.com/en/docs/references/rest/shopping/get-product)

---
title: Get product details
description: Retrieve details for one product by ID.
full: true
---

Full description

> Retrieve details for one product by ID. The current catalog does not support option selection or preference-based narrowing; send only `id`. Use catalog search to discover products.

## POST /catalog/product

Get product details

Retrieve details for one product by ID. The current catalog does not support option selection or preference-based narrowing; send only `id`. Use catalog search to discover products.


### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `Request-Id` | string <uuid> | yes | For tracing the request across network layers and components. |

### Request body (required)

Content-Type: `application/json`

```json
{
  "id": "hosting-deluxeapi"
}
```

Schema:

- schema reference: `#/components/schemas/get_product_request`

### Responses

**200** — Product detail or an error envelope.

Content-Type: `application/json`

```json
{
  "ucp": {
    "version": "2026-04-08",
    "capabilities": {
      "dev.ucp.shopping.catalog.lookup": [
        {
          "version": "2026-04-08"
        }
      ],
      "com.godaddy.shopping.input": [
        {
          "version": "2026-04-08"
        }
      ],
      "com.godaddy.shopping.catalog_action": [
        {
          "version": "2026-04-08"
        }
      ],
      "com.godaddy.shopping.catalog_offer": [
        {
          "version": "2026-04-08"
        }
      ]
    }
  },
  "product": {
    "id": "hosting-deluxeapi",
    "title": "Web Hosting Deluxe — Monthly",
    "description": {
      "plain": "Web Hosting on the Deluxe plan, which also includes Node.js Hosting for deploying your app. Billed monthly with automatic renewal."
    },
    "categories": [
      {
        "value": "webHosting"
      }
    ],
    "price_range": {
      "min": {
        "amount": 1099,
        "currency": "USD"
      },
      "max": {
        "amount": 1099,
        "currency": "USD"
      }
    },
    "variants": [
      {
        "id": "hosting-deluxeapi:1mo",
        "title": "Web Hosting Deluxe — 1 Month",
        "description": {
          "plain": "Web Hosting Deluxe, 1-month term."
        },
        "price": {
          "amount": 1099,
          "currency": "USD"
        },
        "list_price": {
          "amount": 1099,
          "currency": "USD"
        },
        "availability": {
          "available": true
        },
        "options": [
          {
            "name": "Term",
            "id": "1mo",
            "label": "1 Month"
          }
        ]
      }
    ]
  }
}
```

Schema:

- oneOf(unknown | unknown)

**400** — Request validation or caller-correctable business error.

Content-Type: `application/json`

```json
{
  "ucp": {
    "version": "2026-04-08",
    "status": "error"
  },
  "messages": [
    {
      "type": "error",
      "code": "invalid_request",
      "content": "Lookup request must include at least one id.",
      "severity": "recoverable"
    }
  ]
}
```

Schema:

- schema reference: `#/components/schemas/error_response`

**401** — Missing or invalid credentials.

**403** — Authenticated credential lacks the required Shopping scope.

**404** — Resource does not exist.

Content-Type: `application/json`

```json
{
  "ucp": {
    "version": "2026-04-08",
    "status": "error"
  },
  "messages": [
    {
      "type": "error",
      "code": "product_not_found",
      "content": "Product not found: not-a-real-product",
      "severity": "unrecoverable"
    }
  ]
}
```

Schema:

- schema reference: `#/components/schemas/error_response`

**422** — Request is syntactically valid but cannot be processed in its current state.

Content-Type: `application/json`

```json
{
  "ucp": {
    "version": "2026-04-08",
    "status": "error"
  },
  "messages": [
    {
      "type": "error",
      "code": "unsupported_currency",
      "content": "Currency not supported: ZZZ",
      "severity": "recoverable"
    }
  ]
}
```

Schema:

- schema reference: `#/components/schemas/error_response`

**429** — Too many requests.

**Security:** requires `bearerAuth`.
