Skip to Content

Projects

Projects group related applications, databases, and other resources. Every workload belongs to a project.

Endpoints

MethodPathDescription
GET/api/v1/projectsList projects
POST/api/v1/projectsCreate project
GET/api/v1/projects/:idGet project
PUT/api/v1/projects/:idUpdate project
DELETE/api/v1/projects/:idDelete project and all resources
POST/api/v1/projects/:id/iconUpload icon (multipart form)
DELETE/api/v1/projects/:id/iconDelete icon

POST /api/v1/projects

{ "name": "my-saas", "display_name": "My SaaS App", "description": "Production SaaS application", "color": "#3B82F6", "single_server_mode": false, "default_server_id": "550e8400-e29b-41d4-a716-446655440000" }

All fields except name are optional.


PUT /api/v1/projects/:id

All fields are optional. Only provided fields are updated.

{ "name": "my-saas-v2", "description": "Updated description", "auto_error_tracking_enabled": true }

Project Object

{ "id": "uuid", "name": "my-saas", "display_name": "My SaaS App", "description": "Production SaaS application", "color": "#3B82F6", "icon_path": "/uploads/projects/icon.png", "single_server_mode": false, "default_server_id": "uuid", "auto_error_tracking_enabled": true, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" }

Members

MethodPathDescription
GET/api/v1/projects/:id/membersList members
POST/api/v1/projects/:id/membersAdd member
PUT/api/v1/projects/:id/members/:memberIdUpdate role
DELETE/api/v1/projects/:id/members/:memberIdRemove member
POST/api/v1/projects/:id/transferTransfer ownership

Add Member

{ "user_id": "uuid", "role": "admin | member | viewer" }

Transfer Ownership

{ "new_owner_id": "uuid" }

Invites

MethodPathDescription
GET/api/v1/projects/:id/invitesList pending invites
POST/api/v1/projects/:id/invitesCreate invite
DELETE/api/v1/projects/:id/invites/:inviteIdCancel invite
GET/api/v1/invites/:tokenGet invite by token
POST/api/v1/invites/:token/acceptAccept invite
GET/api/v1/me/invitesList my pending invites

Create Invite

{ "email": "[email protected]", "role": "member" }

Environments

Environments allow you to run separate instances of your workloads (e.g., staging vs production).

MethodPathDescription
GET/api/v1/projects/:projectId/environmentsList environments
POST/api/v1/projects/:projectId/environmentsCreate environment
GET/api/v1/projects/:projectId/environments/:envIdGet environment
PUT/api/v1/projects/:projectId/environments/:envIdUpdate environment
DELETE/api/v1/projects/:projectId/environments/:envIdDelete (?force=true)
POST/api/v1/projects/:projectId/environments/:envId/set-defaultSet as default
POST/api/v1/projects/:projectId/environments/:envId/cloneClone environment

Create Environment

{ "name": "staging", "display_name": "Staging", "type": "staging", "description": "Pre-production environment", "color": "#F59E0B", "git_branch": "develop" }

Clone Environment

Creates a copy of the environment and all its resources.

{ "name": "staging-v2", "type": "staging", "description": "Cloned from staging" }
Last updated on