> ## Documentation Index
> Fetch the complete documentation index at: https://ona.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Environment

> Permanently deletes an environment.

`Unary` · [`Environments`](/docs/api-reference/generated/environment/overview)

Permanently deletes an environment.

Running environments are automatically stopped before deletion. If force
is true, the environment is deleted immediately without graceful shutdown.

### Examples

* Delete with graceful shutdown:

  Deletes an environment after gracefully stopping it.

  ```yaml theme={null}
  environmentId: "07e03a28-65a5-4d98-b532-8ea67b188048"
  force: false
  ```

* Force delete:

  Immediately deletes an environment without waiting for graceful shutdown.

  ```yaml theme={null}
  environmentId: "07e03a28-65a5-4d98-b532-8ea67b188048"
  force: true
  ```

## Endpoint

```text theme={null}
POST /api/gitpod.v1.EnvironmentService/DeleteEnvironment
```

Send a Bearer token as described in [Authentication](/docs/api-reference#authenticate-requests). If your organization uses a custom management-plane domain, replace `https://app.ona.com` with that domain.

## Request example

<CodeGroup>
  ```bash cURL theme={null}
  export ONA_HOST=https://app.ona.com
  export ONA_API_KEY=<your-token>

  curl --request POST \
    --url "$ONA_HOST/api/gitpod.v1.EnvironmentService/DeleteEnvironment" \
    --header "Authorization: Bearer $ONA_API_KEY" \
    --header "Content-Type: application/json" \
    --data '{
    "environmentId": "<environment-id>"
  }'
  ```

  ```python Python theme={null}
  import gitpod.v1.environment_pb2 as environment_pb2
  from ona_sdk import create_client_from_env

  ona = create_client_from_env()
  request = environment_pb2.DeleteEnvironmentRequest(
      environment_id="<environment-id>",
  )
  response = ona.services.environment.delete_environment(request)
  print(response)
  ```

  ```typescript TypeScript theme={null}
  import { create } from "@bufbuild/protobuf";
  import { createClientFromEnv } from "@gitpod/sdk";
  import { DeleteEnvironmentRequestSchema } from "@gitpod/sdk/gitpod/v1/environment_pb";

  async function main() {
    const ona = createClientFromEnv();
    const request = create(DeleteEnvironmentRequestSchema, {
      environmentId: "<environment-id>",
    });
    const response = await ona.services.environment.deleteEnvironment(request);
    console.log(response);
  }

  main().catch(console.error);
  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"fmt"
  	"log"

  	"connectrpc.com/connect"
  	"github.com/gitpod-io/gitpod-sdk-go/sdk"
  	gitpodpb "github.com/gitpod-io/gitpod-sdk-go/v1"
  )

  func main() {
  	ona, err := sdk.NewFromEnv()
  	if err != nil {
  		log.Fatal(err)
  	}

  	request := connect.NewRequest(&gitpodpb.DeleteEnvironmentRequest{
  		EnvironmentId: "<environment-id>",
  	})
  	response, err := ona.Services.Environment.DeleteEnvironment(context.Background(), request)
  	if err != nil {
  		log.Fatal(err)
  	}
  	fmt.Println(response.Msg)
  }
  ```

  ```json Request body theme={null}
  {
    "environmentId": "<environment-id>"
  }
  ```
</CodeGroup>

## Request

`gitpod.v1.DeleteEnvironmentRequest`

| Field           | Type    | Required | Description                                                                                                                                                                                                                                            |
| --------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `environmentId` | string  | No       | environment\_id specifies the environment that is going to delete. Constraints: `string.uuid=true`.                                                                                                                                                    |
| `force`         | boolean | No       | force indicates whether the environment should be deleted forcefully When force deleting an Environment, the Environment is removed immediately and environment lifecycle is not respected. Force deleting can result in data loss on the environment. |

## Response

`gitpod.v1.DeleteEnvironmentResponse`

This message has no fields.
