---
title: "Creates a new environment"
method: POST
path: "/api/admin/environments"
tags: ["Environments"]
---

# Creates a new environment

`POST /api/admin/environments`

**Enterprise feature**

Uses the details provided in the payload to create a new environment

## Request body

- CreateEnvironmentSchema — Data required to create a new [environment](https://docs.getunleash.io/concepts/environments)
  - `name` string, required — The name of the environment. Must be a URL-friendly string according to [RFC 3968, section 2.3](https://www.rfc-editor.org/rfc/rfc3986#section-2.3)
  - `type` string, required — The [type of environment](https://docs.getunleash.io/concepts/environments#environment-types) you would like to create. Unleash officially recognizes the following values: - `development` - `test` - `preproduction` - `production` If you pass a string that is not one of the recognized values, Unleash will accept it, but it will carry no special semantics.
  - `enabled` boolean — Newly created environments are enabled by default. Set this property to `false` to create the environment in a disabled state.
  - `sortOrder` integer — Defines where in the list of environments to place this environment. The list uses an ascending sort, so lower numbers are shown first. You can change this value later.
  - `requiredApprovals` integer, nullable — Experimental field. The number of approvals required before a change request can be applied in this environment.

## Response `201`

The resource was successfully created.

- EnvironmentSchema — A definition of the project environment
  - `name` string, required — The name of the environment
  - `type` string, required — The [type of environment](https://docs.getunleash.io/concepts/environments#environment-types).
  - `enabled` boolean, required — `true` if the environment is enabled for the project, otherwise `false`.
  - `protected` boolean, required — `true` if the environment is protected, otherwise `false`. A *protected* environment can not be deleted.
  - `sortOrder` integer, required — Priority of the environment in a list of environments, the lower the value, the higher up in the list the environment will appear. Needs to be an integer
  - `projectCount` integer, nullable — The number of projects with this environment
  - `apiTokenCount` integer, nullable — The number of API tokens for the project environment
  - `enabledToggleCount` integer, nullable — The number of enabled toggles for the project environment
  - `requiredApprovals` integer, nullable — Experimental field. The number of approvals required before a change request can be applied in this environment.

## Other responses

- `400` — The request data does not match what we expect.
- `401` — Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`.

---

[API](https://skmtc.net/unleash/apis/unleash-api-3.md) · [All operations](https://skmtc.net/unleash/apis/unleash-api-3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unleash/unleash-api-3/revisions/b2c3116e633e/schema)
