Projects API
Manage projects and repositories.
Projects are the organizational unit for sessions, resources, and analytics. Repositories link git repos to projects.
All endpoints are organization-scoped: /:org_id/projects.
Projects
List projects
GET /:org_id/projectsCreate project
POST /:org_id/projects
Content-Type: application/json
{
"name": "Customer Portal",
"slug": "customer-portal",
"project_type": "repository"
}project_type values: repository (single-repo, default) or workspace (multi-repo).
Show project
GET /:org_id/projects/:idReturns the project with linked repositories (for multi-repo projects).
Update project
PATCH /:org_id/projects/:id
Content-Type: application/json
{
"name": "Customer Portal v2"
}Delete project
DELETE /:org_id/projects/:idCheck slug availability
GET /:org_id/projects/slug-available?slug=customer-portalResolve project from git remote
POST /api/v1/projects/resolve
Content-Type: application/json
{
"remote_url": "git@github.com:acme/backend.git"
}Resolves a git remote URL to the matching project and organization. Used by the CLI during project detection.
Repositories
List repositories (nested under project)
GET /:org_id/projects/:project_id/reposCreate repository
POST /:org_id/projects/:project_id/repos
Content-Type: application/json
{
"remote_url": "git@github.com:acme/backend.git",
"name": "backend"
}Show repository
GET /:org_id/repos/:idDelete repository
DELETE /:org_id/repos/:idLookup by remote URL
GET /:org_id/repos/lookup?remote_url=git@github.com:acme/backend.gitReturns the repository if it exists in this organization, or null if not found. Used by the CLI during session creation.
The lookup endpoint returns an identical response structure whether the repo exists in another organization or doesn't exist at all. This prevents organization enumeration.