comecerodocs

List products

GET
/products

Returns your products, sorted by name unless you choose another sort_by. Deleted products are left out unless you send deleted=true. Prices come back in one currency: the cart's or invoice's currency when you send cart_id or invoice_id, else the currency you send, else a currency guessed from country or the shopper's IP address, else the account's default. Secret, trusted and limited tokens may call it. This is the one list a limited token may read, so a shop can show its catalog before anyone signs in. For a limited token the list always holds only active, visible, not deleted products, whatever filters you send.

Authorization

headerAuthorizationBearer <token>

A secret, trusted or limited token. See Authentication.

Query Parameters

offset?integer

For offset-based lists, how many items to skip before the page starts. Use next_page_offset or previous_page_offset from the page you have. A value that is not a whole number is a 400.

Range0 <= value
Default0
limit?integer

How many items to return on one page, from 1 to 100. The default is 100. A value outside 1 to 100, or one that is not a whole number, is a 400.

Range1 <= value <= 100
Default100
sort_by?string

The field to sort by. The default is name.

Value in"name""date_created""date_modified""active""deleted""hidden"
desc?boolean

Sort in descending order (newest, largest or last first) when true. The default is false. A value other than true or false is a 400.

Defaultfalse
expand?string

Comma-separated child objects to return in full instead of as a URL, for example customer,payments. Use dot notation for nested objects (items.product), up to four levels deep. A single object takes up to 12 paths; a list takes up to 2, applied to every item. Extra paths are dropped without an error. See Expanding objects.

show?string

Comma-separated fields to return; all others are left out. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.

hide?string

Comma-separated fields to leave out of the response. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.

formatted?boolean

When true, the object also has a formatted child with amounts and dates as display text in the shopper's language and currency (for example $19.99 or November 7, 2026). The default is false. See Localized formatting.

Defaultfalse
q?string

Search text. An exact product id returns that product; otherwise products whose name contains the text (any case) are returned.

active?boolean

Only products with this active value. Always true for a limited token.

hidden?boolean

Only products with this hidden value. Always false for a limited token.

deleted?boolean

Send true to include deleted products as well. Any other value, or none, leaves them out. Always false for a limited token.

currency?string

The ISO 4217 currency to price the products in. It must be a currency the account can take payment in, or the request fails with 400.

country?string

A two-letter ISO country code. Prices come back in that country's currency when the account supports it, else in the account's default currency.

cart_id?string

Price the products in this cart's currency and exchange rate, so the list matches what the shopper will pay. Ignored if the token may not read the cart.

invoice_id?string

Price the products in this invoice's currency and exchange rate. Ignored if the token may not read the invoice.

user_locale?string

The shopper's language, such as de or ja-JP, used to pick a translation. When left out, the Accept-Language header is used for limited and trusted tokens.

Response Body

A page of products.

application/json
  1. response

A page of products. An offset-based list.

total_items*integer

The number of items that match, across all pages.

total_pages*integer

The number of pages.

current_page*integer

The number of this page.

next_page_url*|

The URL of the next page, or null on the last page.

Formaturi
next_page_offset*|

The offset of the next page, or null on the last page.

previous_page_url*|

The URL of the previous page, or null on the first page.

Formaturi
previous_page_offset*|

The offset of the previous page, or null on the first page.

current_page_url*string

The URL of this page.

Formaturi
data*array<>

The items on this page.

Example Request
curl -X GET 'https://api.comecero.com/api/v1/products'
Example Response
{  "total_items": 1,  "total_pages": 1,  "current_page": 1,  "next_page_url": null,  "next_page_offset": null,  "previous_page_url": null,  "previous_page_offset": null,  "current_page_url": "https://api.comecero.com/api/v1/products?offset=0",  "data": [    {      "object": "product",      "url": "https://api.comecero.com/api/v1/products/widget.test",      "product_id": "widget.test",      "date_created": "2026-11-02T14:36:52Z",      "date_modified": "2026-11-02T14:36:52Z",      "test": true,      "account_id": "AB1234",      "name": "Widget",      "price": 49.95,      "currency": "USD",      "compare_at_price": null,      "type": "physical",      "description": "A simple widget for everyday use.",      "headline": null,      "tax_code": null,      "prices": [        {          "price": 49.95,          "currency": "USD"        }      ],      "compare_at_prices": [],      "volume_prices": [],      "effective_volume_prices": [],      "inventory": null,      "bundle_items": [],      "weight": {        "amount": 3,        "unit": "lb"      },      "active": true,      "deleted": false,      "hidden": false,      "date_deleted": null,      "file": null,      "has_file": false,      "license_service": null,      "has_license_service": false,      "subscription_plan": null,      "subscription_terms": null,      "images": [],      "video_url": null,      "related_products": "https://api.comecero.com/api/v1/products/widget.test/related_products",      "subscription_change_products": "https://api.comecero.com/api/v1/products/widget.test/subscription_change_products",      "subscription_term_change_products": "https://api.comecero.com/api/v1/products/widget.test/subscription_term_change_products",      "meta": null,      "translations": null    }  ]}