Skip to main content
POST
Create a project

Authorizations

Authorization
string
header
required

WorkOS access JWT or a user-owned WorkOS API key. User keys are bound to one organization and restricted to their enabled product permissions. Session-only onboarding and session revocation require an interactive access JWT. No cookie session is assumed.

Headers

X-Request-Id
string

Optional caller-provided correlation identifier.

Required string length: 1 - 128
Idempotency-Key
string
required

Identifies one mutation and its canonical request payload.

Required string length: 1 - 128

Body

application/json

Phase 1 project creation request. The server assigns resource identifiers.

organization_id
string
required
Pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
name
string
required
Required string length: 1 - 128
Pattern: ^\S(?:.*\S)?$
data_mode
enum<string>
default:shared

Optional at creation, default shared. shared uses one data area across Dev/Prod; isolated gives each environment its own database/Auth records and file namespace. The four Owner-confirmed data-change actions reassign or reset areas without copying data or files and without a special change fee; ordinary measured resource consumption still applies. A reset or merge removes the named Dev resources. Promotion applies pending schema migrations to isolated Prod without copying Dev data.

Available options:
shared,
isolated
dev_access_mode
enum<string>
default:protected
Available options:
protected,
public
region
enum<string>
default:us

Chosen when the project is created and immutable afterwards. us (default) places the project's database, files, build sandbox and build objects in the US; eu places them in the EU. Prices are identical. ohmyhost.yaml storage.jurisdiction must equal this value.

Available options:
us,
eu

Response

The mutation was accepted for asynchronous processing.

Durable record returned for an accepted asynchronous mutation. Optional reconciliation is a current observation for queued/running work, separate from immutable terminal state. A completed reconciliation attempt alone does not mean the operation succeeded.

id
string
required
Pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
state
enum<string>
required
Available options:
queued,
running,
succeeded,
failed,
cancelled
created_at
string<date-time>
required
updated_at
string<date-time>
required
blocking_operation_id
string

The active operation holding this queued operation's project mutation claim.

Pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
deployment_id
string

The deployment this operation created (deploy, promotion or rollback), in every state. After a failure, read its diagnostics with deployment logs.

Pattern: ^[0-9A-HJKMNP-TV-Z]{26}$
result
object
error
object
progress
object

Current deployment dependency observation, separate from immutable operation history. Poll the same operation; mail readiness does not mean application activation.

reconciliation
object