# Get product list

By using this method, merchants can find products and retrieve their details by applying filters such as product identifier, status, trial availability, and sorting criteria with pagination support.

Endpoint: GET /products
Version: 1.0.0
Security: merchant, signature

## Security:

  - `merchant` (unknown)
    apiKey in header merchant

  - `signature` (unknown)
    apiKey in header signature

## 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:

  - `200` (unknown)
    Product data

## 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"

  - `data.metadata` (object)
    Metadata for storing additional, structured information about the product, such as access duration, plan tier, or feature flags.
Supports up to 50 key-value pairs:Keys can be up to 40 characters (letters, digits, hyphens, and underscores)Values can be up to 500 characters
    Example: {"access_duration":"30d","plan_tier":"premium"}

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

  - `400` (unknown)
    Bad request

## 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

  - `error.constraints` (object)
    Map of constraints.

## Response 401:

  - `401` (unknown)
    Unauthorized

## 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:

  - `403` (unknown)
    Access denied

## 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

## Response 200 examples:

  - `Product-based payment` (unknown)

  - `Subscription payment` (unknown)

