# Search the catalog (https://developer.godaddy.com/en/docs/references/rest/shopping/search-catalog)

---
title: Search the catalog
description: Search available catalog products by free-text query or filters.
full: true
---

Full description

> Search available catalog products by free-text query or filters. The request body is optional; an empty request returns the available catalog. Results use cursor pagination.

## POST /catalog/search

Search the catalog

Search available catalog products by free-text query or filters. The request body is optional; an empty request returns the available catalog. Results use cursor pagination.


### Header parameters

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

### Request body

Content-Type: `application/json`

```json
{
  "context": {
    "address_country": "US",
    "currency": "USD",
    "language": "en"
  },
  "pagination": {
    "limit": 20
  }
}
```

Schema:

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

### Responses

**200** — Search results or an error envelope.

Content-Type: `application/json`

```json
{
  "ucp": {
    "version": "2026-04-08",
    "capabilities": {
      "dev.ucp.shopping.catalog.search": [
        {
          "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"
        }
      ]
    }
  },
  "products": [
    {
      "id": "hosting-economyapi",
      "title": "Web Hosting Economy — Monthly",
      "description": {
        "plain": "Web Hosting on the Economy plan, which also includes Node.js Hosting for deploying your app. Billed monthly with automatic renewal."
      },
      "categories": [
        {
          "value": "webHosting"
        }
      ],
      "price_range": {
        "min": {
          "amount": 799,
          "currency": "USD"
        },
        "max": {
          "amount": 799,
          "currency": "USD"
        }
      },
      "variants": [
        {
          "id": "hosting-economyapi:1mo",
          "title": "Web Hosting Economy — 1 Month",
          "description": {
            "plain": "Web Hosting Economy, 1-month term."
          },
          "price": {
            "amount": 799,
            "currency": "USD"
          },
          "list_price": {
            "amount": 799,
            "currency": "USD"
          },
          "availability": {
            "available": true
          },
          "options": [
            {
              "name": "Term",
              "id": "1mo",
              "label": "1 Month"
            }
          ]
        }
      ]
    },
    {
      "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"
            }
          ]
        }
      ]
    },
    {
      "id": "hosting-ultimateapi",
      "title": "Web Hosting Ultimate — Monthly",
      "description": {
        "plain": "Web Hosting on the Ultimate plan, which also includes Node.js Hosting for deploying your app. Billed monthly with automatic renewal."
      },
      "categories": [
        {
          "value": "webHosting"
        }
      ],
      "price_range": {
        "min": {
          "amount": 1599,
          "currency": "USD"
        },
        "max": {
          "amount": 1599,
          "currency": "USD"
        }
      },
      "variants": [
        {
          "id": "hosting-ultimateapi:1mo",
          "title": "Web Hosting Ultimate — 1 Month",
          "description": {
            "plain": "Web Hosting Ultimate, 1-month term."
          },
          "price": {
            "amount": 1599,
            "currency": "USD"
          },
          "list_price": {
            "amount": 1599,
            "currency": "USD"
          },
          "availability": {
            "available": true
          },
          "options": [
            {
              "name": "Term",
              "id": "1mo",
              "label": "1 Month"
            }
          ]
        }
      ]
    }
  ],
  "pagination": {
    "has_next_page": false,
    "total_count": 3
  }
}
```

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`.
