Skip to main content
GET
List products

Request

Headers

Query parameters

Filtering is allow-listed. Only the parameters above affect the query. Any other query string (for example a cache-buster like ?_=1718… or an unknown key) is ignored and never narrows the result set — so pagination totals stay stable regardless of extra params. Filtering by a category slug or name resolves to the matching category automatically.
The catalog adapts to the shop type and is returned in a catalogType field:
  • ecommerce → catalogType: "product"
  • restaurant → catalogType: "food" (also includes a foods alias)
  • business → catalogType: "service" (also includes a services alias)
  • digital → catalogType: "digital" (also includes a digitals alias)
The products key is always kept for compatibility and holds the same array, and every item carries an itemType of product, food, service, or digital. Service items include their addons and video, and (like foods) have no variants or category.
Digital stores. Items are digital products (PDFs, books and other downloads). They have no stock, variants, add-ons or file reference, so stock has no effect, and sort=price_asc / price_desc order by price (the cheapest way in). Sorting is limited to newest, oldest, price_asc, price_desc, name_asc and name_desc; anything else falls back to newest first. The search term also matches the author. Each item looks like this, and the message stays "Products found":
access says how the item can be bought: purchase (one-time, kept for good, pricing.oneTime), subscription (a 30-day pass, pricing.monthly) or both. price is the lower of the two. owned appears only on an authenticated request: { kind, status, accessUntil } for what the shopper already holds (the best live access, otherwise the most recent expired one), or null. inPass is true when the store’s all-access pass covers the item. preview.available is true when the seller has the free preview on and the item is a PDF; open it with Get a free preview. preview.pages is the page count the seller chose.

Successful response

Notes

  • For standard shops, the message remains "Products found" and catalogType is "product".
  • For authenticated users, the API still includes inWishlist on each returned item.

Error response

Authorizations

Authorization
string
header
required

JWT issued by the Salesive Store API for authenticated shoppers.

x-shop-id
string
header
required

Optional storefront identifier sent as a header to scope responses to a specific shop. Try It requests remember this value once provided.

Headers

x-shop-id
string

Optional identifier that scopes responses to a specific storefront when the referer cannot be inferred.

Query Parameters

page
integer
default:1

Page number to return (defaults to 1).

Required range: x >= 1
limit
integer
default:10

Maximum number of products per page (defaults to 10).

Required range: x >= 1
q
string

Optional search phrase applied to product names or descriptions.

Response

200 - application/json

Paginated products response.

products
object[]
required
foods
object[]

Compatibility alias returned for food storefronts.

catalogType
enum<string>
Available options:
product,
food,
service,
digital
pagination
object
digitals
object[]

Compatibility alias returned for digital storefronts. Holds the same array as products.