---
updatedAt: 2026-08-25T16:15:22.000Z
agentTools:
  projectIndex: https://developers.jasper.ai/llms.txt
---

# Retrieve Products

Retrieve Products in your workspace.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "paths": {
    "/v1/products": {
      "get": {
        "description": "Retrieve Products in your workspace.",
        "operationId": "getAllProducts",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "The page number to return (1-based).",
            "schema": {
              "default": 1,
              "example": 1,
              "type": "number"
            }
          },
          {
            "name": "size",
            "required": false,
            "in": "query",
            "description": "The number of products to return per page.",
            "schema": {
              "maximum": 100,
              "default": 10,
              "example": 10,
              "type": "number"
            }
          },
          {
            "name": "searchTerm",
            "required": false,
            "in": "query",
            "description": "Case-insensitive search over product name and category names.",
            "schema": {
              "example": "enterprise",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. May be missing required inputs or may have badly formatted inputs."
          },
          "401": {
            "description": "Unauthorized access to the workspace."
          },
          "403": {
            "description": "Product IQ is not enabled for this workspace."
          },
          "500": {
            "description": "Internal server error. Unable to get products."
          }
        },
        "security": [
          {
            "X-API-Key": []
          },
          {
            "oauth2": [
              "user"
            ]
          }
        ],
        "summary": "Retrieve Products",
        "tags": [
          "Products"
        ]
      }
    }
  },
  "info": {
    "title": "Jasper API",
    "description": "Jasper API",
    "version": "1.0",
    "contact": {}
  },
  "tags": [
    {
      "name": "Products",
      "description": ""
    }
  ],
  "servers": [
    {
      "url": "https://api.jasper.ai"
    }
  ],
  "components": {
    "securitySchemes": {
      "X-API-Key": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Workspace authentication using API key tokens in the X-API-Key header."
      },
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://api.jasper.ai/oauth2/authorize",
            "tokenUrl": "https://api.jasper.ai/oauth2/token",
            "refreshUrl": "https://api.jasper.ai/oauth2/token",
            "scopes": {
              "user:read": "Read user information",
              "user": "Read and write user information"
            }
          }
        },
        "description": "User-level authentication using OAuth bearer tokens in the Authorization header."
      }
    },
    "schemas": {
      "ProductAttributeValueData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The attribute ID.",
            "example": "atr_535B1EC15F5F41EAB1B400E9ED4077B6"
          },
          "name": {
            "type": "string",
            "description": "The attribute name.",
            "example": "Overview"
          },
          "type": {
            "type": "string",
            "description": "The attribute's normalized core type (matches the `type` from `GET /products/attributes`), or null when unresolved. List-mode attributes report their core type here and return an array `value`.",
            "enum": [
              "TEXT_SHORT",
              "TEXT_LONG",
              "NUMBER",
              "DATE",
              "BOOLEAN",
              "ENUM",
              "KEY_VALUE",
              "JSON",
              "CONTEXT_SOURCE_LIST"
            ],
            "nullable": true,
            "example": "TEXT_LONG"
          },
          "isList": {
            "type": "boolean",
            "description": "Whether the attribute holds a list of values (matches `GET /products/attributes`). When true, `value` is an array.",
            "example": false
          },
          "value": {
            "description": "The attribute value, typed to match `type`: a string (`TEXT_SHORT`/`TEXT_LONG`/`DATE`, and the option label for `ENUM`), a number (`NUMBER`), a boolean (`BOOLEAN`), an object (`KEY_VALUE`/`JSON`), an array of source IDs (`CONTEXT_SOURCE_LIST`, e.g. `Images` — expand one with `GET /v1/context-sources/{sourceId}`), or — for list-mode attributes — an array of the above (e.g. option labels for a multi-select). Null when the attribute is unset.",
            "nullable": true,
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "object"
              },
              {
                "type": "array",
                "items": {
                  "type": "object"
                }
              }
            ],
            "example": "A longer product overview…"
          }
        },
        "required": [
          "id",
          "name",
          "isList"
        ]
      },
      "ProductData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique product ID (`prd_`, or legacy `itm_`).",
            "example": "prd_073D2D49094A4AED991A47B614522579"
          },
          "processingState": {
            "type": "string",
            "description": "Processing state of the product.",
            "enum": [
              "inProgress",
              "complete",
              "error"
            ],
            "example": "complete"
          },
          "accessLevel": {
            "type": "string",
            "description": "Who can access the product.",
            "enum": [
              "PRIVATE",
              "PUBLIC"
            ],
            "example": "PRIVATE"
          },
          "contextSourceIds": {
            "description": "The IDs of the sources the product itself was generated from, which are managed in the web app and not settable via this API. Empty when none are attached. Expand one with `GET /v1/context-sources/{sourceId}`. This is separate from the sources held by a `CONTEXT_SOURCE_LIST` attribute such as `Images`, which appear under `attributes` and can be set through this API.",
            "example": [
              "csc_073D2D49094A4AED991A47B614522579"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "attributes": {
            "description": "The product's attribute values, including the product name (the `Name` attribute). Categories are included here as the `Categories` attribute (an array of category names).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttributeValueData"
            }
          },
          "createdAt": {
            "type": "string",
            "example": "2026-06-30T15:38:00.474Z"
          },
          "updatedAt": {
            "type": "string",
            "example": "2026-06-30T15:38:00.474Z"
          }
        },
        "required": [
          "id",
          "processingState",
          "accessLevel",
          "contextSourceIds",
          "attributes",
          "createdAt",
          "updatedAt"
        ]
      },
      "ProductPaginationDto": {
        "type": "object",
        "properties": {
          "totalRecords": {
            "type": "number",
            "description": "Total number of matching records.",
            "example": 42
          },
          "page": {
            "type": "number",
            "description": "The current page number (1-based).",
            "example": 1
          },
          "pageSize": {
            "type": "number",
            "description": "The number of records per page.",
            "example": 10
          },
          "next": {
            "type": "object",
            "description": "URL for the next page, or null on the last page.",
            "nullable": true
          },
          "prev": {
            "type": "object",
            "description": "URL for the previous page, or null on the first page.",
            "nullable": true
          }
        },
        "required": [
          "totalRecords",
          "page",
          "pageSize"
        ]
      },
      "ProductResponseDto": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "example": "bce766ea-a4ef-48e5-9da1-d9602bfecf2d"
          },
          "resource": {
            "type": "string",
            "example": "products"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductData"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/ProductPaginationDto"
          }
        },
        "required": [
          "requestId",
          "resource",
          "data"
        ]
      }
    }
  },
  "x-readme": {
    "metrics-enabled": false
  }
}
```