API ReferenceInventory

Batch update stock and prices by SKU

POST /rest/v1/inventory/batch

POST
/inventory/batch

Update quantity and/or price for up to 100 SKUs in one call. Unknown or ambiguous (duplicated) SKUs are rejected per-item in rejected_items without failing the batch; accepted items are tracked by the returned operation, whose overall status may be partial.

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

Header Parameters

Idempotency-Key?string

Unique client-generated key (max 255 chars), stored 24h.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/inventory/batch" \  -H "Content-Type: application/json" \  -d '{    "items": [      {        "sku": "string"      }    ]  }'
{  "id": "op_8fd2c1",  "object": "operation",  "type": "string",  "status": "pending",  "resource_type": "string",  "resource_id": "string",  "results": [    {      "channel_account_id": "string",      "listing_id": "string",      "sku": "string",      "status": "pending",      "error": {        "code": "string",        "message": "string"      }    }  ],  "created_at": "2019-08-24T14:15:22Z",  "completed_at": "2019-08-24T14:15:22Z",  "rejected_items": [    {      "sku": "string",      "error": {        "type": "invalid_request_error",        "code": "string",        "message": "string",        "param": "string",        "doc_url": "http://example.com"      }    }  ]}

Last updated on July 28, 2026

Need help?

The API is in private beta — email us and a human replies, usually within one business day.