Lists the organization's delivery labels in the order the screen shows them (order), paginated by cursor (limit 50 by default, up to 200): id, name, hex color, and who created it (created_by_id with created_by_name). Put their ids in label_ids of deliveries.deliveries.create or update, and filter deliveries.deliveries.list by label_id. Requires view access to Deliveries.
Scope
deliveries:read
Permission
View the module
MCP tool
deliveries_labels_listOn the full surface; on the compact one, mb_execute_operation with id: "deliveries.labels.list".
Declared cost: up to 202 reads and 0 writes per call (they count against the daily quota).
Parameters
limitintegerqueryoptional
How many labels per page (default 50, at most 200).
Default: 50
cursorstringqueryoptional
The next_cursor of the previous page, to get the next one; omit it for the first page.
Creates a delivery label with a name (up to 60 characters) and a hex color (#RRGGBB), placed last in the order. Returns the new label_id and the label. Requires edit access to Deliveries.
Scope
deliveries:write
Permission
Edit in the module
MCP tool
deliveries_labels_createOn the full surface; on the compact one, mb_execute_operation with id: "deliveries.labels.create".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Renames, recolors or moves a delivery label (updates object: name, color, order). Only what is sent changes; deliveries keep it. Idempotent. Returns the label. Requires edit access to Deliveries.
Scope
deliveries:write
Permission
Edit in the module
MCP tool
deliveries_labels_updateOn the full surface; on the compact one, mb_execute_operation with id: "deliveries.labels.update".
Declared cost: up to 1 reads and 1 writes per call (they count against the daily quota).
Deletes a delivery label and removes it from every delivery that had it (deliveries_updated says how many). The label goes to the 30-day trash and owners and admins can restore it; restoring puts it back on those deliveries (the ones deleted meanwhile are skipped; the trash keeps up to 5,000 of them, and with more the trash item says linked_truncated). Outside the screen it needs a dry run (it names the label and counts the deliveries that have it) and a confirm_token, or a simple DELETE with a key that may delete. Requires edit access to Deliveries.
With an API key, this DELETE runs directly: the record stays 30 days in the trash and the response carries its trash_item_id. With an OAuth token, and through the MCP, it needs dry_run → confirm_token.
Scope
deliveries:writeand “Allow deletions” (deliveries:delete in OAuth)
Permission
Edit in the module
MCP tool
deliveries_labels_deleteOn the full surface; on the compact one, mb_execute_operation with id: "deliveries.labels.delete".
Declared cost: up to 1001 reads and 1001 writes per call (they count against the daily quota).
Parameters
label_idstringpathrequired
The delivery label id (deliveries.labels.list).
Response
oktrue
Always true.
deliveries_updatednumber
How many deliveries it was removed from.
trash_item_idstring
The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.
trash_item_idsarray<string>
Only when the deletion left more than one copy: all of them, the first being trash_item_id.
trash_expires_atnumber
When the copy leaves the trash for good (epoch ms): 30 days after the deletion.