---
agentTools:
  projectIndex: https://copperx.readme.io/llms.txt
---

# List of products

Returns the list of products

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/api/v1/products": {
      "get": {
        "operationId": "ProductController_findAll",
        "summary": "List of products",
        "description": "Returns the list of products",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "example": 1,
            "description": "Page number. Starts from 1",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "example": 10,
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "createdAt",
            "required": false,
            "in": "query",
            "description": "Filter by created date",
            "example": {
              "gt": "2020-01-01"
            },
            "style": "deepObject",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/DateFilterDto"
            }
          },
          {
            "name": "ids",
            "required": false,
            "in": "query",
            "example": [
              "c3611c05-df51-4b47-b601-f2eac02f4ef0",
              "c3611c05-df51-4b47-b601-f2eac02f4ef2"
            ],
            "description": "Filter by id. Returns items with given ids",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visibility",
            "required": false,
            "in": "query",
            "description": "To filter products by visibility",
            "schema": {
              "$ref": "#/components/schemas/EntityVisibility"
            }
          },
          {
            "name": "isActive",
            "required": false,
            "in": "query",
            "description": "If true, only active products will be returned",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "url",
            "required": false,
            "in": "query",
            "description": "To filter products by url",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priceTypes",
            "required": false,
            "in": "query",
            "description": "To filter products by price type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "interval",
            "required": false,
            "in": "query",
            "description": "The interval at which to bill for this price. Only required for subscriptions",
            "schema": {
              "$ref": "#/components/schemas/Interval"
            }
          },
          {
            "name": "intervalCount",
            "required": false,
            "in": "query",
            "example": 1,
            "description": "It is used to determine the frequency at which the subscription is billed. Only required for subscriptions",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "priceCurrency",
            "required": false,
            "in": "query",
            "description": "To filter products by price currency",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PageDto"
                    },
                    {
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ProductDto"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDto"
                }
              }
            }
          }
        },
        "tags": [
          "Product"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    }
  },
  "info": {
    "title": "Copperx API",
    "description": "Copperx APIs allows you to access to manage payments, transactions and more in a simple way. Our APIs are easy to use and provide an intuitive APIs for developers to create powerful applications.",
    "version": "v0.0.0",
    "contact": {
      "name": "Copperx",
      "url": "https://t.me/+bVxXaalfhF8wMDFl",
      "email": "support@copperx.io"
    }
  },
  "servers": [
    {
      "url": "https://api.copperx.dev",
      "description": "Test"
    },
    {
      "url": "https://api.copperx.io",
      "description": "Production"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http"
      }
    },
    "schemas": {
      "ErrorDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "object"
          },
          "statusCode": {
            "type": "number"
          },
          "error": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "statusCode",
          "error"
        ]
      },
      "CryptoCurrency": {
        "type": "string",
        "enum": [
          "usdc",
          "usdt",
          "pyusd",
          "eurc",
          "brett",
          "dai",
          "btc",
          "eth",
          "matic",
          "bnb",
          "sol",
          "busd",
          "trx",
          "food",
          "bonk",
          "wif",
          "goat",
          "spx",
          "truf",
          "pengu"
        ]
      },
      "Interval": {
        "type": "string",
        "enum": [
          "day",
          "week",
          "month",
          "year"
        ]
      },
      "EntityVisibility": {
        "type": "string",
        "enum": [
          10,
          20
        ]
      },
      "PriceType": {
        "type": "string",
        "enum": [
          "one_time",
          "recurring",
          "streaming"
        ]
      },
      "BillingScheme": {
        "type": "string",
        "enum": [
          "per_unit"
        ]
      },
      "RecurringUsageType": {
        "type": "string",
        "enum": [
          "licensed"
        ]
      },
      "PublicProductDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the product. Displayed on the checkout page"
          },
          "description": {
            "type": "string",
            "description": "The description of the product. Displayed on the checkout page"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the product is currently active"
          },
          "images": {
            "maxItems": 8,
            "description": "The url of product images. Displayed on the checkout page",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "publicImages": {
            "description": "Product images with absolute public url",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitLabel": {
            "type": "string",
            "description": "The label of the unit of the product. Displayed on the checkout page"
          },
          "url": {
            "type": "string",
            "description": "The url of the product"
          },
          "defaultPriceId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "Product's default price id"
          },
          "metadata": {
            "type": "object",
            "description": "The metadata of the product"
          },
          "visibility": {
            "description": "The visibility of the product",
            "$ref": "#/components/schemas/EntityVisibility"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "PublicPriceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "billingScheme": {
            "description": "The billing scheme to use for this price",
            "$ref": "#/components/schemas/BillingScheme"
          },
          "currency": {
            "description": "The currency symbol",
            "$ref": "#/components/schemas/CryptoCurrency"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "Product's id"
          },
          "interval": {
            "description": "The interval at which to bill for this price. Only required for subscriptions",
            "$ref": "#/components/schemas/Interval"
          },
          "intervalCount": {
            "type": "number",
            "example": 1,
            "description": "It is used to determine the frequency at which the subscription is billed. Only required for subscriptions"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the price is currently active"
          },
          "usageType": {
            "description": "The usage type of the price.",
            "$ref": "#/components/schemas/RecurringUsageType"
          },
          "type": {
            "description": "The type of the price",
            "$ref": "#/components/schemas/PriceType"
          },
          "unitAmount": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The unit amount in 8 decimals, represented as a whole integer. If not provided, the unit amount will be calculated from unit_amount_decimal."
          },
          "unitAmountDecimal": {
            "type": "string"
          },
          "customUnitMax": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The maximum amount that can be billed per unit for this price. Only if unit amount is not provided"
          },
          "customUnitMin": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The minimum amount that can be billed per unit for this price. Only if unit amount is not provided"
          },
          "customPreset": {
            "format": "int64",
            "type": "integer",
            "example": "9223372036854775807",
            "description": "The default amount to fill in the amount field for this price on checkout. Only if unit amount is not provided"
          },
          "customUnitAmountSuggestions": {
            "description": "Amount suggestions for this price. Only if unit amount is not provided",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "product": {
            "description": "The product this price belongs to",
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicProductDto"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object in a structured format."
          },
          "visibility": {
            "description": "The visibility of the price. If dashboard, the price is visible in the dashboard",
            "$ref": "#/components/schemas/EntityVisibility"
          }
        },
        "required": [
          "id",
          "currency",
          "productId",
          "type",
          "product"
        ]
      },
      "DateFilterDto": {
        "type": "object",
        "properties": {
          "isnull": {
            "type": "boolean",
            "description": "Returns null values"
          },
          "notnull": {
            "type": "boolean",
            "description": "Returns not null values"
          },
          "gt": {
            "format": "date-time",
            "type": "string",
            "description": "Returns values greater than the given date"
          },
          "gte": {
            "format": "date-time",
            "type": "string",
            "description": "Returns values greater than or equal to the given date"
          },
          "lt": {
            "format": "date-time",
            "type": "string",
            "description": "Returns values less than the given date"
          },
          "lte": {
            "format": "date-time",
            "type": "string",
            "description": "Returns values less than or equal to the given date"
          }
        }
      },
      "PaginationFilterDto": {
        "type": "object",
        "properties": {
          "page": {
            "type": "number",
            "minimum": 1,
            "example": 1,
            "default": 1,
            "description": "Page number. Starts from 1"
          },
          "limit": {
            "type": "number",
            "minimum": 1,
            "maximum": 200,
            "example": 10,
            "default": 200,
            "description": "Number of items per page"
          },
          "createdAt": {
            "description": "Filter by created date",
            "example": {
              "gt": "2020-01-01"
            },
            "allOf": [
              {
                "$ref": "#/components/schemas/DateFilterDto"
              }
            ]
          }
        }
      },
      "PageDto": {
        "type": "object",
        "properties": {
          "page": {
            "type": "number",
            "example": 1,
            "default": 1,
            "description": "Page number. Starts from 1"
          },
          "limit": {
            "type": "number",
            "example": 10,
            "default": 200,
            "description": "Number of items per page"
          },
          "count": {
            "type": "number",
            "example": 1
          },
          "hasMore": {
            "type": "boolean"
          },
          "query": {
            "$ref": "#/components/schemas/PaginationFilterDto"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "page",
          "limit",
          "count",
          "hasMore",
          "data"
        ]
      },
      "ProductDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the product. Displayed on the checkout page"
          },
          "description": {
            "type": "string",
            "description": "The description of the product. Displayed on the checkout page"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the product is currently active"
          },
          "images": {
            "maxItems": 8,
            "description": "The url of product images. Displayed on the checkout page",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "publicImages": {
            "description": "Product images with absolute public url",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitLabel": {
            "type": "string",
            "description": "The label of the unit of the product. Displayed on the checkout page"
          },
          "url": {
            "type": "string",
            "description": "The url of the product"
          },
          "defaultPriceId": {
            "type": "string",
            "format": "uuid",
            "example": "c3611c05-df51-4b47-b601-f2eac02f4ef0",
            "description": "Product's default price id"
          },
          "metadata": {
            "type": "object",
            "description": "The metadata of the product"
          },
          "visibility": {
            "description": "The visibility of the product",
            "$ref": "#/components/schemas/EntityVisibility"
          },
          "defaultPrice": {
            "description": "The default price of the product",
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicPriceDto"
              }
            ]
          }
        },
        "required": [
          "id",
          "name"
        ]
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "_id": {
    "buffer": {
      "0": 99,
      "1": 181,
      "2": 177,
      "3": 27,
      "4": 23,
      "5": 171,
      "6": 139,
      "7": 0,
      "8": 127,
      "9": 93,
      "10": 212,
      "11": 76
    }
  }
}
```