Control plane API
The control plane is the part that decides and records — not the part that delivers. Send is only half of it. These endpoints let your own software list and write the same resources the panel manages. Auth is the same Bearer spw_… key. Abilities are chosen at mint, never widenable, no wildcard. messages:send and messages:read-content still may not share a key.
Abilities
applications:read · applications:write
templates:read · domains:read · transports:read · usage:read
A key without the ability for a surface gets 403 with { "message": "Forbidden" }. templates:manage and transports:manage also grant the matching read surface. Write paths exist only for suppressions and applications — the rest are read-only over the API.
Pagination
Lists paginate like messages: ?limit= (1–100, default 25) and ?cursor= (keyset on integer id — pass the last id from the previous page). Response shape is always { data, next_cursor }. See .
Tenancy fails closed
Cross-account ids return 404, not 403. Errors share the same { message } envelope as .