Documentation menu

Create an empty project with its default `main` branch — add services afterwards

POSThttps://api.instacloud.com/orgs/{orgId}/projects

Token scope: account · org — read-only tokens refused (not a GET).

Parameters

NameInTypeRequiredDescription
orgIdpathstringyes

Request body

application/json

FieldTypeRequiredDescription
namestringyes

Responses

201

Default Response

FieldTypeRequiredDescription
projectobjectno
project.idstringno
project.org_idstringno
project.owner_user_idstringnoBetter Auth user id (opaque string, not a UUID)
project.namestringno
project.status"active" | "error" | "deleting" | "deleted"no
project.created_atstringno
defaultBranchobjectno
defaultBranch.idstringno
defaultBranch.namestringno
resourcesobject[]no
resources.kind"neon" | "insta-db" | "s3" | "fly" | "insta-compute"no
resources.provider"fly" | "insta-compute"noCompute plane actually backing a compute resource, derived from its provider_ref rather than its kind. Absent when it cannot be determined from the row — clients must then assert no provider rather than assume one from `kind`.
resources.statusstringno
nextActionsobject[]no
nextActions.opstringyesNeutral logical action id, e.g. "service.add" — NOT an operationId or a CLI/MCP tool name; each client maps it to its own surface.
nextActions.reasonstringyesNatural-language, human/LLM-facing "why do this now".
nextActions.argsobjectnoSuggested, flat named arguments; "<placeholder>"s where a value is unknown.
nextActions.gatedbooleannoTrue if the action passes a governance gate.

400

Default Response

FieldTypeRequiredDescription
errorstringyes

403

Default Response

FieldTypeRequiredDescription
errorstringyes

409

Default Response

FieldTypeRequiredDescription
errorstringyes

429

Default Response

FieldTypeRequiredDescription
errorstringyes

View as Markdown