Products API

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

Retrieving Products

Parent catalog items. Each product has one or more SKUs (batches/lots); quantity fields are rollups across its SKUs.

Use GET /api/v1/products to page through every record in your organization, or GET /api/v1/products/{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/products
GET
/api/v1/products/{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/products?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
name
string
Sortable
description
string, nullable
category
string, nullable
Filterable (exact)
brand
string, nullable
Filterable (exact)
type
string, nullable
Filterable (exact)
source
string, nullable
Filterable (exact)
unit_mode_enabled
boolean, nullable
true: quantities are unit counts. false: quantities are weights in grams
measure_as_liquid
boolean
liquid_uom
string, nullable
is_ingredient
boolean
is_kit
boolean
Filterable (exact)
price
number, nullable
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
safety_stock
number, nullable
lead_time_days
integer, nullable
par_baseline
number, nullable
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
meta_fields
object (JSON), nullable
Detail endpoint only
skus
array of objects
Detail endpoint only. Related records: id, name, tracking_id, uom, total_units, total_weight, available_units, available_weight, expiration_date, location_id, section_id, placement_id, is_archived
collections
array of objects
Detail endpoint only. Related records: collection
work_instructions
array of objects
Detail endpoint only. Related records: id, name, station_id

Filters

limitPage size (default 100, max 1000)
offsetNumber of records to skip (default 0)
sortOne of: name, created_at, updated_at
orderasc | desc
searchCase-insensitive partial match on name
categoryExact category match
brandExact brand match
typefinished_good | material | subassembly
sourcebuy | make | other
is_kitOnly kits (true) or non-kits (false) (boolean)
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)