API ReferenceProducts

List and search products

GET /rest/v1/products

GET
/products

Stable ordering, newest first (sort: updated_at default or created_at; id tiebreak). Use updated_after for incremental sync crawls. All filters combine (AND). Typical searches: products not on a channel (channel_account_id + listing_status=none), listings in error, sold-out products (quantity_max=0), products that haven't sold for 30 days (not_sold_since), products missing images (issue=missing_images). Required scope: products:read.

AuthorizationBearer <token>

Authorization: Bearer nbl_live_... (or nbl_test_... for test mode). Test-mode writes are validated and simulated but never persisted and never touch channels; simulated results are marked simulated.

In: header

Query Parameters

limit?integer
Range1 <= value <= 100
Default25
cursor?string
q?string

Free text over title, description, tags, brand, categories, SKUs and barcodes (whole words).

Lengthlength <= 200
status?string

Without it, archived products (deleted or merged) are left out of the list and of every search, sku included. status=archived lists only them. An archived product is still readable by id.

Value in

  • "ready"
  • "listed"
  • "archived"
  • "sold_out"
  • "error"
  • "ongoing"
  • "to_verify"
sku?string

Exact match on any variant SKU. Archived (deleted or merged) products don't match unless status=archived.

barcode?string

Exact match on any variant barcode (GTIN/UPC/EAN).

tag?string
category?string
channel_account_id?string

Products on this channel account (any status but delisted). Combine with listing_status.

listing_status?string

listed, ongoing, error, delisted, imported, or none (not on that account or, without channel_account_id, on no channel at all).

Value in

  • "listed"
  • "ongoing"
  • "error"
  • "delisted"
  • "imported"
  • "none"
price_min?number

At least one variant priced ≥ this (inclusive).

price_max?number
quantity_min?integer

Total stock across variants ≥ this (inclusive).

quantity_max?integer
issue?string

Catalog issues, comma-separated (all must apply): missing_sku, missing_barcode, invalid_barcode, missing_title, missing_description, missing_price, missing_tags, missing_images. Counts: GET /catalog/diagnostics.

sold_since?string

Products with at least one sale (canceled/refunded excluded) since this time.

Formatdate-time
not_sold_since?string

Products with no sale since this time (includes never sold).

Formatdate-time
product_ids?string

Up to 100 comma-separated product ids.

created_after?string
Formatdate-time
created_before?string
Formatdate-time
updated_after?string
Formatdate-time
updated_before?string
Formatdate-time
sort?string
Default"updated_at"

Value in

  • "updated_at"
  • "created_at"

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/products"
{  "object": "list",  "has_more": true,  "next_cursor": "string",  "data": [    {      "id": "prod_66a1f09b2",      "object": "product",      "title": "Vintage denim jacket",      "description": "string",      "brand": "string",      "category": "string",      "short_description": "string",      "vat_rate": 0,      "mpn": "string",      "weight": {        "value": "string",        "unit": "oz"      },      "dimensions": {        "length": "string",        "width": "string",        "height": "string",        "unit": "in"      },      "tags": [        "string"      ],      "currency": "string",      "status": "ready",      "requires_attention": {        "reason": "string",        "message": "string",        "channel": "string",        "conflicting_product_ids": [          "string"        ],        "detected_at": "2019-08-24T14:15:22Z"      },      "merged_into": "string",      "sync_status": "ok",      "images": [        {          "id": "img_ph1x8",          "object": "image",          "url": "http://example.com",          "alt": "string",          "position": 0        }      ],      "variants": [        {          "id": "var_66a1f1",          "object": "variant",          "sku": "VDJ-M-001",          "title": "string",          "price": "19.90",          "msrp": "24.90",          "quantity": 0,          "barcode": "string",          "grams": 0,          "asin": "string",          "images": [            {              "image_id": "img_66a1f2",              "url": "http://example.com",              "position": 0            }          ],          "options": {            "property1": "string",            "property2": "string"          }        }      ],      "listings": [        {          "id": "list_9ac2e",          "channel_account_id": "string",          "channel": "string",          "status": "listed",          "url_on_channel": "http://example.com",          "overrides": {            "title": "string",            "description": "string"          }        }      ],      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z"    }  ]}

Last updated on October 18, 2026

Need help?

Email us and a human replies, usually within one business day.