Request
- Base URL: /api (relative, and the document was published on a file host, not at the API’s origin)
- URL: /api/projects/{id}
- Auth: HTTP bearer
Path parameters
Project ID
Request body
Override the instance default for this new project.
Choose a delivery provider for this project. none disables the global default.
Optimistically reserved slug used by template creation to ensure the persisted project receives the URL shown during configuration.
Explicit port exposed by the container.
Priority order for port resolution:
- Environment-level exposed_port (explicit override)
- This project-level exposed_port (explicit override)
- Image EXPOSE directive (auto-detected from built image)
- Default: 3000
Set this when the desired application port differs from the image's first EXPOSE directive (for example, an image exposing HTTP and HTTPS).
Source type for project deployments
Determines where the deployment artifacts come from:
- External: Telemetry only, without hosting
- Git: Source code from a Git repository (traditional flow)
- DockerImage: Pre-built Docker image from external registry
- StaticFiles: Pre-built static files uploaded as a bundle
- UploadedSource: Source archive uploaded without a Git repository
- Manual: Flexible type that accepts any deployment method
Example request
{
"exposed_port": 8080,
"preset_config": {
"buildContext": "./api",
"dockerfilePath": "docker/Dockerfile"
}
}Response
Project updated successfully
Opt-in to AI summarization of metric alert notifications (NULL/false = off).
Opt-in to AI summarization of API traffic analytics (NULL/false = off).
Whether this project also accepts deployments from a source other than source_type — chiefly, whether a Git-backed project will take an uploaded source archive (drop). null or false means only the configured source_type (plus Docker images and static bundles, which every project accepts) may be deployed.
Attack mode - when enabled, requires CAPTCHA verification for all project environments
ADR-027 Phase 3 opt-out: when false, this project's traces are suppressed from cross-project discovery results. Default true (consistent with the OSS global-observability model where any OtelRead holder can query any project's telemetry).
Enable automatic preview environment creation for each branch
Opt-in to native error-tracking source context (false = off). When on, Temps stores uploaded source files and shows source code in stack traces.
Where auto-capture reads source from (relative to the checkout). Null = the deployment's Docker build context.
Git provider behind git_provider_connection_id: github, github_app, gitlab, gitea, bitbucket or generic. null when the project has no connection (public repository, Docker image or uploaded source).
Clients must use this rather than guessing the host from git_url: a self-hosted GitLab/Gitea/Bitbucket instance can live on any domain, and a connected project may have no clone URL stored at all.
Git clone URL for the repository (used for public repos without a provider connection)
GitLab webhook ID installed on the connected repository. null when no GitLab webhook is installed (not connected to GitLab, or webhook was removed / never created).
Hours to retain built Docker images before nightly cleanup. Null = use the system-wide default from settings.
Authoritative repository visibility. A missing connection alone does not imply that an incompletely configured repository is public.
Idle timeout (seconds) for on-demand preview environments.
When true, newly-created preview environments default to on-demand mode (containers stop after the configured idle timeout to save resources).
Wake timeout (seconds) for on-demand preview environments.
Product lifecycle classification. service projects are tied to a persisted, versioned template release; this is independent from the deployment transport in source_type.
When true, deploy clones only directory via git sparse-checkout.
Logo from the immutable service-template release applied to this project. Clients should prefer it over a deployed site's favicon.
Exact service-template version currently applied to the project.
Source type for project deployments
Determines where the deployment artifacts come from:
- External: Telemetry only, without hosting
- Git: Source code from a Git repository (traditional flow)
- DockerImage: Pre-built Docker image from external registry
- StaticFiles: Pre-built static files uploaded as a bundle
- UploadedSource: Source archive uploaded without a Git repository
- Manual: Flexible type that accepts any deployment method
Bundled template slug that created this project. Clients use this to present template-specific runtime configuration instead of generic source-build controls.
Opt-in Trivy vulnerability scanning of this project's deployed Docker images. Off by default — project owners explicitly enable it.
Example response
{
"docker_socket": {
"nodes": [
"control-plane",
"worker-1"
]
},
"git_provider_type": "gitlab",
"gitlab_webhook_id": 42,
"preset_config": {
"buildContext": "./api",
"dockerfilePath": "docker/Dockerfile"
}
}Changes
- info
added the optional property
/to the response with the status
- info
- info
added the optional property
/to the response with the status
- info