RevKeenDocs

List storefront products

List active, cart-eligible products with browser-safe display data, active prices, and derived availability. Intended for publishable-key storefront and CMS-picker use; never returns product metadata or internal fields.


Related endpoints

  • GET /storefront/products/{productId} — Get a storefront product
  • GET /storefront/origins — List storefront origins
  • POST /storefront/origins — Register a storefront origin
  • DELETE /storefront/origins/{originId} — Remove a storefront origin
  • GET /storefront/status — Get storefront integration status

Common errors

  • 401 unauthenticated — missing, malformed, or revoked API key.
  • 403 permission_denied — key lacks the required scope, or the resource belongs to a different merchant.

Pagination

Offset-based with limit (default 25, max 100) and offset. The response pagination block includes total and hasMore. See the pagination guide for SDK auto-paging helpers.

GET
/storefront/products
x-api-key<token>

Your RevKeen API key (powered by Unkey). Get it from Dashboard > Settings > API Keys. Use rk_sandbox_* for test mode and rk_live_* for production.

In: header

Query Parameters

limit?integer

Maximum products to return (default 50, max 100).

Range1 <= value <= 100

Response Body

application/json

application/json

application/json

Stuck on an error response? Ask the RevKeen assistant to explain it.
curl "https://api.revkeen.com/v2/storefront/products" \
  -H "x-api-key: $REVKEEN_API_KEY"
{
  "data": [
    {
      "id": "string",
      "object": "product",
      "product_id": "string",
      "slug": "string",
      "name": "string",
      "description": "string",
      "kind": "string",
      "pricing_model": "string",
      "currency": "string",
      "image_url": "string",
      "default_price_id": "string",
      "prices": [
        {
          "id": "string",
          "product_id": "string",
          "currency": "string",
          "unit_amount": 0,
          "unit_amount_decimal": "string",
          "type": "string",
          "interval": "string",
          "interval_count": 0,
          "billing_scheme": "string",
          "usage_type": "string",
          "package_size": 0,
          "trial_period_days": 0
        }
      ],
      "trial_days": 0,
      "usage_meter_id": "string",
      "tax_behavior": "string",
      "tax_code": "string",
      "availability": {
        "status": "unknown",
        "remaining": 0,
        "display_mode": "string",
        "low_stock_threshold": 0
      }
    }
  ]
}
{
  "error": "string",
  "message": "string"
}
{
  "error": "string",
  "message": "string"
}