SKUs API

Get access to your skus data through Cloudbox's v1 API.

Retrieving SKUs

Individual batches/lots of a product, each with its own quantity, tracking ID, expiry, and Location > Section > Placement.

Use GET /api/v1/skus to page through every record in your organization, or GET /api/v1/skus/{id} to fetch a single record with its related data. The id is a string, and a 404 means it doesn't exist in your organization.

API Endpoint

GET
/api/v1/skus
GET
/api/v1/skus/{id}

Required Headers

Every request must include the following:

Header Key
Description
org-api-key
Your Organization API key. Contact Cloudbox Support For Access: support@cloudboxapp.com.
user-api-key
Your User API Key

Requests missing either header will return 401 Unauthorized

Example Request

bash curl -X GET "https://app.cloudboxapp.com/api/v1/skus?limit=100" \ -H "org-api-key: YOUR_ORG_API_KEY" \ -H "user-api-key: YOUR_USER_API_KEY" \ -H "Accept: application/json"

Response Schema

Column
Type
Description
id
string
Unique ID
product_id
string, nullable
References Product. Filterable (exact)
name
string
Sortable
description
string, nullable
category
string, nullable
Filterable (exact)
tracking_id
string, nullable
Filterable (exact)
uom
string, nullable
type
string, nullable
Filterable (exact)
unit_mode_enabled
boolean, nullable
true: quantities are unit counts. false: quantities are weights in grams
unit_weight
number, nullable
price
number, nullable
avg_landed_cost
number, nullable
Current average unit cost
total_units
number, nullable
On-hand units (unit-mode items)
total_weight
number, nullable
On-hand weight in grams (weight-mode items)
available_units
number, nullable
On-hand units minus units committed to open sales orders
available_weight
number, nullable
On-hand weight minus weight committed to open sales orders
unassigned_units
number
unassigned_weight
number
fluid_ounce_qty
number
Liquid quantity in fluid ounces
safety_stock
number, nullable
critical_stock
number, nullable
lead_time_days
integer, nullable
expiration_date
string (YYYY-MM-DD), nullable
Sortable
location_id
string (uuid), nullable
Location (building/site) ID. Filterable (exact)
section_id
string (uuid), nullable
Section (area within a location) ID. Filterable (exact)
placement_id
string (uuid), nullable
Placement (spot within a section) ID. Filterable (exact)
is_archived
boolean, nullable
Archived records are excluded unless include_archived=true
created_at
string (ISO 8601)
Creation timestamp (UTC). Sortable
updated_at
string (ISO 8601)
Last update timestamp (UTC). Sortable
parent_tracking_id
string, nullable
Detail endpoint only
meta_fields
object (JSON), nullable
Detail endpoint only
package_volume
number, nullable
Detail endpoint only
package_uom
string, nullable
Detail endpoint only
default_fluid_ounces_per_unit
number, nullable
Detail endpoint only
grams_per_fluid_ounce
number, nullable
Detail endpoint only
drops_per_fluid_ounce
number, nullable
Detail endpoint only
unassigned_fluid_ounce_qty
number
Detail endpoint only
ship_length
number, nullable
Detail endpoint only
ship_width
number, nullable
Detail endpoint only
ship_height
number, nullable
Detail endpoint only
ship_dim_unit
string, nullable
Detail endpoint only
ship_weight
number, nullable
Detail endpoint only
ship_weight_unit
string, nullable
Detail endpoint only
product
object
Detail endpoint only. Related record: id, name, category, brand, type, source
location
object
Detail endpoint only. Related record: id, name
section
object
Detail endpoint only. Related record: id, name, location_id
placement
object
Detail endpoint only. Related record: id, name, section_id
barcodes
array of objects
Detail endpoint only. Related records: barcode, vendor
vendors
array of objects
Detail endpoint only. Related records: vendor_id, vendor_sku_code, unit_price, lead_time_days, min_order_qty, is_primary, vendor
containers
array of objects
Detail endpoint only. Related records: id, name, serial_id, current_weight, units, active
mixed_container_contents
array of objects
Detail endpoint only. Related records: container_id, units
uom_conversions
array of objects
Detail endpoint only. Related records: from_uom, base_qty
bom
array of objects
Detail endpoint only. Related records: id, sku_id, product_id, variant_id, ingredient_product_id, quantity, uom, liquid_fluid_ounce_quantity, notes, sort_order, created_at, ingredient
bom_variants
array of objects
Detail endpoint only. Related records: id, name, is_active
operations
array of objects
Detail endpoint only. Related records: id, product_id, sku_id, step_number, name, description, resource_id, planned_minutes, planned_cost, created_at, updated_at

Filters

limitPage size (default 100, max 1000)
offsetNumber of records to skip (default 0)
sortOne of: name, created_at, updated_at, expiration_date
orderasc | desc
searchCase-insensitive partial match on name
product_idSKUs belonging to this product
tracking_idExact tracking ID match
categoryExact category match
typeSKU type classification
location_idSKUs in this location
section_idSKUs in this section
placement_idSKUs in this placement
updated_sinceOnly records updated at or after this ISO 8601 timestamp
include_archivedSet to true to include archived records (excluded by default)
default sortname ascending

Errors

Cloudbox uses standard HTTP status codes to indicate API success or failure:

  • 200–299 – Request succeeded
  • 400 – Bad request (missing parameters, invalid values)
  • 401 – Unauthorized (missing or invalid API keys)
  • 404 – Resource not found
  • 429 – Too many requests (rate limited)