Projects
put/projects/{id}

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

idinteger required

Project ID

Request body

automatic_deployboolean nullable
build_commandstring nullable
cloudflare_enabledboolean nullable

Override the instance default for this new project.

custom_domainstring nullable
delivery_providerstring nullable

Choose a delivery provider for this project. none disables the global default.

directorystring
expected_slugstring nullable

Optimistically reserved slug used by template creation to ensure the persisted project receives the URL shown during configuration.

exposed_portinteger nullable

Explicit port exposed by the container.

Priority order for port resolution:

  1. Environment-level exposed_port (explicit override)
  2. This project-level exposed_port (explicit override)
  3. Image EXPOSE directive (auto-detected from built image)
  4. 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).

git_provider_connection_idinteger nullable
git_urlstring nullable
install_commandstring nullable
is_on_demandboolean nullable
is_public_repoboolean nullable
is_web_appboolean nullable
main_branchstring
namestring required
output_dirstring nullable
performance_metrics_enabledboolean
presetstring
project_typestring nullable
repo_namestring nullable
repo_ownerstring nullable
source_type'external' | 'git' | 'docker_image' | 'static_files' | 'uploaded_source' | 'manual'

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
storage_service_idsinteger[]
use_default_wildcardboolean nullable

Example request

{
  "exposed_port": 8080,
  "preset_config": {
    "buildContext": "./api",
    "dockerfilePath": "docker/Dockerfile"
  }
}

Response

Project updated successfully

ai_alert_summaries_enabledboolean nullable

Opt-in to AI summarization of metric alert notifications (NULL/false = off).

ai_api_traffic_summary_enabledboolean nullable

Opt-in to AI summarization of API traffic analytics (NULL/false = off).

allow_alternate_sourcesboolean nullable

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_modeboolean required

Attack mode - when enabled, requires CAPTCHA verification for all project environments

created_atinteger required
cross_project_trace_sharingboolean required

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).

directorystring required
enable_preview_environmentsboolean required

Enable automatic preview environment creation for each branch

error_source_context_enabledboolean required

Opt-in to native error-tracking source context (false = off). When on, Temps stores uploaded source files and shows source code in stack traces.

error_source_rootstring nullable

Where auto-capture reads source from (relative to the checkout). Null = the deployment's Docker build context.

git_provider_connection_idinteger nullable
git_provider_typestring nullable

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_urlstring nullable

Git clone URL for the repository (used for public repos without a provider connection)

gitlab_webhook_idinteger nullable

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).

idinteger required
image_retention_hoursinteger nullable

Hours to retain built Docker images before nightly cleanup. Null = use the system-wide default from settings.

is_public_repoboolean required

Authoritative repository visibility. A missing connection alone does not imply that an incompletely configured repository is public.

last_deploymentinteger nullable
main_branchstring required
namestring required
presetstring nullable
preview_envs_idle_timeout_secondsinteger required

Idle timeout (seconds) for on-demand preview environments.

preview_envs_on_demandboolean required

When true, newly-created preview environments default to on-demand mode (containers stop after the configured idle timeout to save resources).

preview_envs_wake_timeout_secondsinteger required

Wake timeout (seconds) for on-demand preview environments.

project_typestring required

Product lifecycle classification. service projects are tied to a persisted, versioned template release; this is independent from the deployment transport in source_type.

pull_only_root_directoryboolean required

When true, deploy clones only directory via git sparse-checkout.

repo_namestring nullable
repo_ownerstring nullable
service_template_image_urlstring nullable

Logo from the immutable service-template release applied to this project. Clients should prefer it over a deployed site's favicon.

service_template_versionstring nullable

Exact service-template version currently applied to the project.

slugstring required
source_type'external' | 'git' | 'docker_image' | 'static_files' | 'uploaded_source' | 'manual' required

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
template_slugstring nullable

Bundled template slug that created this project. Clients use this to present template-specific runtime configuration instead of generic source-build controls.

updated_atinteger required
vulnerability_scanning_enabledboolean required

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

      added the optional property / to the response with the status