Skip to main content
GET
/
products
List products
curl --request GET \
  --url https://store.salesive.com/api/v1/products \
  --header 'Authorization: Bearer <token>' \
  --header 'x-shop-id: <api-key>'
{
  "products": [
    {
      "id": "<string>",
      "name": "<string>",
      "price": 123,
      "description": "<string>",
      "currency": "<string>",
      "category": "<string>",
      "status": "<string>",
      "images": [
        "<string>"
      ],
      "addons": [
        {
          "name": "<string>",
          "price": 123,
          "maxQuantity": 2,
          "available": true,
          "_id": "<string>",
          "description": "<string>",
          "image": "<string>"
        }
      ],
      "variants": [
        {
          "sku": "<string>",
          "options": {},
          "stock": 1
        }
      ]
    }
  ],
  "foods": [
    {
      "id": "<string>",
      "name": "<string>",
      "price": 123,
      "description": "<string>",
      "currency": "<string>",
      "category": "<string>",
      "status": "<string>",
      "images": [
        "<string>"
      ],
      "addons": [
        {
          "name": "<string>",
          "price": 123,
          "maxQuantity": 2,
          "available": true,
          "_id": "<string>",
          "description": "<string>",
          "image": "<string>"
        }
      ],
      "variants": [
        {
          "sku": "<string>",
          "options": {},
          "stock": 1
        }
      ]
    }
  ],
  "pagination": {
    "total": 1,
    "page": 2,
    "limit": 2,
    "pages": 2,
    "hasNext": true,
    "hasPrev": true,
    "nextPage": 123,
    "prevPage": 123
  }
}

Request

GET /products?page=1&limit=10
x-shop-id: {{shopId}}

Headers

HeaderTypeDescription
x-shop-idstringIdentify the shop context.

Query parameters

ParameterTypeDescription
pageintegerPage number to return (default: 1).
limitintegerMaximum number of products per page (default: 10).
qstringOptional search string applied to product name or description.
The catalog adapts to the shop type and is returned in a catalogType field:
  • ecommercecatalogType: "product"
  • restaurantcatalogType: "food" (also includes a foods alias)
  • businesscatalogType: "service" (also includes a services alias)
The products key is always kept for compatibility and holds the same array, and every item carries an itemType of product, food, or service. Service items include their addons and video, and (like foods) have no variants or category.

Successful response

{
    "status": 200,
    "success": true,
    "message": "Foods found",
    "data": {
        "products": [
            {
                "_id": "68e5bb463a1fc56a8ac150c0",
                "shop": {
                    "_id": "68b8f52575da81b332af29f1",
                    "name": "Sample Kitchen",
                    "currency": {
                        "_id": "68c54dd440e9beff3260c2b2",
                        "name": "Nigerian Naira",
                        "symbol": "₦",
                        "code": "NGN",
                        "id": "68c54dd440e9beff3260c2b2"
                    },
                    "logo": "https://cdn.salesive.com/logos/shop.webp",
                    "id": "68b8f52575da81b332af29f1"
                },
                "category": {
                    "_id": "69fb494ddf63302ed89ba11d",
                    "name": "Pizza",
                    "id": "69fb494ddf63302ed89ba11d"
                },
                "createdAt": "2026-05-06T13:59:42.799Z",
                "description": "<p>Stone-baked pizza with basil and tomato sauce</p>",
                "featured": false,
                "images": [
                    "https://cdn.salesive.com/foods/margherita.webp"
                ],
                "name": "Margherita Pizza",
                "price": 8500,
                "promoPrice": 7500,
                "updatedAt": "2026-05-06T14:44:04.903Z",
                "video": null,
                "available": true,
                "addons": [
                    {
                        "_id": "68e5bb463a1fc56a8ac150d1",
                        "name": "Extra Cheese",
                        "description": "A richer mozzarella finish baked on top.",
                        "price": 1500,
                        "maxQuantity": 3,
                        "image": null,
                        "available": true
                    }
                ],
                "id": "68e5bb463a1fc56a8ac150c0",
                "inWishlist": false,
                "itemType": "food"
            }
        ],
        "foods": [
            {
                "_id": "68e5bb463a1fc56a8ac150c0",
                "name": "Margherita Pizza",
                "itemType": "food"
            }
        ],
        "catalogType": "food",
        "pagination": {
            "total": 61,
            "page": 1,
            "limit": 10,
            "pages": 7,
            "hasNext": true,
            "hasPrev": false,
            "nextPage": 2,
            "prevPage": null
        }
    }
}

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

{
    "status": 500,
    "success": false,
    "message": "Internal server error",
    "data": {}
}

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
pagination
object