# Get product list

By using this method, merchants can find products and <a href="https://docs.solidgate.com/billing/manage-products/#retrieve-product-details" target="_blank">retrieve their details</a> by applying filters such as product identifier, status, trial availability, and sorting criteria with pagination support.

Endpoint: GET /products
Version: 1.0.0
Security: MerchantID

## Query parameters:

  - `filter[id]` (string)
    Specify the comma-separated ids of products.

  - `filter[status]` (string)

  - `filter[has_trial]` (boolean)

  - `pagination[limit]` (integer)

  - `pagination[offset]` (integer)

## Header parameters:

  - `merchant` (string, required)

  - `signature` (string, required)

## Response 200 fields (application/json):

  - `data` (array)
    Contains an array of product data, each representing a specific price configuration.

  - `data.id` (string, required)
    Unique product identifier.
    Example: cb43b415-5522-4373-b026-a365462f9114

  - `data.name` (string, required)
    Product name.
    Example: Luxury product

  - `data.type` (string, required)
    Specifies whether the product is a one-time purchase or a subscription product.
    Enum: "one-time"

  - `data.description` (string, required)
    Product description.
    Example: This product is the best product all over the world

  - `data.public_description` (string)
    Product description for customers.
    Example: That cool product that you have bought

  - `data.status` (string, required)
    Product status.
Cannot be changed if a subscription exists for the product.
    Enum: "active", "disabled", "archived"

  - `data.created_at` (string, required)
    Datetime of the product creation.
    Example: 2025-05-31 12:53:12

  - `data.updated_at` (string, required)
    Datetime of the product update.
    Example: 2025-05-31 12:53:13

  - `data.payment_action` (string, required)
    Payment processing flow applied to the transaction.
    Enum: "auth_settle"

  - `data.settle_interval` (integer)
    Delay before automatic transaction settlement in hours.
If the product has a trial, this field does not affect the first payments but influences recurring ones processed with auth_settle.If there is no trial, this field defines the interval for the first auth_settle payment.
    Example: 48

  - `data.tax` (object)
    Contains product tax details.

  - `data.tax.category_id` (string, required)
    Unique tax category identifier.
    Example: taxc_01JJVD231C879QBHVTVCWJ1K2A

  - `data.tax.behavior` (string)
    Defines how taxes are applied to product prices and shown to customers.
included or excluded tax behavior takes priority over tax rules configured for locations.
    Enum: "location_preset", "included", "excluded"

  - `pagination` (object)
    Contains information about the pagination of the results.

  - `pagination.offset` (integer, required)
    Starting index of the returned results.
    Example: 20

  - `pagination.limit` (integer, required)
    Maximum number of items to return.
    Example: 10

  - `pagination.total_count` (integer, required)
    Total count of the products available.
    Example: 150

## Response 400 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code.
    Example: 2.01

  - `error.message` (string, required)
    Error message.
    Example: Validation error

## Response 401 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code indicating the specific authorization failure.
    Example: 1.01

  - `error.message` (string, required)
    Descriptive message providing more details about the authorization failure.
    Example: Authorization failed

## Response 403 fields (application/json):

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Error code indicating that access to the service is denied.
    Example: 1.02

  - `error.message` (string, required)
    Message informing that the service is not allowed for the account.
    Example: Access denied

