Skip to content
POST
/v1/organizations/{organizationId}/projects

Create a Project in an Organization

Create a Project and optionally create its test, live, or both Environments in the same transaction.

Authentication

Send an API key as a Bearer token in the Authorization header.

Parameters

NameLocationRequiredDescription
organizationIdpathYes
The Organization to address.
string
All of
  • maximum length 64
A Cantora Organization identifier, prefixed with `org_`.
  • pattern ^org_[\s\S]+$

Request body

Required.

application/json
object
  • unknown properties allowed false
namerequired
stringThe Project name shown to its operators.
  • maximum length 200
  • minimum length 1
environments
arrayThe unique test, live, or both Environments to create with the Project.
Items
string
  • allowed values "test", "live"
All of
  • at most items 2
  • unique items true
Create a Project with its Test Environment
{
  "name": "Customer support",
  "environments": [
    "test"
  ]
}

Responses

201ProjectCreated
application/json
Project 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 schema
401Unauthorized
application/json
403Forbidden
application/json
404NotFound
application/json

Reusable schemas

ProjectCreatedJsonEncoding

object
  • unknown properties allowed false
projectIdrequired
stringThe Project identifier.
All of
  • maximum length 64
A Cantora Project identifier, prefixed with `proj_`.
  • pattern ^proj_[\s\S]+$
organizationIdrequired
stringThe Organization identifier.
All of
  • maximum length 64
A Cantora Organization identifier, prefixed with `org_`.
  • pattern ^org_[\s\S]+$
namerequired
stringThe human-readable resource name.
createdAtrequired
stringWhen the resource was created, in UTC.
  • format date-time

UnauthorizedJsonEncoding

object
  • unknown properties allowed false
_tagrequired
stringThe stable machine-readable error type.
  • allowed values "Unauthorized"
reasonrequired
stringA safe explanation of why the credential was rejected.

ForbiddenJsonEncoding

object
  • unknown properties allowed false
_tagrequired
stringThe stable machine-readable error type.
  • allowed values "Forbidden"
permissionrequired
stringThe permission required by the refused operation.

NotFoundJsonEncoding

object
  • unknown properties allowed false
_tagrequired
stringThe stable machine-readable error type.
  • allowed values "NotFound"
resourcerequired
stringThe resource type relevant to the error.
idrequired
stringThe identifier supplied for the resource that was not found.