---
title: "Create Project"
method: POST
path: "/v2/projects"
tags: ["Projects"]
---

# Create Project

`POST /v2/projects`

Creates a new project under the active organization.

## Request body

- ProjectCreate
  - `key` string, required — A URL-friendly name of the project (i.e: slug). You will be able to query later using this key instead of the id (UUID) of the project.
  - `urn_namespace` string — Optional namespace for URNs. If empty, URNs will be generated from project key.
  - `name` string, required — The name of the project
  - `description` string — a longer description outlining the project objectives
  - `settings` object — the settings for this project
  - `active_policy_repo_id` string, uuid — the id of the policy repo to use for this project
  - `initial_environments` EnvironmentCreate[] — The initial environments to create for this project. By default, 'Development' and 'Production' are created, specify [] (empty list) to skip that.
    - `key` string, required — A URL-friendly name of the environment (i.e: slug). You will be able to query later using this key instead of the id (UUID) of the environment.
    - `name` string, required — The name of the environment
    - `description` string — an optional longer description of the environment
    - `custom_branch_name` string — when using gitops feature, an optional branch name for the environment
    - `jwks` JwksConfig
      - `ttl` integer — JWKS cache TTL (in seconds)
      - `url` string — ...
      - `jwks` JwksObj
        - `keys` object[], required — The keys to match against the request headers
    - `settings` object — the settings for this environment

## Response `200`

Successful Response

- ProjectRead
  - `key` string, required — A URL-friendly name of the project (i.e: slug). You will be able to query later using this key instead of the id (UUID) of the project.
  - `urn_namespace` string — Optional namespace for URNs. If empty, URNs will be generated from project key.
  - `id` string, uuid, required — Unique id of the project
  - `organization_id` string, uuid, required — Unique id of the organization that the project belongs to.
  - `created_at` string, date-time, required — Date and time when the project was created (ISO_8601 format).
  - `updated_at` string, date-time, required — Date and time when the project was last updated/modified (ISO_8601 format).
  - `name` string, required — The name of the project
  - `description` string — a longer description outlining the project objectives
  - `settings` object — the settings for this project
  - `active_policy_repo_id` string, uuid — the id of the policy repo to use for this project

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/permit/apis/permit-io-api.md) · [All operations](https://skmtc.net/permit/apis/permit-io-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/permit/permit-io-api/versions/dd6be355a62e/schema)
