---
title: "Open a project"
method: POST
path: "/api/v2/projects/{projectId}/open"
tags: ["Projects"]
---

# Open a project

`POST /api/v2/projects/{projectId}/open`

## Request

- Base URL: `https://davinci-app.com`
- URL: `https://davinci-app.com/api/v2/projects/{projectId}/open`
- Auth: HTTP bearer

Loads the project onto a Design Engine replica, or returns the already-running
instance. `alreadyLoaded` distinguishes the two.

API-key callers receive lifecycle confirmation only. The `url` and
`serverToken` fields that a browser receives are omitted, because
`serverToken` is minted per project rather than per user and would let its
holder act as any collaborator. Programmatic access to live project data will
use short-lived project-scoped grants instead.

## Request body

- OpenProjectRequest
  - `branch` string
  - `oldProjectId` string: Previously open project to close as part of switching.
  - `initialPrompt` string

## Response `200`

Project is loaded and ready.

- OpenProjectResponse
  - `projectId` string, required
  - `branchName` string, required
  - `alreadyLoaded` boolean, required: True when the project was already running and this call reused the instance.
  - `metadata` ProjectMetadata: Stored project metadata. `ProjectSummary` is this plus the live `inUse` and `activeBranch` fields that only the list endpoint computes.
    - `id` string, required
    - `name` string, required
    - `slug` string, nullable
    - `description` string, nullable
    - `owner` string: User id or organization id that owns the project.
    - `createdBy` string, nullable
    - `visibility` string
    - `version` string
    - `created` string, date-time, nullable
    - `lastModified` string, date-time, nullable
    - `storageUsedBytes` integer
    - `transferState` string, nullable
    - `collaborators` string[]: User ids with effective access, including access inherited from an organization.
    - `pendingCollaborators` string[]
  - `permissions` string[], required
  - `url` string: Design Engine replica URL. Present only for browser access-token callers; omitted for API keys.
  - `serverToken` string: Project instance credential. Present only for browser access-token callers; omitted for API keys.

## Other responses

- `400`: Malformed request parameters or body. Agile requests may return `INVALID_PAGINATION` or `INVALID_IDEMPOTENCY_KEY`.
- `401`: No credential was supplied, or the supplied credential is malformed, expired, or revoked. A credential that is present but unusable is never downgraded to an anonymous request.
- `403`: Authenticated but not authorized. Either the acting user lacks the required resource permission, the key's scope ceiling excludes it, or the endpoint rejects this credential type (`CREDENTIAL_NOT_PERMITTED`).
- `404`: The resource does not exist in the parent named by the path, or is hidden from the caller. Absence and privacy denial are deliberately indistinguishable so project, organization, and private-team existence cannot be probed.
- `429`: Request rate exceeded, either globally or for this key.
- `500`: Unexpected server error.
- `503`: No Design Engine replica could take the project. Common codes are `PROJECT_SERVER_UNAVAILABLE` and `SERVICE_UNAVAILABLE`. Safe to retry.

## Changes

- **2026-09-15** (v2) `67c8b8616dbb`: 7 info
  - the `success` response property const value `false` was added for the status `400`
  - the `success` response property const value `false` was added for the status `401`
  - the `success` response property const value `false` was added for the status `403`
  - the `success` response property const value `false` was added for the status `404`
  - …3 more
- **2026-09-15** (v2) `48948af37797`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/changes/api/v2/projects/:projectId/open/post.md)

---

[API](https://skmtc.dev/celedon-solutions/apis/davinci-public-api.md) - [All operations](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/revisions/279218ca2e8d?raw)
