Shut down an app
const url = 'https://opfield.example.com/api/apps/550e8400-e29b-41d4-a716-446655440000/shutdown';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"environmentIds":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]}'};
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://opfield.example.com/api/apps/550e8400-e29b-41d4-a716-446655440000/shutdown \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "environmentIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }'Stops what can be stopped in each environment: running containers, deployments and Compose projects stop, managed databases and storage pause, and the routes of the environment and of its Pages projects show the maintenance page (team access works). What ran is recorded, so Start brings back exactly that. While shut down, members can be changed freely: edits, deletes, unbinding, renames, migration, Compose down, Availability and moves between environments all work. An environment isolated by the kill switch is not shut down (409 APP_ISOLATED): turn the kill switch off first. Runs in the background: the incidents come back with state applying and their items. environmentIds limits it to those environments (apps:operate on each); null or omitted means every environment (apps:operate on the app).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
550e8400-e29b-41d4-a716-446655440000Request Bodyrequired
Section titled “Request Bodyrequired”JSON request body
object
Examplegenerated
{ "environmentIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ]}Responses
Section titled “Responses”Successful response
object
Resource object. Exact fields depend on the endpoint.
object
Example
{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Example resource", "createdAt": "2024-01-01T12:00:00.000Z", "updatedAt": "2024-01-01T12:30:00.000Z" }}Bad request
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": [ { "path": [ "name" ], "message": "Required" } ]}Authentication required
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNAUTHORIZED", "message": "Authentication required"}Forbidden
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "FORBIDDEN", "message": "Insufficient permissions"}Not found
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "NOT_FOUND", "message": "Resource not found"}Conflict
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "CONFLICT", "message": "Resource already exists"}Unprocessable entity
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNPROCESSABLE_ENTITY", "message": "Request could not be processed"}Internal server error
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "INTERNAL_ERROR", "message": "Internal server error"}