---
search:
  tags:
    - Products
    - GET
seo:
  description: >-
    Searches published products by free-text term, supplier, category, and
    physical dimensions. Returns… Reference for the GET /products endpoint in
    the Sibi API.
sidebar:
  label: Search the product catalog
  badge: GET
title: Search the product catalog
type: openapi-operation
---
Searches published products by free-text term, supplier, category, and physical dimensions. Returns a page of product summaries; supply an address to include pricing, availability (with the per-distribution-center breakdown), recommended parts, add-ons, and warranties, and set `includeAvailableFulfillmentMethods` to add fulfillment methods. Warning: resolving fulfillment methods is slow and grows with the number of matching products, so on a broad search term the request can time out and return a 500. Narrow the search to specific SKUs before turning the flag on. `after` is an opaque cursor from a previous response; do not construct one by hand. Requires a Public REST API token that carries the `read:products` scope. Create one in the SIBI developer dashboard (developer.sibipro.com) and grant it that scope; tokens issued for the GraphQL API are refused.

`GET /products`

**Responses**

- `200` — Search results retrieved successfully
- `400` — Bad request - a query parameter this operation does not accept (UNKNOWN\_QUERY\_PARAMETER), or invalid input data
- `401` — Unauthorized - Missing or invalid authentication
- `403` — Forbidden - the token was minted for the other environment, is not a Public REST API token, or does not carry the scope this operation requires
- `500` — Internal server error
- `503` — Service unavailable - the token-exchange service could not be reached (AUTH\_UNAVAILABLE) or supplier visibility could not be resolved (SUPPLIER\_VALIDATION\_UNAVAILABLE); retry the request
- `504` — The request timed out

Response example, 200:

```json
{
  "items": [
    {
      "sku": "string",
      "supplier": "ge",
      "name": "string",
      "shortDescription": "string",
      "description": "string",
      "imageUrls": [
        "string"
      ],
      "viewUrl": "https://web.sibipro.com/properties/aB3dE5fG7hJ9kL1mN2pQr/shop/product/sibi-carrier-ZP31LXE-PFV-800",
      "category": "string",
      "subcategories": [
        "string"
      ],
      "attributes": [
        {
          "name": "sheen",
          "value": "Satin"
        }
      ],
      "baseUnitOfMeasure": "Each",
      "unitsOfMeasure": [
        {
          "unitOfMeasure": "Box",
          "quantityPerBaseUnit": 23.77
        }
      ],
      "options": [
        {
          "key": "ppg-paint-color",
          "value": "PPG1025-3",
          "name": "Whiskers",
          "hex": "#C9C7BE"
        }
      ],
      "dimensions": {
        "width": 0,
        "widthUnit": "in",
        "height": 0,
        "heightUnit": "in",
        "depth": 0,
        "depthUnit": "in",
        "length": 0,
        "lengthUnit": "in"
      },
      "availability": {
        "status": "IN_STOCK",
        "quantity": 0,
        "distributionCenters": [
          {
            "status": "IN_STOCK",
            "quantity": 0,
            "distributionCenter": {
              "id": "ge-dc-phoenix",
              "name": "GE Appliances Phoenix",
              "storeNumber": "string",
              "phone": "6233885100",
              "imageUrl": "string",
              "latitude": 0,
              "longitude": 0,
              "address": {
                "line1": "string",
                "line2": "string",
                "city": "string",
                "stateOrProvince": "string",
                "postalCode": "string"
              }
            }
          }
        ]
      },
      "priceCents": 0,
      "msrpPriceCents": 0,
      "recommendedParts": [
        {
          "sku": "M236",
          "name": "Supply Gas Range Flex",
          "category": "Parts",
          "priceCents": 0
        }
      ],
      "addOns": [
        {
          "id": "install",
          "name": "Install",
          "priceCents": 0,
          "products": [
            {
              "sku": "M001",
              "name": "Basic Install",
              "category": "Install & Supply Services",
              "priceCents": 0
            }
          ]
        }
      ],
      "warranties": [
        {
          "sku": "W5YR-APPL",
          "name": "5 Year Extended Warranty",
          "description": "Covers parts and labor for 5 years",
          "priceCents": 0
        }
      ],
      "availableFulfillmentMethods": [
        {
          "id": "ge-standard-delivery",
          "name": "Standard Delivery",
          "description": "string",
          "type": "DELIVERY",
          "estimatedFulfillmentDate": "2026-09-02",
          "distributionCenter": {
            "id": "ge-dc-phoenix",
            "name": "GE Appliances Phoenix",
            "storeNumber": "string",
            "phone": "6233885100",
            "imageUrl": "string",
            "latitude": 0,
            "longitude": 0,
            "address": {
              "line1": "string",
              "line2": "string",
              "city": "string",
              "stateOrProvince": "string",
              "postalCode": "string"
            }
          },
          "distributionCenters": [
            {
              "estimatedFulfillmentDate": "2026-09-02",
              "distributionCenter": {
                "id": "ge-dc-phoenix",
                "name": "GE Appliances Phoenix",
                "storeNumber": "string",
                "phone": "6233885100",
                "imageUrl": "string",
                "latitude": 0,
                "longitude": 0,
                "address": {
                  "line1": "string",
                  "line2": "string",
                  "city": "string",
                  "stateOrProvince": "string",
                  "postalCode": "string"
                }
              }
            }
          ]
        }
      ]
    }
  ],
  "next": "string"
}
```

Response example, 400 · invalidCursor:

```json
{
  "code": "INVALID_CURSOR",
  "message": "The `after` cursor is invalid or has expired."
}
```

Response example, 400 · invalidDimensionRange:

```json
{
  "code": "INVALID_DIMENSION_RANGE",
  "message": "minWidth (40) is greater than maxWidth (26) — no product can satisfy this range."
}
```

Response example, 400 · addressRequired:

```json
{
  "code": "ADDRESS_REQUIRED",
  "message": "An address is required when onlyInStock is true."
}
```

Response example, 400 · invalidSupplier:

```json
{
  "code": "INVALID_SUPPLIER",
  "message": "Unknown supplier \"Samsung\""
}
```

Response example, 400 · unknownQueryParameter:

```json
{
  "code": "UNKNOWN_QUERY_PARAMETER",
  "message": "Unknown query parameter: `catefory`. See the operation's documented query parameters.",
  "details": [
    {
      "field": "catefory",
      "error": "Unknown query parameter"
    }
  ]
}
```

Response example, 401:

```json
{
  "code": "UNAUTHORIZED",
  "message": "Missing authentication token"
}
```

Response example, 403 · environmentMismatch:

```json
{
  "code": "TOKEN_ENVIRONMENT_MISMATCH",
  "message": "A test token was used against the production API. Test tokens only work against the Sibi test environment; use a production token here."
}
```

Response example, 403 · restTokenRequired:

```json
{
  "code": "REST_TOKEN_REQUIRED",
  "message": "This endpoint only accepts Public REST API tokens. Create one at https://developer.sibipro.com."
}
```

Response example, 403 · insufficientScope:

```json
{
  "code": "INSUFFICIENT_SCOPE",
  "message": "The presented token is missing the `read:products` scope, which this endpoint requires. Create a token with the scopes you need at https://developer.sibipro.com."
}
```

Response example, 500:

```json
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "An unexpected error occurred"
}
```

Response example, 503 · authUnavailable:

```json
{
  "code": "AUTH_UNAVAILABLE",
  "message": "Authentication service unavailable, retry shortly"
}
```

Response example, 503 · supplierValidationUnavailable:

```json
{
  "code": "SUPPLIER_VALIDATION_UNAVAILABLE",
  "message": "Supplier visibility could not be determined. Retry the request."
}
```

Response example, 504:

```json
{
  "code": "GATEWAY_TIMEOUT",
  "message": "The request timed out. Try narrowing the request, for example with a smaller 'first', or try setting includeAvailableFulfillmentMethods to false to find a target sku first, before searching for its fulfillment, which is known to be slow.",
  "requestId": "0dd768c6-ee8b-4665-adb4-d66fa0a1a6a0"
}
```
