Skip to main content
Set your API key and brand. Use exact lookups for identifiers from your ERP or PIM, then use the returned UUID for detail and relationship reads. All paths below start at /api/public/v1/brands/{brand}. Exact filters are case-sensitive. Product q search is case-insensitive and matches a literal substring, including % and _ as ordinary characters. Combine filters with AND; for example, code=TEE-001&status=active. Product Option names and external references can match several records, so every lookup returns the standard page envelope. Zero matches is an empty page. Unknown or invalid parameters return 400 instead of silently broadening a read. See filters by entity for the complete collection selector list.
Save amber-client.mjs, then run this with Node.js 22 or later and PRODUCT_CODE set to a known code:
find-product.mjs
Keep IDs as your local join keys. Product codes and names can change; the UUID identifies the same record across those edits. When paginating, preserve the brand, resource and filters. Reusing a cursor for a different lookup returns 400.

Find one shipment and read its contents

Use shipmentCode when you have Amber’s code. For carrier events, combine trackingNumber and carrierSlug; for imported shipments, combine externalShipmentId and source. A containerNumber lookup matches membership in the shipment’s containerNumbers array.
If you expect exactly one match, check totalItems before choosing it. Do not silently take items[0] when several records share a reference. This script fails on ambiguity and fetches only the selected shipment’s lines and cartons:
find-shipment.mjs

Disambiguate repeated references

Identifiers often belong to a parent or an issuing organization. Use both parts when you know them: These combinations narrow a read; they do not promise that every source has a unique business reference. Use the matching record’s stable ID for future reads.

Look up reference values before joining

Resolve /colors?code=NAVY or /materials?code=FAB-001 once, then use the returned IDs in relationship filters. For example, /material-variants accepts componentId, colorId, and supplierMaterialVariantCode. A child without its own business code is still addressable by its parent and related IDs: use /shipment-carton-items?shipmentCartonId={id}&skuId={id} to read one carton’s matching SKU rows. Boolean selectors use true or false. Integer selectors use ordinary whole numbers without leading zeros, such as versionNumber=0 or rowIndex=0. Always URL-encode values, especially email addresses, spaces, +, &, and #.