Suspend a team
const url = 'https://api.deploybase.eu/api/v1/api/v1/admin/teams/example/suspend';const options = { method: 'POST', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"reason":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.deploybase.eu/api/v1/api/v1/admin/teams/example/suspend \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "reason": "example" }'Takes one team offline for a policy violation: sign-in, the API and API keys are refused, every site, preview, share link, custom domain, serverless function and form endpoint stops serving, and the team is emailed a statement of reasons carrying the reason verbatim. Nothing is deleted — every Edge Rule is disabled in place and every row is kept — so unsuspend restores the account exactly as it was. Safe to re-run: a second call re-applies the CDN teardown without moving the original timestamp or re-sending the email.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Team ID (UUID)
Request Body
Section titled “ Request Body ”Reason, sent to the team verbatim
object
Example generated
{ "reason": "example"}Responses
Section titled “ Responses ”OK
object
object
object
object
Production is one of: “disabled”, “restored”, “no_rule” (the project has no production Edge Rule to touch), “no_live_deployment” (nothing to restore it to), “not_processed: …” (the context budget ran out first), or “error: …”.
Suspended is the team’s state AFTER the call.
TransitionedNow is whether THIS call moved the flag. False on a re-run, which is also what keeps the statement of reasons from being sent twice.
Example generated
{ "data": { "functions_error": "example", "functions_reconciled": true, "hostnames_purged": 1, "notification_error": "example", "notification_sent": true, "projects": [ { "domains_processed": 1, "errors": [ "example" ], "previews_processed": 1, "production": "example", "project_id": "example", "project_slug": "example", "shares_processed": 1 } ], "purge_errors": [ "example" ], "suspended": true, "transitioned_now": true, "zitadel_error": "example", "zitadel_org_deactivated": true }, "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Bad Request
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Unauthorized
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Forbidden
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Not Found
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Internal Server Error
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Service Unavailable
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}