Projects API
See the API guide for authentication and retries, or the endpoint index for other resources. All paths below are relative to your dashboard host.
List GitHub installations
GET /api/v1/github/installations
List one provider page of linked GitHub installations available when creating projects. Requires unrestricted team management access.
Permission: projects:write · Team member · Workspace-wide access required.
MCP: Not exposed.
Query parameters
Response: HTTP 200.
List GitHub repositories
GET /api/v1/github/repositories
List one provider page of repositories with push access in a linked installation. Continue with nextCursor even when a filtered page is empty.
Permission: projects:write · Team member · Workspace-wide access required.
MCP: Not exposed.
Query parameters
Response: HTTP 200.
List projects
GET /api/v1/projects
List authorized active projects using a bounded cursor.
Permission: projects:read · Team member.
MCP: list_projects.
Query parameters
Response: HTTP 200.
Get project
GET /api/v1/projects/{projectId}
Read public project metadata. Secret values and private configuration snapshots are excluded.
Permission: projects:read · Team member.
MCP: get_project.
Path parameters
Query parameters
None.
Response: HTTP 200.
List environments
GET /api/v1/projects/{projectId}/environments
List the active environments for a project.
Permission: projects:read · Team member.
MCP: list_environments.
Path parameters
Query parameters
Response: HTTP 200.
Get project configuration
GET /api/v1/projects/{projectId}/configuration
Read the supported Compose runtime configuration and routes.
Permission: projects:read · Team member.
MCP: get_project_configuration.
Path parameters
Query parameters
None.
Response: HTTP 200.
List variables
GET /api/v1/projects/{projectId}/variables
List variable names and environment scopes. Values are never returned.
Permission: projects:read · Team member.
MCP: list_variables.
Path parameters
Query parameters
Response: HTTP 200.
List domains
GET /api/v1/projects/{projectId}/domains
List custom domains and their verification status.
Permission: projects:read · Team member.
MCP: list_domains.
Path parameters
Query parameters
Response: HTTP 200.
List aliases
GET /api/v1/projects/{projectId}/aliases
List generated deployment, branch, and environment aliases.
Permission: projects:read · Team member.
MCP: list_aliases.
Path parameters
Query parameters
Response: HTTP 200.
Rename project
PATCH /api/v1/projects/{projectId}
Rename a project using its current settings version. Resource IDs stay unchanged.
Permission: projects:write · Team member.
MCP: rename_project.
Path parameters
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 200.
Update variables
PATCH /api/v1/projects/{projectId}/variables
Patch write-only variables. Omitted values are preserved; deleted names are removed only in their chosen environment scope.
Permission: secrets:write · Team member.
MCP: update_variables.
Path parameters
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 200.
Update project configuration
PUT /api/v1/projects/{projectId}/configuration
Replace Compose runtime configuration and routes with settings version protection. Host lifecycle command changes require their separate administrator scope.
Permission: projects:write · Team member.
MCP: update_project_configuration.
Path parameters
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 200.
Delete project
DELETE /api/v1/projects/{projectId}
Delete a project and optionally queue deployed runtime removal. Requires current administrator role and the project name as confirmation.
Permission: projects:write · Owner/admin.
MCP: delete_project.
Path parameters
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 200.
Create project
POST /api/v1/projects
Create a Compose project from a repository accessible to the owner’s linked GitHub account. Browser GitHub connection and installation consent must already be complete.
Permission: projects:write · Team member · Workspace-wide access required.
MCP: create_project.
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 201.
Update environments
PUT /api/v1/projects/{projectId}/environments
Replace environment definitions with project settings version protection. Omitted server assignments are preserved. Production is required.
Permission: projects:write · Team member.
MCP: update_environments.
Path parameters
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 200.
Update environment servers
PUT /api/v1/projects/{projectId}/environment-servers
Update default and per-environment server assignments, regenerating environment aliases. Unspecified environment assignments are preserved.
Permission: projects:write · Team member.
MCP: update_environment_servers.
Path parameters
JSON body
Send Idempotency-Key as a header, not a body field.
Response: HTTP 200.