POST
/v1/organizations/{organizationId}/projectsCreate a Project in an Organization
Create a Project and optionally create its test, live, or both Environments in the same transaction. An Idempotency-Key makes an identical request safe to retry; reusing it with different input returns Conflict.
Authentication
Send an API key as a Bearer token in the Authorization header.
Parameters
Request body
Required.
application/jsonobject- unknown properties allowed
false
namerequiredstringThe Project name shown to its operators.- maximum length
200 - minimum length
1
- maximum length
environmentsarrayThe unique test, live, or both Environments to create with the Project.- at most items
2 - unique items
true
Items- at most items
Create a Project with its Test Environment
{
"name": "Customer support",
"environments": [
"test"
]
}Responses
201ProjectCreatedapplication/jsonProject created
{
"projectId": "proj_00000000000000000000000000000001",
"organizationId": "org_00000000000000000000000000000002",
"name": "Customer support",
"createdAt": "2026-01-15T18:30:00.000Z"
}400The request path, headers, query, or JSON body did not satisfy the published schema401Unauthorizedapplication/json403Forbiddenapplication/json404NotFoundapplication/json409Conflictapplication/jsonReusable schemas
IdempotencyKey
stringA caller-chosen key of 1–200 visible ASCII characters that makes an identical request safe to retry.- maximum length
200 - minimum length
1 - pattern
^[!-~]+$
ProjectCreatedEncoded
object- unknown properties allowed
false
projectIdrequiredstringThe Project identifier.- maximum length
64 - pattern
^proj_[\s\S]+$
- maximum length
organizationIdrequiredstringThe Organization identifier.- maximum length
64 - pattern
^org_[\s\S]+$
- maximum length
namerequiredstringThe human-readable resource name.createdAtrequiredstringWhen the resource was created, in UTC.- format
date-time
- format
UnauthorizedEncoded
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"Unauthorized"
- allowed values
reasonrequiredstringA safe explanation of why the credential was rejected.
ForbiddenEncoded
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"Forbidden"
- allowed values
permissionrequiredstringThe permission required by the refused operation.
NotFoundEncoded
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"NotFound"
- allowed values
resourcerequiredstringThe resource type relevant to the error.idrequiredstringThe identifier supplied for the resource that was not found.
ConflictEncoded
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"Conflict"
- allowed values
resourcerequiredstringThe resource type relevant to the error.reasonrequiredstringA safe explanation of the state conflict.
EnvironmentName
string- allowed values
"test", "live"