Revoke a SIP credential, or remove a revoked one
Two steps, same endpoint.
On an active credential this revokes it. The account is deleted on
the registrar first, which flushes any live registration — so the
device stops working immediately rather than lasting until its current
registration expires — and the row is kept, marked revoked, so it
still appears in the list.
Called again on that revoked row, it removes the row for good.
The purge is deliberately gated on the row already being revoked. That is what guarantees the registrar account is gone: a one-step hard delete could leave an account still able to register that we no longer hold the handle to revoke.
Revoking frees the credential's slot against the per-number cap and releases its internal extension for reuse. Caller must have writer access to the workspace.
Authorization
bearerAuth Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the
platform keyring. Carries workspace_id and scopes claims;
revoked via the platform deny-list.
In: header
Path Parameters
Tenant number UUID.
uuidSIP credential UUID.
uuidResponse Body
application/json
curl -X DELETE "https://example.com/v1/numbers/497f6eca-6276-4993-bfeb-53cbbbba6f08/sip-credentials/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string", "details": [ "string" ] }}Change a credential's label, caller reference or extension PATCH
Updates a credential without disturbing the device using it — no password change and no dropped registration. A caller-reference change is pushed to the registrar, so it applies to the next outbound call. Omit a field to leave it unchanged; pass an empty string to clear one. Clearing client_id makes calls present the number itself; clearing extension removes the device from internal dialling.
Get the workspace's SIP trunk GET
A workspace has at most one SIP trunk. Returns `sip_trunk.not_found` if none has been connected.