Skip to main content
GET
List products

Authorizations

Authorization
string
header
required

An app access token from POST /apps/oauth/token, valid 1 hour. An offline token acts as the app; an online token acts as the app on behalf of one dashboard user (the intersection of both permission sets).

Query Parameters

storeId
string

Only this store's rows. A store outside the installation's stores is 460 STORE_SCOPE_FORBIDDEN.

Pattern: ^\d{1,24}$
collectionId
string

Only the products of this collection (picked by hand or matching its conditions).

Pattern: ^\d{1,24}$
active
enum<string>

Only active (true) or inactive (false) products.

Available options:
true,
false
createdSince
string

Only rows created at or after this time.

updatedSince
string

Only rows changed at or after this time.

fields
string

Return only these top-level fields, separated by commas; the id is always kept. The response schema describes the whole resource. An unknown name is 400 INVALID_FIELDS. Fields: id, storeId, name, slug, description, type, active, visible, currency, price, compareAtPrice, sku, barcode, image, images, weightKg, dimensionsCm, tracksInventory, allowOutOfStockOrders, collectionIds, brandId, options, variants, createdAt, updatedAt.

Maximum string length: 1000
limit
integer

Page size, 1 to 100 (default 50). A value outside that range is 400, never clamped.

Required range: 1 <= x <= 100
cursor
string

The nextCursor of the previous page, unchanged, with the same filters. Opaque; bound to this list and its filters (400 INVALID_CURSOR otherwise).

Maximum string length: 512

Response

A page of products.

One page, newest first. Pass nextCursor back as cursor for the next one.

data
object[]
required
nextCursor
string | null
required

Null on the last page.