Create a new project in the caller’s organization.
Platform JWT callers are rejected with HTTP 403: platform agents cannot create new projects. Human Clerk sessions and API keys may create freely within their tenant namespace.
Returns: Created project with server-assigned ID and timestamps.
Request body for creating a new project.
Attributes: name: Human-readable project name.
1 - 200Successful Response
Project record stored in the tenant SurrealDB namespace.
Projects group resources within an organization. Each resource belongs to exactly one project, enabling scoped access control and isolation. Project rows live in the per-tenant SurrealDB namespace alongside resources so that lifecycle operations on a project and its resources execute inside a single tenant-scoped transaction.
Identity fields (frozen): project_id: Unique project identifier, used as SurrealDB record ID. organization_id: Owning organization, set at creation and immutable. Denormalised onto the row so platform callers can reason about the owner without re-deriving it from the namespace binding.
Metadata:
name: Display name of the project.
managed_by: Ownership tier. "platform" projects are seeded by
pragma-os itself (e.g. the platform-default project used by
platform agents). User-facing write paths reject mutations to
platform-managed projects with HTTP 403. None or "user"
indicates an ordinary user-created project.
Inherited from PragmaModel: created_at: Creation timestamp (frozen). updated_at: Last update timestamp (mutable).