MobiariDocs
Admin APIProducts

List products

GET
/stores/{store_id}/products

Each row carries its primary image, price range, stock totals, variant count and active variants, so a list screen needs no further requests. Kit components that are not themselves active products are left out.

Authorization

bearer_auth
AuthorizationBearer <token>

Authorization: Bearer <token>. Either a session access token from POST /auth/login (refresh it with POST /auth/refresh) or a store API token (mobi_st_…). A store API token works only for the store it was issued in, and can do at most what its issuing user can there, narrowed to the scopes it was issued with.

In: header

Path Parameters

store_id*string

Store id

Formatuuid

Query Parameters

status?string

Only products in this status. Without it, drafts are hidden unless include_drafts=true.

Value in"draft" | "active" | "archived"
include_drafts?boolean

Include drafts when no status is given.

search?string

Matches part of the title, the SKU prefix, a variant's SKU or barcode, or the product's GTIN/EAN/UPC, case-insensitively.

category_id?string

Only products in this category.

Formatuuid
collection_id?string

Only products in this collection.

Formatuuid
sort?string

How to order the product list.

Value in"priority" | "updated_at" | "title"
limit?integer

Page size, 1 to 200. Defaults to 50.

Formatint64
Range1 <= value <= 200
cursor?string

next_cursor from the previous page. Omit for the first page.

offset?integer

Rows to skip, for UIs that jump to a page number. Ignored when cursor is set. Prefer cursor for walking a whole list.

Formatint64
Range0 <= value
include_total?boolean

Also return total, the count of all matching rows. Costs an extra query; leave off when you only walk pages.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/stores/497f6eca-6276-4993-bfeb-53cbbbba6f08/products?limit=50"
{
  "data": [
    {
      "availability": "in_stock",
      "available_stock": 0,
      "created_at": "2019-08-24T14:15:22Z",
      "expected_availability_at": "2019-08-24T14:15:22Z",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "is_launch": true,
      "price_max_cents": 0,
      "price_min_cents": 0,
      "primary_image_filename": "string",
      "primary_image_thumbnail_url": "string",
      "primary_image_url": "string",
      "priority": 0,
      "product_type": "single",
      "short_description": "string",
      "sku_prefix": "string",
      "slug": "string",
      "status": "draft",
      "store_id": "7fe87115-950c-4ae8-bd7e-970406bc9ac0",
      "title": "string",
      "total_stock": 0,
      "updated_at": "2019-08-24T14:15:22Z",
      "variant_count": 0,
      "variants": [
        {
          "available_quantity": 0,
          "backorderable": true,
          "barcode": "string",
          "compare_at_cents": 0,
          "cost_cents": 0,
          "created_at": "2019-08-24T14:15:22Z",
          "expected_availability_at": "2019-08-24T14:15:22Z",
          "fulfillment_mode": "stocked",
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "is_active": true,
          "lead_time_days": 0,
          "position": 0,
          "price_cents": 0,
          "product_id": "0d012afa-f885-4e65-aeca-37e27701e2d1",
          "reserved_quantity": 0,
          "sku": "string",
          "stock_quantity": 0,
          "title": "string",
          "updated_at": "2019-08-24T14:15:22Z",
          "uses_components": true
        }
      ]
    }
  ],
  "has_more": true,
  "next_cursor": "string",
  "total": 0
}
{
  "code": "not_found",
  "details": {},
  "error": "Order not found"
}
{
  "code": "not_found",
  "details": {},
  "error": "Order not found"
}
{
  "code": "not_found",
  "details": {},
  "error": "Order not found"
}
{
  "code": "not_found",
  "details": {},
  "error": "Order not found"
}