Skip to main content
POST
Create project
Only name is required.
  • Omit parent_external_id to create a root project; workspace_external_id is then required, and a missing or malformed value returns 404 rather than 400, because it is resolved through the same access check used to look up an existing workspace.
  • Set parent_external_id to create a sub-project instead. In that case workspace_external_id is ignored entirely: the new project always inherits the parent’s workspace.
  • Nesting is capped at three levels; creating under a project already at that depth returns 400.
  • Omitted fields default: visibility to private, metadata to an empty object, description to an empty string.
  • slug is generated server-side from the name plus random letters and is not caller-controllable; treat external_id as the stable identifier.
  • There is no idempotency key, so repeating this call creates a second project with the same name.

Authorizations

Authorization
string
header
required

Most Braintrust endpoints are authenticated by providing your API key as a header Authorization: Bearer [api_key] to your HTTP request. You can create an API key in the Braintrust organization settings page.

Body

application/json

Any desired information about the new project object

name
string
required

Name of the project

Minimum string length: 1
description
string | null

Textual description of the project

org_name
string | null

For nearly all users, this parameter should be unnecessary. But in the rare case that your API key belongs to multiple organizations, you may specify the name of the organization the project belongs in.

Response

Returns the new project object

id
string<uuid>
required

Unique identifier for the project

org_id
string<uuid>
required

Unique id for the organization that the project belongs under

name
string
required

Name of the project

description
string | null

Textual description of the project

created
string<date-time> | null

Date of project creation

deleted_at
string<date-time> | null

Date of project deletion, or null if the project is still active

user_id
string<uuid> | null

Identifies the user who created the project

settings
object | null