{
"units": [
{
"code": "KG",
"name": "Kilogram",
"unit_group_code": "MASS",
"conversion_factor_to_base": 1000,
"symbol": "kg",
"system": "METRIC"
},
{
"code": "LB",
"name": "Pound",
"unit_group_code": "MASS",
"conversion_factor_to_base": 453.592,
"symbol": "lb",
"system": "IMPERIAL"
}
],
"external_user_id": "user_setup_01"
}
{
"results": [
{ "code": "KG", "unit_group_code": "MASS", "id": "unit_kg_01...", "action": "unchanged" },
{ "code": "LB", "unit_group_code": "MASS", "id": "unit_lb_01...", "action": "created" }
],
"summary": { "created": 1, "updated": 0, "unchanged": 1, "skipped_global": 0 }
}
Catalog Sync
Sync units (bulk upsert)
Upserts units by code + unit_group_code. Units that match an existing record are updated; new ones are created. Global (system-defined) units are returned as skipped_global.
PUT
/
api
/
v1
/
public
/
vendors
/
{vendorId}
/
catalog
/
units
{
"units": [
{
"code": "KG",
"name": "Kilogram",
"unit_group_code": "MASS",
"conversion_factor_to_base": 1000,
"symbol": "kg",
"system": "METRIC"
},
{
"code": "LB",
"name": "Pound",
"unit_group_code": "MASS",
"conversion_factor_to_base": 453.592,
"symbol": "lb",
"system": "IMPERIAL"
}
],
"external_user_id": "user_setup_01"
}
{
"results": [
{ "code": "KG", "unit_group_code": "MASS", "id": "unit_kg_01...", "action": "unchanged" },
{ "code": "LB", "unit_group_code": "MASS", "id": "unit_lb_01...", "action": "created" }
],
"summary": { "created": 1, "updated": 0, "unchanged": 1, "skipped_global": 0 }
}
string
required
BOH API key with
catalog:write scope.string
required
Vendor UUID.
object[]
required
Array of unit rows:
Show unit row fields
Show unit row fields
string
required
Unique alphanumeric code within the unit group (1–64 chars).
string
required
Display name.
string
required
Code of the parent unit group (e.g.
MASS, VOLUME, COUNT).number
required
How many base units one unit of this type equals (e.g.
1000 for kg when base is g).string
Display symbol (e.g.
kg, ml).string
METRIC, IMPERIAL, or OTHER.boolean
Set
true to archive the unit.string
Actor for audit trail.
object[]
One entry per input row:
code, unit_group_code, id, and action (created, updated, unchanged, or skipped_global).object
{ created, updated, unchanged, skipped_global } counts.{
"units": [
{
"code": "KG",
"name": "Kilogram",
"unit_group_code": "MASS",
"conversion_factor_to_base": 1000,
"symbol": "kg",
"system": "METRIC"
},
{
"code": "LB",
"name": "Pound",
"unit_group_code": "MASS",
"conversion_factor_to_base": 453.592,
"symbol": "lb",
"system": "IMPERIAL"
}
],
"external_user_id": "user_setup_01"
}
{
"results": [
{ "code": "KG", "unit_group_code": "MASS", "id": "unit_kg_01...", "action": "unchanged" },
{ "code": "LB", "unit_group_code": "MASS", "id": "unit_lb_01...", "action": "created" }
],
"summary": { "created": 1, "updated": 0, "unchanged": 1, "skipped_global": 0 }
}

