Products

Retrieve your store's product catalog including media, variants, options, and market-specific pricing.

List Products

GET/api/v1/products
Permission required: products:read

Query Parameters

ParameterTypeDefaultDescription
searchstringFilter products by name. Max 255 characters.
marketstring | arrayFilter products by market. Pass a single value (market=US) or multiple (market[]=US&market[]=EU). Max 20 values, each a 2-letter country code.
limitinteger20Number of results per page. Range: 1–50.
pageinteger1Page number for pagination. Min: 1.
sort_fieldstringcreated_atField to sort by. Options: created_at, updated_at.
sort_orderstringDESCSort direction. Options: ASC, DESC.

Example Request

cURL
curl -X GET "https://api.storeep.com/v1/products?market[]=US&market[]=EU&limit=10&sort_order=ASC" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

200 OK
{
    "data": [
        {
            "id": 298437652918374561,
            "name": "Classic Cotton T-Shirt",
            "media": [
                {
                    "type": "image",
                    "url": "https://cdn.storeep.com/images/stores/123/products/shirt.jpg"
                },
                {
                    "type": "video",
                    "id": "dQw4w9WgXcQ",
                    "thumbnail": "https://img.youtube.com/vi/dQw4w9WgXcQ/hqdefault.jpg"
                }
            ],
            "variants": [
                {
                    "type": "text",
                    "name": "Size",
                    "options": [
                        { "name": "S" },
                        { "name": "M" },
                        { "name": "L" }
                    ]
                },
                {
                    "type": "image",
                    "name": "Color",
                    "options": [
                        { "name": "Red", "src": "https://cdn.storeep.com/.../red.jpg" },
                        { "name": "Blue", "src": "https://cdn.storeep.com/.../blue.jpg" }
                    ]
                }
            ],
            "is_published": true,
            "created_at": "2025-01-15 10:30:00",
            "updated_at": "2025-01-20 15:45:30",
            "options": [
                {
                    "id": 0,
                    "sku": "SHIRT-S-RED",
                    "barcode": "1234567890123",
                    "weight": 0.25,
                    "quantity": 42,
                    "markets": [
                        {
                            "market": "US",
                            "currency": "USD",
                            "price": 29.99,
                            "discounted_price": 24.99
                        },
                        {
                            "market": "EU",
                            "currency": "EUR",
                            "price": 27.99,
                            "discounted_price": null
                        }
                    ]
                }
            ]
        }
    ],
    "meta": {
        "pagination": {
            "total": 45,
            "count": 10,
            "per_page": 10,
            "current_page": 1,
            "total_pages": 5,
            "links": {
                "next": "https://api.storeep.com/v1/products?limit=10&sort_order=ASC&page=2"
            }
        }
    }
}

Get Product

GET/api/v1/products/{product_id}
Permission required: products:read

Retrieve a single product by its id. The response holds the same product object the list endpoint returns, without the pagination wrapper. The list parameters (search, market, limit, page, sort_field and sort_order) do not apply here.

Example Request

cURL
curl -X GET "https://api.storeep.com/v1/products/298437652918374561" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

200 OK
{
    "data": {
        "id": 298437652918374561,
        "name": "Classic Cotton T-Shirt",
        "media": [
            {
                "type": "image",
                "url": "https://cdn.storeep.com/images/stores/123/products/shirt.jpg"
            },
            {
                "type": "video",
                "id": "dQw4w9WgXcQ",
                "thumbnail": "https://img.youtube.com/vi/dQw4w9WgXcQ/hqdefault.jpg"
            }
        ],
        "variants": [
            {
                "type": "text",
                "name": "Size",
                "options": [
                    { "name": "S" },
                    { "name": "M" },
                    { "name": "L" }
                ]
            },
            {
                "type": "image",
                "name": "Color",
                "options": [
                    { "name": "Red", "src": "https://cdn.storeep.com/.../red.jpg" },
                    { "name": "Blue", "src": "https://cdn.storeep.com/.../blue.jpg" }
                ]
            }
        ],
        "is_published": true,
        "created_at": "2025-01-15 10:30:00",
        "updated_at": "2025-01-20 15:45:30",
        "options": [
            {
                "id": 0,
                "sku": "SHIRT-S-RED",
                "barcode": "1234567890123",
                "weight": 0.25,
                "quantity": 42,
                "markets": [
                    {
                        "market": "US",
                        "currency": "USD",
                        "price": 29.99,
                        "discounted_price": 24.99
                    },
                    {
                        "market": "EU",
                        "currency": "EUR",
                        "price": 27.99,
                        "discounted_price": null
                    }
                ]
            }
        ]
    }
}
404 Not Found
{
    "status": "error",
    "errors": [
        "product not found"
    ]
}

Response Fields

Product Object

FieldTypeDescription
idintegerUnique product identifier.
namestringProduct name.
mediaarrayProduct images and videos. Each item has a type (image or video).
variantsarray | nullVariant definitions (e.g., Size, Color). null if no variants.
is_publishedbooleanWhether the product is visible in the store.
created_atstringCreation timestamp (UTC).
updated_atstringLast update timestamp (UTC).
optionsarrayProduct options with SKU, barcode, weight, stock quantity, and market pricing.

Option Object

FieldTypeDescription
idintegerOption index inside its product, starting at 0. Pair it with the product id to identify an option, it is not unique on its own.
skustring | nullStock keeping unit.
barcodestring | nullProduct barcode.
weightfloat | nullWeight in the store's configured unit.
quantityinteger | nullUnits in stock. 0 means out of stock, null means stock is not tracked for this option.
marketsarrayMarket-specific pricing with currency.

Market Object

FieldTypeDescription
marketstringMarket identifier (e.g., "US", "EU").
currencystringCurrency code (e.g., "USD", "EUR").
pricefloatRegular price.
discounted_pricefloat | nullDiscounted price, or null if no discount.