Endpoint ·
GET /mailbox-categoriesRead-only endpoint: it returns information and changes nothing. It is not sent inside the
actions array — you call it directly.assign_mailbox action: the name returned here is exactly the value that action expects.
The response is paginated with an opaque cursor: while has_more is true, repeat the call passing the previous page’s next_cursor in ?cursor=. Cursors are not shared across different endpoints, even though the format looks the same.
Parameters
Every query parameter is optional; with none of them you get the first page of the full catalog. The business slug goes in the path and is required.
search— case-insensitive substring of the mailbox name. The asterisk*works as a wildcard;%and_are matched literally.category— returns only the mailboxes in this category, by full name and case-insensitive. Accepts*as a wildcard. Mailboxes with no category are excluded, and a non-existent category returns an empty page, not an error.channel— returns only the mailboxes of this channel, by its public key. This is not a pattern filter: the key is compared exactly against its canonical form —case-insensitive— and*is not a wildcard. A non-existent, partial or*-containing key returns404 CHANNEL_NOT_FOUND.cursor— opaque cursor returned by the previous page innext_cursor. Omit it to request the first page.limit— mailboxes per page. Default 30, maximum 100.
Response
name— mailbox name. This is what you pass asmailboxinassign_mailbox.category— category the mailbox belongs to, ornullif it has none. Only the default mailbox of each channel can come back asnull; those are always assigned bymailbox.channel— public key of the channel the mailbox belongs to. A mailbox lives in a single channel, so this field tells you which conversations it can be used on.next_cursor— cursor for the next page;nullwhenhas_moreisfalse.has_more— whether there are more results after this page.
Example
This call is a read: it does not create, move or modify any conversation. It only fetches the mailbox catalog so you know whichname to use later in an action.
name of a mailbox from this response you can already build the Assign mailbox action, which is the one that actually moves the conversation. If instead of the exact mailbox you pass the category from that same response, the platform balances the load and picks the least busy mailbox in the category.