List products
Lists the account's reusable base catalog.
This collection is the entry point for browsing the account's base catalog. It does not mix external offers or balances: inventory belongs to Variants and offers belong to Listings.
Use the returned pagination object to traverse results; do not assume the first result is the only Product with a particular title. For operational queries, filter by status=active; use status=archived when you need to find retired records without losing history.
After choosing a Product, list its Variants to see which combinations can be bound to listings or moved in inventory.
api_keyAuthorizationBearer <token>API key (mk_...)
page?integerPage number, starting at 1. Defaults to 1. A page beyond pagination.totalPages is not an error: it returns empty data.
1 <= value <= 90071992547409911pageSize?integerItems per page, from 1 to 100. Defaults to 20.
1 <= value <= 10020status?stringOnly products in this lifecycle state.
"active""archived"A page of products, newest first.
application/json- response
One page of products.
data*array<>Products in this page, newest first.
pagination*Where this page sits in the whole listing: the totals and whether there are pages before and after it.
curl -X GET "https://example.com/v1/products"{ "data": [ { "id": "a0f0ce59-5d17-49bf-8b45-d1dc057daab4", "sellerId": "3d1c8a52-7f0e-4b0a-8a65-9c1b2f6d7e01", "status": "active", "content": { "title": { "pt-BR": "iPhone 16" } }, "identity": { "brand": "Apple", "model": "iPhone 16" }, "attributes": [], "physical": null, "fiscal": {}, "compliance": { "certifications": [], "warnings": [] }, "metadata": {}, "media": [], "createdAt": "2026-10-10T12:00:00.000Z", "updatedAt": "2026-10-10T12:00:00.000Z" } ], "pagination": { "page": 1, "pageSize": 20, "totalItems": 57, "totalPages": 3, "hasNext": true, "hasPrev": false }}