{"openapi":"3.1.0","info":{"title":"Sevalla API docs","version":"1.0.0"},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key authentication. Pass your API key as a Bearer token in the Authorization header."}},"schemas":{}},"paths":{"/applications":{"post":{"operationId":"createApplicationV3","summary":"Create application","tags":["Applications"],"description":"Create a new application from a Git repository or Docker image. The application is created with a default web process, auto deploy disabled, and an initial deployment is not triggered automatically - use the Deploy endpoint to start the first deployment. Auto deploy can be enabled later via the Update endpoint but only works with privateGit applications.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":2,"maxLength":64,"description":"Human-readable name for the new application. Must be between 2 and 64 characters.","example":"My Application"},"cluster_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the cluster (data center location) where the application will be created.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"source":{"type":"string","enum":["privateGit","publicGit","dockerImage"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry.","example":"privateGit"},"project_id":{"description":"Identifier of the project to group this application under. When omitted, the application is not assigned to any project.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"git_type":{"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Required for private git sources when the provider cannot be auto-detected.","example":"github","anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}]},"repo_url":{"description":"Full URL of the Git repository. Required when source is `privateGit` or `publicGit`.","example":"https://github.com/user/repo","anyOf":[{"type":"string"},{"type":"null"}]},"default_branch":{"description":"Git branch used for deployments. When omitted, the repository default branch is used.","example":"main","anyOf":[{"type":"string"},{"type":"null"}]},"docker_image":{"description":"Docker image reference including tag or digest. Required when source is `dockerImage`.","example":"nginx:latest","anyOf":[{"type":"string"},{"type":"null"}]},"docker_registry_credential_id":{"description":"Identifier of a stored Docker registry credential for pulling private images. Only used when source is `dockerImage`.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["display_name","cluster_id","source"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this application is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-app"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Kubernetes namespace where the application workloads run. Assigned automatically during creation.","example":"my-app-abc123"},"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name shown in the dashboard and API responses","example":"My Application"},"source":{"type":"string","enum":["privateGit","publicGit","dockerImage","app"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry. `app` - internally created (cloned or preview apps).","example":"privateGit"},"type":{"type":"string","enum":["app","previewApp"],"description":"Application type. `app` - standard application. `previewApp` - ephemeral preview environment created from a pull request.","example":"app"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deleting","appDeletionFailed","deploymentCancelled"]},{"type":"null"}],"description":"Current status of the application reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"build_cache_enabled":{"type":"boolean","description":"When enabled, build artifacts are cached between deployments to speed up subsequent builds","example":true},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"hibernation_enabled":{"type":"boolean","description":"When enabled, the application automatically scales down to zero after a period of inactivity and wakes up on the next incoming request","example":false},"hibernate_after_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Number of seconds of inactivity before the application is hibernated. Only applies when hibernation is enabled.","example":3600},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch. Only applies to applications with a private Git connection (privateGit) - has no effect on publicGit or dockerImage applications.","example":true},"is_suspended":{"type":"boolean","description":"Whether the application is currently suspended. Suspended applications have all processes stopped but retain their configuration.","example":false},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for non-git sources.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository. Null for Docker image source applications.","example":"https://github.com/user/repo"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker image reference including tag or digest. Only set for applications with `dockerImage` source.","example":"nginx:latest"},"build_type":{"type":"string","enum":["dockerfile","pack","nixpacks","railpack"],"description":"Build strategy used to build the application. `nixpacks` - auto-detected build system. `railpack` - auto-detected build system, successor to Nixpacks. `dockerfile` - build using a Dockerfile. `pack` - build using Cloud Native Buildpacks.","example":"nixpacks"},"build_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the build directory within the repository. Defaults to the repository root.","example":"."},"pack_builder":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cloud Native Buildpacks builder image. Only applies when build type is `pack`.","example":"heroku/builder:22"},"nixpacks_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pinned Nixpacks version. When null, the platform default version is used. Only applies when build type is `nixpacks`.","example":"1.21.0"},"dockerfile_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the Dockerfile within the repository. Only applies when build type is `dockerfile`.","example":"Dockerfile"},"docker_context":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker build context path relative to the repository root. Only applies when build type is `dockerfile`.","example":"."},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the user who created the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","namespace","display_name","source","type","status","build_cache_enabled","git_lfs_enabled","hibernation_enabled","hibernate_after_seconds","auto_deploy","is_suspended","git_type","repo_url","default_branch","docker_image","build_type","build_path","pack_builder","nixpacks_version","dockerfile_path","docker_context","allow_deploy_paths","ignore_deploy_paths","created_by","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"listApplicationsV3","summary":"List applications","tags":["Applications"],"description":"Retrieve a paginated list of all applications the authenticated API key has access to. Results are ordered by creation date (most recent first) and can be paginated using the `limit` and `offset` query parameters.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-app"},"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name shown in the dashboard and API responses","example":"My Application"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deleting","appDeletionFailed","deploymentCancelled"]},{"type":"null"}],"description":"Current status of the application reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"type":{"type":"string","enum":["app","previewApp"],"description":"Application type. `app` - standard application. `previewApp` - ephemeral preview environment created from a pull request.","example":"app"},"source":{"type":"string","enum":["privateGit","publicGit","dockerImage","app"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry. `app` - internally created (cloned or preview apps).","example":"privateGit"},"is_suspended":{"type":"boolean","description":"Whether the application is currently suspended. Suspended applications have all processes stopped but retain their configuration.","example":false},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","display_name","status","type","source","is_suspended","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}":{"get":{"operationId":"getApplicationV3","summary":"Get application","tags":["Applications"],"description":"Retrieve the full details of an application including its source configuration, build settings, and current status.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this application is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-app"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Kubernetes namespace where the application workloads run. Assigned automatically during creation.","example":"my-app-abc123"},"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name shown in the dashboard and API responses","example":"My Application"},"source":{"type":"string","enum":["privateGit","publicGit","dockerImage","app"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry. `app` - internally created (cloned or preview apps).","example":"privateGit"},"type":{"type":"string","enum":["app","previewApp"],"description":"Application type. `app` - standard application. `previewApp` - ephemeral preview environment created from a pull request.","example":"app"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deleting","appDeletionFailed","deploymentCancelled"]},{"type":"null"}],"description":"Current status of the application reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"build_cache_enabled":{"type":"boolean","description":"When enabled, build artifacts are cached between deployments to speed up subsequent builds","example":true},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"hibernation_enabled":{"type":"boolean","description":"When enabled, the application automatically scales down to zero after a period of inactivity and wakes up on the next incoming request","example":false},"hibernate_after_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Number of seconds of inactivity before the application is hibernated. Only applies when hibernation is enabled.","example":3600},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch. Only applies to applications with a private Git connection (privateGit) - has no effect on publicGit or dockerImage applications.","example":true},"is_suspended":{"type":"boolean","description":"Whether the application is currently suspended. Suspended applications have all processes stopped but retain their configuration.","example":false},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for non-git sources.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository. Null for Docker image source applications.","example":"https://github.com/user/repo"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker image reference including tag or digest. Only set for applications with `dockerImage` source.","example":"nginx:latest"},"build_type":{"type":"string","enum":["dockerfile","pack","nixpacks","railpack"],"description":"Build strategy used to build the application. `nixpacks` - auto-detected build system. `railpack` - auto-detected build system, successor to Nixpacks. `dockerfile` - build using a Dockerfile. `pack` - build using Cloud Native Buildpacks.","example":"nixpacks"},"build_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the build directory within the repository. Defaults to the repository root.","example":"."},"pack_builder":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cloud Native Buildpacks builder image. Only applies when build type is `pack`.","example":"heroku/builder:22"},"nixpacks_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pinned Nixpacks version. When null, the platform default version is used. Only applies when build type is `nixpacks`.","example":"1.21.0"},"dockerfile_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the Dockerfile within the repository. Only applies when build type is `dockerfile`.","example":"Dockerfile"},"docker_context":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker build context path relative to the repository root. Only applies when build type is `dockerfile`.","example":"."},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"buildpacks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the buildpack","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"source":{"type":"string","description":"Buildpack source URL","example":"heroku/nodejs"},"order":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Order in which the buildpack is applied during the build","example":0}},"required":["id","source","order"],"additionalProperties":false},"description":"Custom buildpacks configured for this application. Only applies when build type is `pack`."},"cluster_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the cluster where this application is deployed","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"docker_registry_credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the Docker registry credential used to pull the container image. Only applies to applications with `dockerImage` source.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the user who created the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","namespace","display_name","source","type","status","build_cache_enabled","git_lfs_enabled","hibernation_enabled","hibernate_after_seconds","auto_deploy","is_suspended","git_type","repo_url","default_branch","docker_image","build_type","build_path","pack_builder","nixpacks_version","dockerfile_path","docker_context","allow_deploy_paths","ignore_deploy_paths","buildpacks","cluster_id","docker_registry_credential_id","created_by","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateApplicationV3","summary":"Update application","tags":["Applications"],"description":"Update one or more properties of an existing application. Only include the fields you want to change - omitted fields are left unchanged. Changes to build settings take effect on the next deployment. Changing the source switches how the application is built and deployed - for example, from a Git repository to a Docker image.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"Human-readable name shown in the dashboard and API responses","example":"My Application","type":"string","minLength":1,"maxLength":64},"auto_deploy":{"description":"Enable or disable automatic deployments on every push to the default branch. Only works with privateGit applications - has no effect on publicGit or dockerImage applications.","example":true,"type":"boolean"},"default_branch":{"description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main","type":"string","minLength":1},"hibernation_enabled":{"description":"Enable or disable automatic hibernation. When enabled, the application scales down to zero after a period of inactivity.","example":false,"type":"boolean"},"hibernate_after_seconds":{"description":"Number of seconds of inactivity before the application is hibernated. Only applies when hibernation is enabled.","example":3600,"type":"integer","minimum":1,"maximum":604800},"build_type":{"description":"Build strategy to use. `nixpacks` - auto-detected build system. `railpack` - auto-detected build system, successor to Nixpacks. `dockerfile` - build using a Dockerfile. `pack` - build using Cloud Native Buildpacks.","example":"nixpacks","type":"string","enum":["dockerfile","pack","nixpacks","railpack"]},"build_path":{"description":"Relative path to the build directory within the repository. Defaults to the repository root.","example":".","type":"string"},"dockerfile_path":{"description":"Relative path to the Dockerfile within the repository. Only applies when build type is `dockerfile`.","example":"Dockerfile","type":"string"},"docker_context":{"description":"Docker build context path relative to the repository root. Only applies when build type is `dockerfile`.","example":".","type":"string"},"build_cache_enabled":{"description":"Enable or disable build caching. When enabled, build artifacts are cached between deployments.","example":true,"type":"boolean"},"git_lfs_enabled":{"description":"Enable or disable Git LFS during the source checkout step. Enabled by default. When enabled, LFS objects are fetched on every deployment. Disable to skip LFS downloads.","example":true,"type":"boolean"},"docker_registry_credential_id":{"description":"Identifier of a Docker registry credential. Used for pulling private base images when build type is `dockerfile`, or for pulling the container image when source is `dockerImage`.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"pack_builder":{"description":"Cloud Native Buildpacks builder image. `heroku/builder:22` - Heroku-22 stack. `heroku/builder:24` - Heroku-24 stack. Only applies when build type is `pack`.","example":"heroku/builder:22","type":"string","enum":["heroku/builder:22","heroku/builder:24"]},"nixpacks_version":{"description":"Pinned Nixpacks version. When not set, the platform default version is used. Only applies when build type is `nixpacks`.","example":"1.29","type":"string","enum":["1.29","1.39","1.41"]},"buildpacks":{"description":"List of buildpacks to use during the build phase. Only applies when build type is `pack`.","type":"array","items":{"type":"object","properties":{"order":{"type":"integer","minimum":0,"maximum":20,"description":"Order in which this buildpack runs during the build phase","example":1},"source":{"type":"string","maxLength":500,"description":"Buildpack source URL or identifier","example":"heroku/nodejs"}},"required":["order","source"]}},"allow_deploy_paths":{"description":"Glob patterns for file paths that trigger a deployment. When set, only commits touching these paths trigger auto deploy. Mutually exclusive with ignore_deploy_paths.","example":["src/**","package.json"],"type":"array","items":{"type":"string"}},"ignore_deploy_paths":{"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy. Mutually exclusive with allow_deploy_paths.","example":["docs/**","README.md"],"type":"array","items":{"type":"string"}},"source":{"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry.","example":"privateGit","type":"string","enum":["privateGit","publicGit","dockerImage"]},"git_type":{"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Only used when source is `privateGit` or `publicGit`.","example":"github","type":"string","enum":["github","bitbucket","gitlab"]},"repo_url":{"description":"Full URL of the Git repository. Required when source is `privateGit` or `publicGit`.","example":"https://github.com/user/repo","type":"string"},"docker_image":{"description":"Docker image reference including tag or digest. Required when source is `dockerImage`.","example":"nginx:latest","type":"string"}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this application is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-app"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Kubernetes namespace where the application workloads run. Assigned automatically during creation.","example":"my-app-abc123"},"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name shown in the dashboard and API responses","example":"My Application"},"source":{"type":"string","enum":["privateGit","publicGit","dockerImage","app"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry. `app` - internally created (cloned or preview apps).","example":"privateGit"},"type":{"type":"string","enum":["app","previewApp"],"description":"Application type. `app` - standard application. `previewApp` - ephemeral preview environment created from a pull request.","example":"app"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deleting","appDeletionFailed","deploymentCancelled"]},{"type":"null"}],"description":"Current status of the application reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"build_cache_enabled":{"type":"boolean","description":"When enabled, build artifacts are cached between deployments to speed up subsequent builds","example":true},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"hibernation_enabled":{"type":"boolean","description":"When enabled, the application automatically scales down to zero after a period of inactivity and wakes up on the next incoming request","example":false},"hibernate_after_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Number of seconds of inactivity before the application is hibernated. Only applies when hibernation is enabled.","example":3600},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch. Only applies to applications with a private Git connection (privateGit) - has no effect on publicGit or dockerImage applications.","example":true},"is_suspended":{"type":"boolean","description":"Whether the application is currently suspended. Suspended applications have all processes stopped but retain their configuration.","example":false},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for non-git sources.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository. Null for Docker image source applications.","example":"https://github.com/user/repo"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker image reference including tag or digest. Only set for applications with `dockerImage` source.","example":"nginx:latest"},"build_type":{"type":"string","enum":["dockerfile","pack","nixpacks","railpack"],"description":"Build strategy used to build the application. `nixpacks` - auto-detected build system. `railpack` - auto-detected build system, successor to Nixpacks. `dockerfile` - build using a Dockerfile. `pack` - build using Cloud Native Buildpacks.","example":"nixpacks"},"build_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the build directory within the repository. Defaults to the repository root.","example":"."},"pack_builder":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cloud Native Buildpacks builder image. Only applies when build type is `pack`.","example":"heroku/builder:22"},"nixpacks_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pinned Nixpacks version. When null, the platform default version is used. Only applies when build type is `nixpacks`.","example":"1.21.0"},"dockerfile_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the Dockerfile within the repository. Only applies when build type is `dockerfile`.","example":"Dockerfile"},"docker_context":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker build context path relative to the repository root. Only applies when build type is `dockerfile`.","example":"."},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the user who created the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","namespace","display_name","source","type","status","build_cache_enabled","git_lfs_enabled","hibernation_enabled","hibernate_after_seconds","auto_deploy","is_suspended","git_type","repo_url","default_branch","docker_image","build_type","build_path","pack_builder","nixpacks_version","dockerfile_path","docker_context","allow_deploy_paths","ignore_deploy_paths","created_by","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteApplicationV3","summary":"Delete application","tags":["Applications"],"description":"Permanently delete an application and all of its associated resources including processes, deployments, and environment variables. This operation is irreversible and cannot be performed while a deployment is in progress.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Application is being deleted"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/activate":{"post":{"operationId":"activateApplicationV3","summary":"Activate application","tags":["Applications"],"description":"Activate a previously suspended application, restoring all processes to their running state. The operation is asynchronous - the application status will transition once activation completes.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Application activation started"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/suspend":{"post":{"operationId":"suspendApplicationV3","summary":"Suspend application","tags":["Applications"],"description":"Suspend a running application by stopping all of its processes. The application configuration, environment variables, and deployment history are preserved. Use the activate endpoint to restore the application.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Application suspension started"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/clone":{"post":{"operationId":"cloneApplicationV3","summary":"Clone application","tags":["Applications"],"description":"Create an identical copy of an existing application including its processes, environment variables, build settings, and configuration. The cloned application is created in a new namespace and an initial deployment is triggered automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":2,"maxLength":64,"description":"Human-readable name for the cloned application. Must be unique within the company.","example":"My App (Clone)"},"cluster_id":{"description":"Target cluster to create the cloned application in. When omitted, the clone is created in the same cluster as the source application.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["display_name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this application is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-app"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Kubernetes namespace where the application workloads run. Assigned automatically during creation.","example":"my-app-abc123"},"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name shown in the dashboard and API responses","example":"My Application"},"source":{"type":"string","enum":["privateGit","publicGit","dockerImage","app"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL. `dockerImage` - Docker container image from a registry. `app` - internally created (cloned or preview apps).","example":"privateGit"},"type":{"type":"string","enum":["app","previewApp"],"description":"Application type. `app` - standard application. `previewApp` - ephemeral preview environment created from a pull request.","example":"app"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deleting","appDeletionFailed","deploymentCancelled"]},{"type":"null"}],"description":"Current status of the application reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"build_cache_enabled":{"type":"boolean","description":"When enabled, build artifacts are cached between deployments to speed up subsequent builds","example":true},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"hibernation_enabled":{"type":"boolean","description":"When enabled, the application automatically scales down to zero after a period of inactivity and wakes up on the next incoming request","example":false},"hibernate_after_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Number of seconds of inactivity before the application is hibernated. Only applies when hibernation is enabled.","example":3600},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch. Only applies to applications with a private Git connection (privateGit) - has no effect on publicGit or dockerImage applications.","example":true},"is_suspended":{"type":"boolean","description":"Whether the application is currently suspended. Suspended applications have all processes stopped but retain their configuration.","example":false},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for non-git sources.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository. Null for Docker image source applications.","example":"https://github.com/user/repo"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"docker_image":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker image reference including tag or digest. Only set for applications with `dockerImage` source.","example":"nginx:latest"},"build_type":{"type":"string","enum":["dockerfile","pack","nixpacks","railpack"],"description":"Build strategy used to build the application. `nixpacks` - auto-detected build system. `railpack` - auto-detected build system, successor to Nixpacks. `dockerfile` - build using a Dockerfile. `pack` - build using Cloud Native Buildpacks.","example":"nixpacks"},"build_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the build directory within the repository. Defaults to the repository root.","example":"."},"pack_builder":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cloud Native Buildpacks builder image. Only applies when build type is `pack`.","example":"heroku/builder:22"},"nixpacks_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pinned Nixpacks version. When null, the platform default version is used. Only applies when build type is `nixpacks`.","example":"1.21.0"},"dockerfile_path":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Relative path to the Dockerfile within the repository. Only applies when build type is `dockerfile`.","example":"Dockerfile"},"docker_context":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Docker build context path relative to the repository root. Only applies when build type is `dockerfile`.","example":"."},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the user who created the application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the application was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","namespace","display_name","source","type","status","build_cache_enabled","git_lfs_enabled","hibernation_enabled","hibernate_after_seconds","auto_deploy","is_suspended","git_type","repo_url","default_branch","docker_image","build_type","build_path","pack_builder","nixpacks_version","dockerfile_path","docker_context","allow_deploy_paths","ignore_deploy_paths","created_by","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/deployments":{"get":{"operationId":"listDeploymentsV3","summary":"List deployments","tags":["Applications"],"description":"Retrieve a paginated list of all deployments for an application, ordered by most recent first. Each deployment includes its status, source details, and timestamps.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment in its lifecycle","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was initiated. `manual` - triggered by a user or API call. `automatic` - triggered automatically by a git push or webhook.","example":"manual"},"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific action that initiated the deployment, such as MANUAL_DEPLOY, ROLLBACK_DEPLOYMENT, AUTO_DEPLOY_ON_PUSH, or RESTART","example":"MANUAL_DEPLOY"},"steps":{"type":"array","items":{"type":"string","enum":["checkout","build","rollout","syncConnections"]},"description":"Ordered list of pipeline steps this deployment will execute. `checkout` - clone the repository. `build` - build the application image. `rollout` - deploy the image to the cluster. `syncConnections` - synchronize database and service connections.","example":["rollout"]},"docker_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Docker image built or used for this deployment, including the registry path and tag","example":"us-central1-docker.pkg.dev/project/repo/image:abc123"},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the source repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for Docker image deployments.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment. Null for Docker image deployments.","example":"https://github.com/user/repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch that was deployed. Null for Docker image deployments.","example":"main"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA hash of the Git commit that was deployed","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed Git commit, truncated to 1000 characters","example":"feat: add new feature"},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Username of the Git commit author on the hosting provider","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the Git commit author on the hosting provider","example":"https://avatars.githubusercontent.com/u/583231"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started executing, in ISO 8601 format. Null if still waiting.","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished (succeeded, failed, or was cancelled), in ISO 8601 format. Null if still in progress.","example":"2025-01-30T00:05:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","status","type","trigger","steps","docker_image_url","git_type","repo_url","branch","commit_sha","commit_message","author_login","author_img","started_at","finished_at","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"triggerDeploymentV3","summary":"Trigger deployment","tags":["Applications"],"description":"Trigger a new deployment for an application. By default, deploys the latest commit on the default branch. You can optionally specify a different branch, a Docker image, or restart from the last successful deployment. The deployment runs asynchronously - use the get deployment endpoint to track its progress.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"branch":{"description":"Git branch to deploy. When omitted, the application default branch is used. Only applies to Git-based applications.","example":"main","type":"string"},"docker_image":{"description":"Docker image reference to deploy (e.g., `nginx:latest`). Only applies to applications with `dockerImage` source.","example":"nginx:latest","type":"string"},"is_restart":{"default":false,"description":"When true, redeploys using the existing build artifact from the last successful deployment, skipping the build step. Useful when you have updated runtime-level configuration and do not need to rebuild the application.","type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment in its lifecycle","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was initiated. `manual` - triggered by a user or API call. `automatic` - triggered automatically by a git push or webhook.","example":"manual"},"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific action that initiated the deployment, such as MANUAL_DEPLOY, ROLLBACK_DEPLOYMENT, AUTO_DEPLOY_ON_PUSH, or RESTART","example":"MANUAL_DEPLOY"},"steps":{"type":"array","items":{"type":"string","enum":["checkout","build","rollout","syncConnections"]},"description":"Ordered list of pipeline steps this deployment will execute. `checkout` - clone the repository. `build` - build the application image. `rollout` - deploy the image to the cluster. `syncConnections` - synchronize database and service connections.","example":["rollout"]},"docker_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Docker image built or used for this deployment, including the registry path and tag","example":"us-central1-docker.pkg.dev/project/repo/image:abc123"},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the source repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for Docker image deployments.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment. Null for Docker image deployments.","example":"https://github.com/user/repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch that was deployed. Null for Docker image deployments.","example":"main"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA hash of the Git commit that was deployed","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed Git commit, truncated to 1000 characters","example":"feat: add new feature"},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Username of the Git commit author on the hosting provider","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the Git commit author on the hosting provider","example":"https://avatars.githubusercontent.com/u/583231"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started executing, in ISO 8601 format. Null if still waiting.","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished (succeeded, failed, or was cancelled), in ISO 8601 format. Null if still in progress.","example":"2025-01-30T00:05:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","status","type","trigger","steps","docker_image_url","git_type","repo_url","branch","commit_sha","commit_message","author_login","author_img","started_at","finished_at","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/deployments/{deployment_id}":{"get":{"operationId":"getDeploymentV3","summary":"Get deployment","tags":["Applications"],"description":"Retrieve the full details of a specific deployment including its current status, pipeline steps, Git source information, and timestamps.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"deployment_id","required":true,"description":"Deployment identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment in its lifecycle","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was initiated. `manual` - triggered by a user or API call. `automatic` - triggered automatically by a git push or webhook.","example":"manual"},"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific action that initiated the deployment, such as MANUAL_DEPLOY, ROLLBACK_DEPLOYMENT, AUTO_DEPLOY_ON_PUSH, or RESTART","example":"MANUAL_DEPLOY"},"steps":{"type":"array","items":{"type":"string","enum":["checkout","build","rollout","syncConnections"]},"description":"Ordered list of pipeline steps this deployment will execute. `checkout` - clone the repository. `build` - build the application image. `rollout` - deploy the image to the cluster. `syncConnections` - synchronize database and service connections.","example":["rollout"]},"docker_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Docker image built or used for this deployment, including the registry path and tag","example":"us-central1-docker.pkg.dev/project/repo/image:abc123"},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the source repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for Docker image deployments.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment. Null for Docker image deployments.","example":"https://github.com/user/repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch that was deployed. Null for Docker image deployments.","example":"main"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA hash of the Git commit that was deployed","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed Git commit, truncated to 1000 characters","example":"feat: add new feature"},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Username of the Git commit author on the hosting provider","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the Git commit author on the hosting provider","example":"https://avatars.githubusercontent.com/u/583231"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started executing, in ISO 8601 format. Null if still waiting.","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished (succeeded, failed, or was cancelled), in ISO 8601 format. Null if still in progress.","example":"2025-01-30T00:05:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","status","type","trigger","steps","docker_image_url","git_type","repo_url","branch","commit_sha","commit_message","author_login","author_img","started_at","finished_at","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/deployments/rollback":{"post":{"operationId":"rollbackDeploymentV3","summary":"Rollback deployment","tags":["Applications"],"description":"Roll back an application to the most recent successful deployment. This creates a new deployment that reuses the build artifact from the previous successful deployment, skipping the build step entirely.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment in its lifecycle","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was initiated. `manual` - triggered by a user or API call. `automatic` - triggered automatically by a git push or webhook.","example":"manual"},"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific action that initiated the deployment, such as MANUAL_DEPLOY, ROLLBACK_DEPLOYMENT, AUTO_DEPLOY_ON_PUSH, or RESTART","example":"MANUAL_DEPLOY"},"steps":{"type":"array","items":{"type":"string","enum":["checkout","build","rollout","syncConnections"]},"description":"Ordered list of pipeline steps this deployment will execute. `checkout` - clone the repository. `build` - build the application image. `rollout` - deploy the image to the cluster. `syncConnections` - synchronize database and service connections.","example":["rollout"]},"docker_image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Docker image built or used for this deployment, including the registry path and tag","example":"us-central1-docker.pkg.dev/project/repo/image:abc123"},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the source repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for Docker image deployments.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment. Null for Docker image deployments.","example":"https://github.com/user/repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch that was deployed. Null for Docker image deployments.","example":"main"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA hash of the Git commit that was deployed","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed Git commit, truncated to 1000 characters","example":"feat: add new feature"},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Username of the Git commit author on the hosting provider","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the Git commit author on the hosting provider","example":"https://avatars.githubusercontent.com/u/583231"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started executing, in ISO 8601 format. Null if still waiting.","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished (succeeded, failed, or was cancelled), in ISO 8601 format. Null if still in progress.","example":"2025-01-30T00:05:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","status","type","trigger","steps","docker_image_url","git_type","repo_url","branch","commit_sha","commit_message","author_login","author_img","started_at","finished_at","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/deployments/{deployment_id}/cancel":{"post":{"operationId":"cancelDeploymentV3","summary":"Cancel deployment","tags":["Applications"],"description":"Cancel a deployment that is currently in progress or waiting. Deployments in the `waiting` status are skipped immediately, while `inProgress` deployments are stopped mid-execution. Completed or already cancelled deployments cannot be cancelled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"deployment_id","required":true,"description":"Deployment identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Cancellation result message","example":"Deployment is being cancelled"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/deployments/{deployment_id}/logs":{"get":{"operationId":"getApplicationDeploymentLogsV3","summary":"Get application deployment logs","tags":["Applications"],"description":"Retrieve build and deployment logs for a specific deployment. These include output from the build process and rollout steps. Use the `filters` parameter for advanced filtering by severity, message content, tags, or attributes.","parameters":[{"schema":{"example":"2026-02-22T14:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"Start of the time range in ISO 8601 format. Defaults to 1 hour ago if not provided."},{"schema":{"example":"2026-02-22T15:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"End of the time range in ISO 8601 format. Defaults to now if not provided."},{"schema":{"example":"[{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced log filtering. Each filter has a `key`, `operator`, and `value` or `values` field. Example: [{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]"},{"schema":{"default":1000,"example":1000,"type":"integer","minimum":1,"maximum":5000},"in":"query","name":"limit","required":false,"description":"Maximum number of log entries to return (1-5000)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"deployment_id","required":true,"description":"Deployment identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the log entry","example":"abc123"},"message":{"type":"string","description":"Log message content","example":"Server started on port 3000"},"service":{"type":"string","description":"Service that produced the log entry, such as APP_RUNTIME, APP_ACCESS, APP_DEPLOYMENT, SS_DEPLOYMENT, or SS_ACCESS","example":"APP_RUNTIME"},"severity":{"type":"string","description":"Log severity level such as INFO, WARN, ERROR, or DEBUG","example":"INFO"},"timestamp":{"type":"string","description":"Formatted timestamp of the log entry","example":"2026-02-22 15:30:00.000"},"tags":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Key-value pairs of tags associated with the log entry, such as container name or resource ID","example":{"idApp":"fb5e5168-4281-4bec-94c5-0d1584e9e657","container":"web"}},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Additional structured attributes attached to the log entry","example":{}},"unix_timestamp":{"type":"number","description":"Unix timestamp of the log entry in microseconds","example":1740236400000000}},"required":["id","message","service","severity","timestamp","tags","attributes","unix_timestamp"],"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes":{"get":{"operationId":"listProcessesV3","summary":"List processes","tags":["Applications"],"description":"Retrieve a paginated list of all processes for an application, ordered by their display order and creation time. Each process includes its runtime configuration, scaling strategy, and resource limits.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the process","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this process belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":64,"description":"Unique key identifying the process within the application, derived from the Procfile entry name","example":"web"},"type":{"anyOf":[{"type":"string","enum":["web","worker","cron","job"]},{"type":"null"}],"description":"Process runtime type. `web` - HTTP server process that handles incoming web traffic. `worker` - background process that runs continuously. `cron` - scheduled process that runs at specified intervals. `job` - one-time process that runs to completion and then stops.","example":"web"},"display_name":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"Human-readable name for the process shown in the dashboard","example":"Web Process"},"entrypoint":{"type":"string","maxLength":1024,"description":"Command used to start the process","example":"npm start"},"port":{"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}],"description":"Port number the process listens on for incoming connections","example":8080},"is_ingress_enabled":{"type":"boolean","description":"Whether external traffic routing is enabled for this process. Only applicable to web processes.","example":true},"ingress_protocol":{"anyOf":[{"type":"string","enum":["http","grpc"]},{"type":"null"}],"description":"Protocol used for ingress traffic. `http` - standard HTTP/HTTPS traffic. `grpc` - gRPC protocol. Only applicable to web processes.","example":"http"},"scaling_strategy":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","description":"Manual scaling type","enum":["manual"]},"config":{"type":"object","properties":{"instanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Number of instances to run","example":1}},"required":["instanceCount"],"additionalProperties":false,"description":"Manual scaling configuration"}},"required":["type","config"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","description":"Horizontal auto-scaling type","enum":["horizontal"]},"config":{"type":"object","properties":{"minInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Minimum number of instances","example":1},"maxInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Maximum number of instances","example":5},"targetCpuPercent":{"description":"Target CPU utilization percentage for autoscaling","example":70,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"targetMemoryPercent":{"description":"Target memory utilization percentage for autoscaling","example":80,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"scaleUpIntervalSeconds":{"description":"Cooldown period in seconds between scale-up events","example":60,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleUpIncrement":{"description":"Number of instances to add per scale-up event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"scaleDownIntervalSeconds":{"description":"Cooldown period in seconds between scale-down events","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleDownIncrement":{"description":"Number of instances to remove per scale-down event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]}},"required":["minInstanceCount","maxInstanceCount"],"additionalProperties":false,"description":"Horizontal auto-scaling configuration"}},"required":["type","config"],"additionalProperties":false}]},{"type":"null"}],"description":"Scaling configuration for the process","example":{"type":"manual","config":{"instanceCount":1}}},"resource_type_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the process resource type (machine size) assigned to this process. Use the List Process Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this process","example":"s1"},"cpu_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum CPU allocation in millicores","example":500},"memory_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum memory allocation in megabytes","example":512},"schedule":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"Cron expression defining the execution schedule. Only applicable to cron processes.","example":"0 * * * *"},"time_zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"IANA time zone for the cron schedule. Only applicable to cron processes.","example":"America/New_York"},"concurrency_policy":{"anyOf":[{"type":"string","enum":["Forbid","Replace"]},{"type":"null"}],"description":"How to handle a scheduled run when the previous run is still active. `Forbid` skips the new run until the current one finishes. `Replace` cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Defaults to `Forbid`. Only applicable to cron processes.","example":"Forbid"},"active_deadline_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum run time in seconds for each scheduled run before it is terminated. Null means no limit is applied. Only applicable to cron processes.","example":3600},"job_start_policy":{"anyOf":[{"type":"string","enum":["beforeDeployment","afterSuccessDeployment","afterFailedDeployment"]},{"type":"null"}],"description":"When the job process should run relative to deployments. `beforeDeployment` - run before the deployment starts. `afterSuccessDeployment` - run after a successful deployment. `afterFailedDeployment` - run after a failed deployment. Only applicable to job processes.","example":"afterSuccessDeployment"},"liveness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes liveness probe configuration. Used to detect when a process is stuck and needs to be restarted. Only populated for web processes.","example":{"httpGet":{"path":"/health","port":8080,"scheme":"HTTP"}}},"readiness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes readiness probe configuration. Used to determine when a process is ready to receive traffic. Only populated for web processes.","example":{"httpGet":{"path":"/ready","port":8080,"scheme":"HTTP"}}},"internal_hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal Kubernetes DNS hostname for service-to-service communication within the cluster","example":"my-app-web.my-app-abc123.svc.cluster.local"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","type","display_name","entrypoint","port","is_ingress_enabled","ingress_protocol","scaling_strategy","resource_type_id","resource_type_name","cpu_limit","memory_limit","schedule","time_zone","concurrency_policy","active_deadline_seconds","job_start_policy","liveness_probe","readiness_probe","internal_hostname","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createProcessV3","summary":"Create process","tags":["Applications"],"description":"Create a new process for an application. Each application can have at most one web process. The process is created with the specified resource type and scaling strategy. A deployment is required after creation for the new process to take effect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the process shown in the dashboard","example":"web"},"entrypoint":{"description":"Command used to start the process. If omitted, defaults to an empty string.","example":"npm start","type":"string","maxLength":1024},"type":{"type":"string","enum":["web","worker","cron","job"],"description":"Process runtime type. `web` - HTTP server process that handles incoming web traffic. `worker` - background process that runs continuously. `cron` - scheduled process that runs at specified intervals. `job` - one-time process that runs to completion and then stops.","example":"web"},"resource_type_id":{"type":"string","description":"Identifier of the process resource type (machine size) to assign. Use the List Process Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"scaling_strategy":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","description":"Manual scaling type","enum":["manual"]},"config":{"type":"object","properties":{"instanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Number of instances to run","example":1}},"required":["instanceCount"],"description":"Manual scaling configuration"}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","description":"Horizontal auto-scaling type","enum":["horizontal"]},"config":{"type":"object","properties":{"minInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Minimum number of instances","example":1},"maxInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Maximum number of instances","example":5},"targetCpuPercent":{"description":"Target CPU utilization percentage for autoscaling","example":70,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"targetMemoryPercent":{"description":"Target memory utilization percentage for autoscaling","example":80,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"scaleUpIntervalSeconds":{"description":"Cooldown period in seconds between scale-up events","example":60,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleUpIncrement":{"description":"Number of instances to add per scale-up event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"scaleDownIntervalSeconds":{"description":"Cooldown period in seconds between scale-down events","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleDownIncrement":{"description":"Number of instances to remove per scale-down event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]}},"required":["minInstanceCount","maxInstanceCount"],"description":"Horizontal auto-scaling configuration"}},"required":["type","config"]}],"description":"Scaling configuration for the process"},"port":{"description":"Port number the process listens on for incoming connections","example":8080,"type":"integer","minimum":1,"maximum":65535},"schedule":{"description":"Cron expression defining the execution schedule. Required for cron processes.","example":"0 */6 * * *","type":"string","maxLength":100},"time_zone":{"description":"IANA time zone for the cron schedule. Only applicable to cron processes.","example":"America/New_York","type":"string","maxLength":100},"concurrency_policy":{"description":"How to handle a scheduled run when the previous run is still active. `Forbid` skips the new run until the current one finishes. `Replace` cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Defaults to `Forbid`. Only applicable to cron processes.","example":"Forbid","type":"string","enum":["Forbid","Replace"]},"active_deadline_seconds":{"description":"Maximum run time in seconds for each scheduled run before it is terminated. Leave unset or send 0 for no limit. Only applicable to cron processes.","example":3600,"type":"integer","minimum":0,"maximum":9007199254740991},"job_start_policy":{"description":"When the job process should run relative to deployments. `beforeDeployment` - run before the deployment starts. `afterSuccessDeployment` - run after a successful deployment. `afterFailedDeployment` - run after a failed deployment. Required for job processes.","example":"beforeDeployment","type":"string","enum":["beforeDeployment","afterSuccessDeployment","afterFailedDeployment"]},"liveness_probe":{"description":"Kubernetes liveness probe configuration. Only applicable to web processes.","type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"]},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"]}},{"type":"null"}]}}},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"]},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}}},"readiness_probe":{"description":"Kubernetes readiness probe configuration. Only applicable to web processes.","type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"]},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"]}},{"type":"null"}]}}},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"]},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}}}},"required":["display_name","type","resource_type_id","scaling_strategy"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the process","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this process belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":64,"description":"Unique key identifying the process within the application, derived from the Procfile entry name","example":"web"},"type":{"anyOf":[{"type":"string","enum":["web","worker","cron","job"]},{"type":"null"}],"description":"Process runtime type. `web` - HTTP server process that handles incoming web traffic. `worker` - background process that runs continuously. `cron` - scheduled process that runs at specified intervals. `job` - one-time process that runs to completion and then stops.","example":"web"},"display_name":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"Human-readable name for the process shown in the dashboard","example":"Web Process"},"entrypoint":{"type":"string","maxLength":1024,"description":"Command used to start the process","example":"npm start"},"port":{"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}],"description":"Port number the process listens on for incoming connections","example":8080},"is_ingress_enabled":{"type":"boolean","description":"Whether external traffic routing is enabled for this process. Only applicable to web processes.","example":true},"ingress_protocol":{"anyOf":[{"type":"string","enum":["http","grpc"]},{"type":"null"}],"description":"Protocol used for ingress traffic. `http` - standard HTTP/HTTPS traffic. `grpc` - gRPC protocol. Only applicable to web processes.","example":"http"},"scaling_strategy":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","description":"Manual scaling type","enum":["manual"]},"config":{"type":"object","properties":{"instanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Number of instances to run","example":1}},"required":["instanceCount"],"additionalProperties":false,"description":"Manual scaling configuration"}},"required":["type","config"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","description":"Horizontal auto-scaling type","enum":["horizontal"]},"config":{"type":"object","properties":{"minInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Minimum number of instances","example":1},"maxInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Maximum number of instances","example":5},"targetCpuPercent":{"description":"Target CPU utilization percentage for autoscaling","example":70,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"targetMemoryPercent":{"description":"Target memory utilization percentage for autoscaling","example":80,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"scaleUpIntervalSeconds":{"description":"Cooldown period in seconds between scale-up events","example":60,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleUpIncrement":{"description":"Number of instances to add per scale-up event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"scaleDownIntervalSeconds":{"description":"Cooldown period in seconds between scale-down events","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleDownIncrement":{"description":"Number of instances to remove per scale-down event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]}},"required":["minInstanceCount","maxInstanceCount"],"additionalProperties":false,"description":"Horizontal auto-scaling configuration"}},"required":["type","config"],"additionalProperties":false}]},{"type":"null"}],"description":"Scaling configuration for the process","example":{"type":"manual","config":{"instanceCount":1}}},"resource_type_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the process resource type (machine size) assigned to this process. Use the List Process Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this process","example":"s1"},"cpu_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum CPU allocation in millicores","example":500},"memory_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum memory allocation in megabytes","example":512},"schedule":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"Cron expression defining the execution schedule. Only applicable to cron processes.","example":"0 * * * *"},"time_zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"IANA time zone for the cron schedule. Only applicable to cron processes.","example":"America/New_York"},"concurrency_policy":{"anyOf":[{"type":"string","enum":["Forbid","Replace"]},{"type":"null"}],"description":"How to handle a scheduled run when the previous run is still active. `Forbid` skips the new run until the current one finishes. `Replace` cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Defaults to `Forbid`. Only applicable to cron processes.","example":"Forbid"},"active_deadline_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum run time in seconds for each scheduled run before it is terminated. Null means no limit is applied. Only applicable to cron processes.","example":3600},"job_start_policy":{"anyOf":[{"type":"string","enum":["beforeDeployment","afterSuccessDeployment","afterFailedDeployment"]},{"type":"null"}],"description":"When the job process should run relative to deployments. `beforeDeployment` - run before the deployment starts. `afterSuccessDeployment` - run after a successful deployment. `afterFailedDeployment` - run after a failed deployment. Only applicable to job processes.","example":"afterSuccessDeployment"},"liveness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes liveness probe configuration. Used to detect when a process is stuck and needs to be restarted. Only populated for web processes.","example":{"httpGet":{"path":"/health","port":8080,"scheme":"HTTP"}}},"readiness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes readiness probe configuration. Used to determine when a process is ready to receive traffic. Only populated for web processes.","example":{"httpGet":{"path":"/ready","port":8080,"scheme":"HTTP"}}},"internal_hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal Kubernetes DNS hostname for service-to-service communication within the cluster","example":"my-app-web.my-app-abc123.svc.cluster.local"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","type","display_name","entrypoint","port","is_ingress_enabled","ingress_protocol","scaling_strategy","resource_type_id","resource_type_name","cpu_limit","memory_limit","schedule","time_zone","concurrency_policy","active_deadline_seconds","job_start_policy","liveness_probe","readiness_probe","internal_hostname","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}":{"get":{"operationId":"getProcessV3","summary":"Get process","tags":["Applications"],"description":"Retrieve the full details of a specific process including its runtime configuration, scaling strategy, resource limits, and probe settings.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the process","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this process belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":64,"description":"Unique key identifying the process within the application, derived from the Procfile entry name","example":"web"},"type":{"anyOf":[{"type":"string","enum":["web","worker","cron","job"]},{"type":"null"}],"description":"Process runtime type. `web` - HTTP server process that handles incoming web traffic. `worker` - background process that runs continuously. `cron` - scheduled process that runs at specified intervals. `job` - one-time process that runs to completion and then stops.","example":"web"},"display_name":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"Human-readable name for the process shown in the dashboard","example":"Web Process"},"entrypoint":{"type":"string","maxLength":1024,"description":"Command used to start the process","example":"npm start"},"port":{"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}],"description":"Port number the process listens on for incoming connections","example":8080},"is_ingress_enabled":{"type":"boolean","description":"Whether external traffic routing is enabled for this process. Only applicable to web processes.","example":true},"ingress_protocol":{"anyOf":[{"type":"string","enum":["http","grpc"]},{"type":"null"}],"description":"Protocol used for ingress traffic. `http` - standard HTTP/HTTPS traffic. `grpc` - gRPC protocol. Only applicable to web processes.","example":"http"},"scaling_strategy":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","description":"Manual scaling type","enum":["manual"]},"config":{"type":"object","properties":{"instanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Number of instances to run","example":1}},"required":["instanceCount"],"additionalProperties":false,"description":"Manual scaling configuration"}},"required":["type","config"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","description":"Horizontal auto-scaling type","enum":["horizontal"]},"config":{"type":"object","properties":{"minInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Minimum number of instances","example":1},"maxInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Maximum number of instances","example":5},"targetCpuPercent":{"description":"Target CPU utilization percentage for autoscaling","example":70,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"targetMemoryPercent":{"description":"Target memory utilization percentage for autoscaling","example":80,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"scaleUpIntervalSeconds":{"description":"Cooldown period in seconds between scale-up events","example":60,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleUpIncrement":{"description":"Number of instances to add per scale-up event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"scaleDownIntervalSeconds":{"description":"Cooldown period in seconds between scale-down events","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleDownIncrement":{"description":"Number of instances to remove per scale-down event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]}},"required":["minInstanceCount","maxInstanceCount"],"additionalProperties":false,"description":"Horizontal auto-scaling configuration"}},"required":["type","config"],"additionalProperties":false}]},{"type":"null"}],"description":"Scaling configuration for the process","example":{"type":"manual","config":{"instanceCount":1}}},"resource_type_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the process resource type (machine size) assigned to this process. Use the List Process Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this process","example":"s1"},"cpu_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum CPU allocation in millicores","example":500},"memory_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum memory allocation in megabytes","example":512},"schedule":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"Cron expression defining the execution schedule. Only applicable to cron processes.","example":"0 * * * *"},"time_zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"IANA time zone for the cron schedule. Only applicable to cron processes.","example":"America/New_York"},"concurrency_policy":{"anyOf":[{"type":"string","enum":["Forbid","Replace"]},{"type":"null"}],"description":"How to handle a scheduled run when the previous run is still active. `Forbid` skips the new run until the current one finishes. `Replace` cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Defaults to `Forbid`. Only applicable to cron processes.","example":"Forbid"},"active_deadline_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum run time in seconds for each scheduled run before it is terminated. Null means no limit is applied. Only applicable to cron processes.","example":3600},"job_start_policy":{"anyOf":[{"type":"string","enum":["beforeDeployment","afterSuccessDeployment","afterFailedDeployment"]},{"type":"null"}],"description":"When the job process should run relative to deployments. `beforeDeployment` - run before the deployment starts. `afterSuccessDeployment` - run after a successful deployment. `afterFailedDeployment` - run after a failed deployment. Only applicable to job processes.","example":"afterSuccessDeployment"},"liveness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes liveness probe configuration. Used to detect when a process is stuck and needs to be restarted. Only populated for web processes.","example":{"httpGet":{"path":"/health","port":8080,"scheme":"HTTP"}}},"readiness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes readiness probe configuration. Used to determine when a process is ready to receive traffic. Only populated for web processes.","example":{"httpGet":{"path":"/ready","port":8080,"scheme":"HTTP"}}},"internal_hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal Kubernetes DNS hostname for service-to-service communication within the cluster","example":"my-app-web.my-app-abc123.svc.cluster.local"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","type","display_name","entrypoint","port","is_ingress_enabled","ingress_protocol","scaling_strategy","resource_type_id","resource_type_name","cpu_limit","memory_limit","schedule","time_zone","concurrency_policy","active_deadline_seconds","job_start_policy","liveness_probe","readiness_probe","internal_hostname","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateProcessV3","summary":"Update process","tags":["Applications"],"description":"Update the configuration of an existing process. Only the provided fields are changed - all other fields retain their current values. Changes to resource type, scaling, or probes take effect on the next deployment. Protocol changes are applied asynchronously.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"Human-readable name for the process shown in the dashboard","example":"web","type":"string","minLength":1,"maxLength":255},"entrypoint":{"description":"Command used to start the process","example":"npm start","type":"string","maxLength":1024},"resource_type_id":{"description":"Identifier of the process resource type (machine size) to assign. Use the List Process Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string"},"scaling_strategy":{"description":"Scaling configuration for the process","oneOf":[{"type":"object","properties":{"type":{"type":"string","description":"Manual scaling type","enum":["manual"]},"config":{"type":"object","properties":{"instanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Number of instances to run","example":1}},"required":["instanceCount"],"description":"Manual scaling configuration"}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","description":"Horizontal auto-scaling type","enum":["horizontal"]},"config":{"type":"object","properties":{"minInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Minimum number of instances","example":1},"maxInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Maximum number of instances","example":5},"targetCpuPercent":{"description":"Target CPU utilization percentage for autoscaling","example":70,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"targetMemoryPercent":{"description":"Target memory utilization percentage for autoscaling","example":80,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"scaleUpIntervalSeconds":{"description":"Cooldown period in seconds between scale-up events","example":60,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleUpIncrement":{"description":"Number of instances to add per scale-up event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"scaleDownIntervalSeconds":{"description":"Cooldown period in seconds between scale-down events","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleDownIncrement":{"description":"Number of instances to remove per scale-down event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]}},"required":["minInstanceCount","maxInstanceCount"],"description":"Horizontal auto-scaling configuration"}},"required":["type","config"]}]},"port":{"description":"Port number the process listens on for incoming connections","example":8080,"type":"integer","minimum":1,"maximum":65535},"is_ingress_enabled":{"description":"Whether external traffic routing is enabled for this process. Only applicable to web processes.","example":true,"type":"boolean"},"ingress_protocol":{"description":"Ingress protocol for the process. `http` - standard HTTP/HTTPS traffic. `grpc` - gRPC protocol. Only applicable to web processes. The change is applied asynchronously by syncing the ingress configuration.","example":"http","type":"string","enum":["http","grpc"]},"schedule":{"description":"Cron expression defining the execution schedule. Only applicable to cron processes.","example":"0 */6 * * *","type":"string","maxLength":100},"time_zone":{"description":"IANA time zone for the cron schedule. Only applicable to cron processes.","example":"America/New_York","type":"string","maxLength":100},"concurrency_policy":{"description":"How to handle a scheduled run when the previous run is still active. `Forbid` skips the new run until the current one finishes. `Replace` cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Only applicable to cron processes.","example":"Forbid","type":"string","enum":["Forbid","Replace"]},"active_deadline_seconds":{"description":"Maximum run time in seconds for each scheduled run before it is terminated. Send 0 to turn off an existing limit. Only applicable to cron processes.","example":3600,"type":"integer","minimum":0,"maximum":9007199254740991},"job_start_policy":{"description":"When the job process should run relative to deployments. `beforeDeployment` - run before the deployment starts. `afterSuccessDeployment` - run after a successful deployment. `afterFailedDeployment` - run after a failed deployment. Only applicable to job processes.","example":"beforeDeployment","type":"string","enum":["beforeDeployment","afterSuccessDeployment","afterFailedDeployment"]},"liveness_probe":{"description":"Kubernetes liveness probe configuration. Only applicable to web processes.","type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"]},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"]}},{"type":"null"}]}}},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"]},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}}},"readiness_probe":{"description":"Kubernetes readiness probe configuration. Only applicable to web processes.","type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"]},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"]}},{"type":"null"}]}}},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"]},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}}}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the process","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the application this process belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":64,"description":"Unique key identifying the process within the application, derived from the Procfile entry name","example":"web"},"type":{"anyOf":[{"type":"string","enum":["web","worker","cron","job"]},{"type":"null"}],"description":"Process runtime type. `web` - HTTP server process that handles incoming web traffic. `worker` - background process that runs continuously. `cron` - scheduled process that runs at specified intervals. `job` - one-time process that runs to completion and then stops.","example":"web"},"display_name":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"Human-readable name for the process shown in the dashboard","example":"Web Process"},"entrypoint":{"type":"string","maxLength":1024,"description":"Command used to start the process","example":"npm start"},"port":{"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}],"description":"Port number the process listens on for incoming connections","example":8080},"is_ingress_enabled":{"type":"boolean","description":"Whether external traffic routing is enabled for this process. Only applicable to web processes.","example":true},"ingress_protocol":{"anyOf":[{"type":"string","enum":["http","grpc"]},{"type":"null"}],"description":"Protocol used for ingress traffic. `http` - standard HTTP/HTTPS traffic. `grpc` - gRPC protocol. Only applicable to web processes.","example":"http"},"scaling_strategy":{"anyOf":[{"oneOf":[{"type":"object","properties":{"type":{"type":"string","description":"Manual scaling type","enum":["manual"]},"config":{"type":"object","properties":{"instanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Number of instances to run","example":1}},"required":["instanceCount"],"additionalProperties":false,"description":"Manual scaling configuration"}},"required":["type","config"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","description":"Horizontal auto-scaling type","enum":["horizontal"]},"config":{"type":"object","properties":{"minInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Minimum number of instances","example":1},"maxInstanceCount":{"type":"integer","minimum":0,"maximum":50,"description":"Maximum number of instances","example":5},"targetCpuPercent":{"description":"Target CPU utilization percentage for autoscaling","example":70,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"targetMemoryPercent":{"description":"Target memory utilization percentage for autoscaling","example":80,"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]},"scaleUpIntervalSeconds":{"description":"Cooldown period in seconds between scale-up events","example":60,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleUpIncrement":{"description":"Number of instances to add per scale-up event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]},"scaleDownIntervalSeconds":{"description":"Cooldown period in seconds between scale-down events","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":60000},{"type":"null"}]},"scaleDownIncrement":{"description":"Number of instances to remove per scale-down event","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":5},{"type":"null"}]}},"required":["minInstanceCount","maxInstanceCount"],"additionalProperties":false,"description":"Horizontal auto-scaling configuration"}},"required":["type","config"],"additionalProperties":false}]},{"type":"null"}],"description":"Scaling configuration for the process","example":{"type":"manual","config":{"instanceCount":1}}},"resource_type_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the process resource type (machine size) assigned to this process. Use the List Process Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this process","example":"s1"},"cpu_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum CPU allocation in millicores","example":500},"memory_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum memory allocation in megabytes","example":512},"schedule":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"Cron expression defining the execution schedule. Only applicable to cron processes.","example":"0 * * * *"},"time_zone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"IANA time zone for the cron schedule. Only applicable to cron processes.","example":"America/New_York"},"concurrency_policy":{"anyOf":[{"type":"string","enum":["Forbid","Replace"]},{"type":"null"}],"description":"How to handle a scheduled run when the previous run is still active. `Forbid` skips the new run until the current one finishes. `Replace` cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Defaults to `Forbid`. Only applicable to cron processes.","example":"Forbid"},"active_deadline_seconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum run time in seconds for each scheduled run before it is terminated. Null means no limit is applied. Only applicable to cron processes.","example":3600},"job_start_policy":{"anyOf":[{"type":"string","enum":["beforeDeployment","afterSuccessDeployment","afterFailedDeployment"]},{"type":"null"}],"description":"When the job process should run relative to deployments. `beforeDeployment` - run before the deployment starts. `afterSuccessDeployment` - run after a successful deployment. `afterFailedDeployment` - run after a failed deployment. Only applicable to job processes.","example":"afterSuccessDeployment"},"liveness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes liveness probe configuration. Used to detect when a process is stuck and needs to be restarted. Only populated for web processes.","example":{"httpGet":{"path":"/health","port":8080,"scheme":"HTTP"}}},"readiness_probe":{"anyOf":[{"type":"object","properties":{"exec":{"description":"Exec-based probe - runs a command inside the container","anyOf":[{"type":"object","properties":{"command":{"type":"array","items":{"type":"string"},"description":"Command to execute inside the container"}},"required":["command"],"additionalProperties":false},{"type":"null"}]},"httpGet":{"description":"HTTP GET probe - performs an HTTP GET request","anyOf":[{"type":"object","properties":{"path":{"description":"Path to access on the HTTP server","example":"/health","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"description":"Port number to access on the container","example":8080,"anyOf":[{"type":"integer","minimum":1,"maximum":65535},{"type":"null"}]},"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"scheme":{"description":"Scheme to use for connecting to the host. `HTTP` or `HTTPS`","example":"HTTP","anyOf":[{"type":"string","enum":["HTTP","HTTPS"]},{"type":"null"}]},"httpHeaders":{"description":"Custom headers to set in the request","anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Header name","example":"X-Custom-Header"},"value":{"type":"string","description":"Header value","example":"custom-value"}},"required":["name","value"],"additionalProperties":false}},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"tcpSocket":{"description":"TCP socket probe - checks if a TCP port is open","anyOf":[{"type":"object","properties":{"host":{"description":"Host name to connect to","anyOf":[{"type":"string"},{"type":"null"}]},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Port number to connect to","example":8080}},"required":["port"],"additionalProperties":false},{"type":"null"}]},"initialDelaySeconds":{"description":"Seconds after the container starts before the probe is initiated","example":0,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"periodSeconds":{"description":"How often in seconds to perform the probe","example":10,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"timeoutSeconds":{"description":"Seconds after which the probe times out","example":120,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"successThreshold":{"description":"Minimum consecutive successes for the probe to be considered successful","example":1,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"failureThreshold":{"description":"Minimum consecutive failures for the probe to be considered failed","example":3,"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Kubernetes readiness probe configuration. Used to determine when a process is ready to receive traffic. Only populated for web processes.","example":{"httpGet":{"path":"/ready","port":8080,"scheme":"HTTP"}}},"internal_hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal Kubernetes DNS hostname for service-to-service communication within the cluster","example":"my-app-web.my-app-abc123.svc.cluster.local"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the process was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","type","display_name","entrypoint","port","is_ingress_enabled","ingress_protocol","scaling_strategy","resource_type_id","resource_type_name","cpu_limit","memory_limit","schedule","time_zone","concurrency_policy","active_deadline_seconds","job_start_policy","liveness_probe","readiness_probe","internal_hostname","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteProcessV3","summary":"Delete process","tags":["Applications"],"description":"Delete a non-web process from an application. The web process cannot be deleted. Deletion is performed asynchronously - the process is queued for removal and will be fully deleted after the next deployment.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Deletion result message","example":"Process is being deleted"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/trigger":{"post":{"operationId":"triggerProcessCronV3","summary":"Trigger cron job","tags":["Applications"],"description":"Manually trigger an immediate execution of a cron process. This creates a one-off run outside of the regular cron schedule. The process must be of type `cron`.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Trigger result message","example":"Cron job triggered"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/terminal":{"get":{"operationId":"openTerminalV3","summary":"Open terminal session (WebSocket)","tags":["Applications"],"description":"Open an interactive terminal (shell) session to a running application process.\n\n**This is a WebSocket endpoint.** Connect using a WebSocket client with the `Upgrade: websocket` header. Standard HTTP requests return a `426 Upgrade Required` response.\n\n### Connection\n\n```\nwscat -c \"wss://api.sevalla.com/v3/applications/{id}/processes/{process_id}/terminal?shell=bash\" -H \"Authorization: Bearer <api_key>\"\n```\n\nAuthentication runs before the WebSocket upgrade - invalid credentials are rejected with a standard HTTP 401/403 response.\n\n### Communication\n\nOnce connected, the WebSocket streams stdin/stdout bidirectionally to a shell running inside the container. Send text messages as shell input and receive command output as text messages.\n\n### Close codes\n\n- `4000` - Application or process not found\n- `4001` - No running pod available to connect to\n- `4002` - Shell stream error\n- `4003` - Shell stream closed normally\n- `4005` - Failed to connect to the pod\n- `4300` - Unexpected server error","parameters":[{"schema":{"default":"sh","type":"string","enum":["sh","bash","dash","ksh","zsh","csh","tcsh"]},"in":"query","name":"shell","required":false,"description":"Shell to use for the terminal session. `sh` - Bourne shell (default). `bash` - Bourne Again Shell. `dash` - Debian Almquist Shell. `ksh` - KornShell. `zsh` - Z Shell. `csh` - C Shell. `tcsh` - TENEX C Shell."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"426":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message indicating WebSocket upgrade is required","example":"Upgrade Required"},"status":{"type":"number","description":"HTTP status code","example":426,"enum":[426]},"data":{"type":"object","properties":{},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/exec":{"post":{"operationId":"execProcessCommandV3","summary":"Run a command in a process","tags":["Applications"],"description":"Run a single command inside a running application process (container) and return its output. This is a non-interactive alternative to the WebSocket terminal: one command runs, and its stdout, stderr, and exit code are returned. The command runs directly without a shell, so pipes, redirects, and command chaining do not apply.\n\nThis endpoint requires at least read access to the application. A key with only read access can run read-only commands (such as `ls`, `cat`, `env`, `ps`, `grep`); a request to run any other command is rejected with a 403. A key with write access to the application can run any command. Note that the read-only restriction is a convenience to prevent accidental changes, not a security sandbox: read-only commands can still read environment variables and files inside the container.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string"},"description":"Command to run, given as an argument vector where the first element is the binary and the rest are its arguments (for example `[\"ls\", \"-la\", \"/app\"]`). The command is run directly, not through a shell, so shell features like pipes, redirects, globbing, and chaining with `;` or `&&` are not available. Run those as separate calls instead. API keys with only read access to the application can run read-only commands (such as `ls`, `cat`, `env`, `ps`, `grep`); keys with write access can run any command.","example":["ls","-la","/app"]},"timeout":{"default":15,"description":"Maximum time in seconds to wait for the command to finish before it is aborted. Defaults to 15 seconds.","example":15,"type":"integer","minimum":1,"maximum":60}},"required":["command"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"stdout":{"type":"string","description":"Standard output produced by the command.","example":"total 8\ndrwxr-xr-x 2 app app 4096 Jan 1 00:00 .\n"},"stderr":{"type":"string","description":"Standard error produced by the command.","example":""},"exit_code":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Exit code returned by the command. `0` means success; any other value means the command failed.","example":0}},"required":["stdout","stderr","exit_code"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/metrics/cpu-usage":{"get":{"operationId":"getProcessCpuUsageV3","summary":"Get process CPU usage","tags":["Applications"],"description":"Retrieve a time series of CPU usage for a specific application process. Returns data points at the specified interval showing actual CPU consumption in cores.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/metrics/cpu-limit":{"get":{"operationId":"getProcessCpuLimitV3","summary":"Get process CPU limit","tags":["Applications"],"description":"Retrieve a time series of CPU limits for a specific application process. Returns data points at the specified interval showing the configured CPU limit in cores.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/metrics/memory-usage":{"get":{"operationId":"getProcessMemoryUsageV3","summary":"Get process memory usage","tags":["Applications"],"description":"Retrieve a time series of memory usage for a specific application process. Returns data points at the specified interval showing actual memory consumption in bytes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/metrics/memory-limit":{"get":{"operationId":"getProcessMemoryLimitV3","summary":"Get process memory limit","tags":["Applications"],"description":"Retrieve a time series of memory limits for a specific application process. Returns data points at the specified interval showing the configured memory limit in bytes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/metrics/instance-count":{"get":{"operationId":"getProcessInstanceCountV3","summary":"Get process instance count","tags":["Applications"],"description":"Retrieve a time series of running instance counts for a specific application process. Returns data points at the specified interval showing the number of active replicas.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/processes/{process_id}/metrics/exit-codes":{"get":{"operationId":"getProcessExitCodesV3","summary":"Get process exit codes","tags":["Applications"],"description":"Retrieve exit codes for a specific application process within a time range. Returns each exit code event with a timestamp and a human-readable description when available.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"process_id","required":true,"description":"Process identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"string","description":"Exit code value","example":"137"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description of the exit code, or null if the code is not recognized. Common codes: 0 - completed normally, 1 - error, 137 - OOMKilled (SIGKILL), 143 - terminated (SIGTERM)","example":"OOMKilled (SIGKILL). The process was killed because it exceeded its memory limit."}},"required":["time","value","description"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/env-vars":{"get":{"operationId":"listEnvironmentVariablesV3","summary":"List environment variables","tags":["Applications"],"description":"Retrieve a paginated list of all app-level environment variables for an application. Values are returned decrypted. Variables are ordered by creation time.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this environment variable belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable. Must be unique within the application scope.","example":"DATABASE_URL"},"value":{"type":"string","maxLength":32768,"description":"Value of the environment variable. Stored encrypted at rest.","example":"postgres://user:pass@host:5432/db"},"is_runtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available at runtime. Defaults to true when created.","example":true},"is_buildtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available during the build step. Defaults to true when created.","example":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","value","is_runtime","is_buildtime","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createEnvironmentVariableV3","summary":"Create environment variable","tags":["Applications"],"description":"Create a new app-level environment variable for an application. The value is encrypted before storage. A deployment is required for the new variable to take effect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable. Must be unique within the application scope.","example":"API_BASE_URL"},"value":{"type":"string","maxLength":32768,"description":"Value of the environment variable. Will be stored encrypted at rest.","example":"https://api.example.com"},"is_runtime":{"default":true,"description":"Whether this variable is available at runtime. Defaults to true.","example":true,"type":"boolean"},"is_buildtime":{"default":true,"description":"Whether this variable is available during the build step. Defaults to true.","example":true,"type":"boolean"}},"required":["key","value"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this environment variable belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable. Must be unique within the application scope.","example":"DATABASE_URL"},"value":{"type":"string","maxLength":32768,"description":"Value of the environment variable. Stored encrypted at rest.","example":"postgres://user:pass@host:5432/db"},"is_runtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available at runtime. Defaults to true when created.","example":true},"is_buildtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available during the build step. Defaults to true when created.","example":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","value","is_runtime","is_buildtime","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/env-vars/{env_var_id}":{"put":{"operationId":"updateEnvironmentVariableV3","summary":"Update environment variable","tags":["Applications"],"description":"Update an existing app-level environment variable. You can change the key, value, or runtime/buildtime flags. A deployment is required for changes to take effect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"description":"New name for the environment variable","example":"API_BASE_URL","type":"string","minLength":1,"maxLength":255},"value":{"description":"New value for the environment variable. Will be stored encrypted at rest.","example":"https://api.example.com","type":"string","maxLength":32768},"is_runtime":{"description":"Whether this variable is available at runtime","example":true,"type":"boolean"},"is_buildtime":{"description":"Whether this variable is available during the build step","example":true,"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"env_var_id","required":true,"description":"Environment variable identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this environment variable belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable. Must be unique within the application scope.","example":"DATABASE_URL"},"value":{"type":"string","maxLength":32768,"description":"Value of the environment variable. Stored encrypted at rest.","example":"postgres://user:pass@host:5432/db"},"is_runtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available at runtime. Defaults to true when created.","example":true},"is_buildtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available during the build step. Defaults to true when created.","example":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","key","value","is_runtime","is_buildtime","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteEnvironmentVariableV3","summary":"Delete environment variable","tags":["Applications"],"description":"Delete an app-level environment variable. A deployment is required for the removal to take effect.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"env_var_id","required":true,"description":"Environment variable identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Deletion result message","example":"Environment variable deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/deployment-hook":{"post":{"operationId":"enableDeploymentHookV3","summary":"Enable deployment hook","tags":["Applications"],"description":"Enable the deployment hook for an application. Returns a unique URL that can be called via HTTP POST to trigger a deployment. If the hook is already enabled, the existing URL is returned.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Full deployment hook URL to trigger deployments via HTTP POST","example":"https://hook.sevalla.com/apps/fb5e5168-4281-4bec-94c5-0d1584e9e657/deploy/abcdefghijkl"}},"required":["url"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"disableDeploymentHookV3","summary":"Disable deployment hook","tags":["Applications"],"description":"Disable the deployment hook for an application. The existing hook URL will stop working immediately. A new secret is generated if the hook is re-enabled later.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"204":{"description":"Deployment hook disabled successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"put":{"operationId":"regenerateDeploymentHookV3","summary":"Regenerate deployment hook","tags":["Applications"],"description":"Regenerate the deployment hook secret for an application. The previous hook URL will stop working immediately and a new URL is returned. Use this if the current hook secret has been compromised.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"New deployment hook URL with a freshly generated secret","example":"https://hook.sevalla.com/apps/fb5e5168-4281-4bec-94c5-0d1584e9e657/deploy/abcdefghijkl"}},"required":["url"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"getDeploymentHookV3","summary":"Get deployment hook URL","tags":["Applications"],"description":"Retrieve the deployment hook URL for an application. Returns 404 if no deployment hook is currently enabled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Full deployment hook URL to trigger deployments via HTTP POST","example":"https://hook.sevalla.com/apps/fb5e5168-4281-4bec-94c5-0d1584e9e657/deploy/abcdefghijkl"}},"required":["url"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/domains":{"get":{"operationId":"listApplicationDomainsV3","summary":"List application domains","tags":["Applications"],"description":"Retrieve a paginated list of all domains (both system and custom) associated with an application. System domains are assigned automatically, while custom domains are added by users.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"addApplicationDomainV3","summary":"Add application domain","tags":["Applications"],"description":"Add a custom domain to an application. After adding, configure your DNS records as indicated in the response to complete domain verification. The domain status will transition from `verification` to `pointing` to `active` as DNS propagates.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain_name":{"type":"string","minLength":1,"description":"The custom domain name to add to the application","example":"app.example.com"},"is_wildcard":{"description":"Whether this should be a wildcard domain that matches all subdomains","example":false,"type":"boolean"},"custom_ssl_cert":{"description":"Custom SSL certificate in PEM format. When provided, the platform uses this certificate instead of auto-provisioning one.","example":"-----BEGIN CERTIFICATE-----...","type":"string"},"custom_ssl_key":{"description":"Private key for the custom SSL certificate in PEM format. Required when custom_ssl_cert is provided.","example":"-----BEGIN PRIVATE KEY-----...","type":"string"}},"required":["domain_name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/domains/{domain_id}":{"get":{"operationId":"getApplicationDomainV3","summary":"Get application domain","tags":["Applications"],"description":"Retrieve the details of a specific domain associated with an application, including its verification status, DNS records, and configuration.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteApplicationDomainV3","summary":"Delete application domain","tags":["Applications"],"description":"Remove a custom domain from an application. System domains cannot be deleted - use the toggle endpoint to disable them instead. This action cannot be undone.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateApplicationDomainV3","summary":"Update application system domain","tags":["Applications"],"description":"Update the subdomain name of a system domain. Only applies to system domains - use the add/delete endpoints to manage custom domains.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"New subdomain name for the system domain","example":"my-app"}},"required":["name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/domains/{domain_id}/refresh-status":{"post":{"operationId":"refreshApplicationDomainStatusV3","summary":"Refresh application domain status","tags":["Applications"],"description":"Trigger a re-check of the domain verification and DNS pointing status. Use this after updating your DNS records to speed up the verification process.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain status refresh initiated"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/domains/{domain_id}/set-primary":{"post":{"operationId":"setApplicationPrimaryDomainV3","summary":"Set primary application domain","tags":["Applications"],"description":"Set a domain as the primary domain for the application. The primary domain is used for canonical URLs and redirects. Only one domain can be primary at a time - the previously primary domain is automatically demoted.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain set as primary"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/domains/{domain_id}/toggle":{"post":{"operationId":"toggleApplicationSystemDomainV3","summary":"Toggle application system domain","tags":["Applications"],"description":"Enable or disable a system domain for the application. When disabled, the system domain stops serving traffic. Only applies to system domains - custom domains cannot be toggled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"System domain toggled"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/runtime-logs":{"get":{"operationId":"getApplicationRuntimeLogsV3","summary":"Get application runtime logs","tags":["Applications"],"description":"Retrieve runtime logs for an application. These are logs produced by the running application processes (stdout/stderr). Use the `filters` parameter for advanced filtering by severity, message content, tags, or attributes.","parameters":[{"schema":{"example":"2026-02-22T14:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"Start of the time range in ISO 8601 format. Defaults to 1 hour ago if not provided."},{"schema":{"example":"2026-02-22T15:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"End of the time range in ISO 8601 format. Defaults to now if not provided."},{"schema":{"example":"[{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced log filtering. Each filter has a `key`, `operator`, and `value` or `values` field. Example: [{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]"},{"schema":{"default":1000,"example":1000,"type":"integer","minimum":1,"maximum":5000},"in":"query","name":"limit","required":false,"description":"Maximum number of log entries to return (1-5000)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the log entry","example":"abc123"},"message":{"type":"string","description":"Log message content","example":"Server started on port 3000"},"service":{"type":"string","description":"Service that produced the log entry, such as APP_RUNTIME, APP_ACCESS, APP_DEPLOYMENT, SS_DEPLOYMENT, or SS_ACCESS","example":"APP_RUNTIME"},"severity":{"type":"string","description":"Log severity level such as INFO, WARN, ERROR, or DEBUG","example":"INFO"},"timestamp":{"type":"string","description":"Formatted timestamp of the log entry","example":"2026-02-22 15:30:00.000"},"tags":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Key-value pairs of tags associated with the log entry, such as container name or resource ID","example":{"idApp":"fb5e5168-4281-4bec-94c5-0d1584e9e657","container":"web"}},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Additional structured attributes attached to the log entry","example":{}},"unix_timestamp":{"type":"number","description":"Unix timestamp of the log entry in microseconds","example":1740236400000000}},"required":["id","message","service","severity","timestamp","tags","attributes","unix_timestamp"],"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/access-logs":{"get":{"operationId":"getApplicationAccessLogsV3","summary":"Get application access logs","tags":["Applications"],"description":"Retrieve HTTP access logs for an application. These are logs of incoming requests handled by the application. Use the `filters` parameter for advanced filtering by severity, message content, tags, or attributes.","parameters":[{"schema":{"example":"2026-02-22T14:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"Start of the time range in ISO 8601 format. Defaults to 1 hour ago if not provided."},{"schema":{"example":"2026-02-22T15:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"End of the time range in ISO 8601 format. Defaults to now if not provided."},{"schema":{"example":"[{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced log filtering. Each filter has a `key`, `operator`, and `value` or `values` field. Example: [{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]"},{"schema":{"default":1000,"example":1000,"type":"integer","minimum":1,"maximum":5000},"in":"query","name":"limit","required":false,"description":"Maximum number of log entries to return (1-5000)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the log entry","example":"abc123"},"message":{"type":"string","description":"Log message content","example":"Server started on port 3000"},"service":{"type":"string","description":"Service that produced the log entry, such as APP_RUNTIME, APP_ACCESS, APP_DEPLOYMENT, SS_DEPLOYMENT, or SS_ACCESS","example":"APP_RUNTIME"},"severity":{"type":"string","description":"Log severity level such as INFO, WARN, ERROR, or DEBUG","example":"INFO"},"timestamp":{"type":"string","description":"Formatted timestamp of the log entry","example":"2026-02-22 15:30:00.000"},"tags":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Key-value pairs of tags associated with the log entry, such as container name or resource ID","example":{"idApp":"fb5e5168-4281-4bec-94c5-0d1584e9e657","container":"web"}},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Additional structured attributes attached to the log entry","example":{}},"unix_timestamp":{"type":"number","description":"Unix timestamp of the log entry in microseconds","example":1740236400000000}},"required":["id","message","service","severity","timestamp","tags","attributes","unix_timestamp"],"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/cdn/toggle":{"post":{"operationId":"toggleApplicationCdnV3","summary":"Toggle CDN","tags":["Applications"],"description":"Toggle CDN on or off for an application. If CDN is currently enabled, it will be disabled, and vice versa. Returns the new CDN status after toggling.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_turned_on":{"type":"boolean","description":"Whether CDN is currently enabled for the application","example":true}},"required":["is_turned_on"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/ip-restriction":{"get":{"operationId":"getApplicationIpRestrictionV3","summary":"Get IP restriction","tags":["Applications"],"description":"Retrieve the current IP restriction configuration for an application. Returns the restriction type, whether it is active, and the list of IP addresses or CIDR ranges. If no restriction has been configured, returns a default state with type `deny`, disabled, and an empty IP list.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["allow","deny"],"description":"Restriction type. `allow` - only listed IPs can access. `deny` - listed IPs are blocked.","example":"deny"},"is_enabled":{"type":"boolean","description":"Whether the IP restriction is currently active","example":false},"ip_list":{"type":"array","items":{"type":"string"},"description":"List of IP addresses or CIDR ranges included in the restriction","example":["203.0.113.0/24","198.51.100.1"]}},"required":["type","is_enabled","ip_list"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"put":{"operationId":"updateApplicationIpRestrictionV3","summary":"Update IP restriction","tags":["Applications"],"description":"Update the IP restriction configuration for an application. Sets the restriction type (allow or deny), enables or disables it, and updates the list of IP addresses or CIDR ranges. When type is `allow`, only the listed IPs can access the application. When type is `deny`, the listed IPs are blocked. Returns the updated restriction state.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["allow","deny"],"description":"Restriction type. `allow` - only listed IPs can access the application. `deny` - listed IPs are blocked from accessing the application.","example":"allow"},"is_enabled":{"type":"boolean","description":"Whether the IP restriction should be active","example":true},"ip_list":{"maxItems":500,"type":"array","items":{"type":"string","maxLength":45},"description":"List of IP addresses or CIDR ranges to include in the restriction","example":["203.0.113.0/24","198.51.100.1"]}},"required":["type","is_enabled","ip_list"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["allow","deny"],"description":"Restriction type. `allow` - only listed IPs can access. `deny` - listed IPs are blocked.","example":"allow"},"is_enabled":{"type":"boolean","description":"Whether the IP restriction is currently active","example":true},"ip_list":{"type":"array","items":{"type":"string"},"description":"List of IP addresses or CIDR ranges included in the restriction","example":["203.0.113.0/24","198.51.100.1"]}},"required":["type","is_enabled","ip_list"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/rate-limit":{"get":{"operationId":"getApplicationRateLimitV3","summary":"Get rate limit","tags":["Applications"],"description":"Retrieve the current rate limiting configuration for an application. Rate limiting restricts each client IP to 100 requests per minute per hostname and applies the configured action when the limit is exceeded. If rate limiting has never been configured, returns the default state: disabled with the `challenge` action.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting is currently active","example":false},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action applied when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"put":{"operationId":"updateApplicationRateLimitV3","summary":"Update rate limit","tags":["Applications"],"description":"Update the rate limiting configuration for an application. Rate limiting restricts each client IP to 100 requests per minute per hostname across the application domains. When a client exceeds the limit, the configured action is applied: `challenge` requires the visitor to pass a managed challenge for 5 minutes, `throttle` blocks requests only while the rate stays above the limit, and `ban` blocks the client IP for 5 minutes. Changes are synced to the edge network as part of the request. Returns the updated rate limit state.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting should be active","example":true},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action to apply when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting is currently active","example":true},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action applied when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/purge-cache":{"post":{"operationId":"purgeApplicationCacheV3","summary":"Purge edge cache","tags":["Applications"],"description":"Purge the edge cache for an application, removing all cached content. Use this when you need cached resources to be refreshed immediately without waiting for the cache TTL to expire.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Cache purged successfully"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/tcp-proxies":{"get":{"operationId":"listApplicationTcpProxiesV3","summary":"List TCP proxies","tags":["Applications"],"description":"Retrieve a paginated list of public TCP proxies for an application. TCP proxies expose an internal container port on a public hostname and port in the 30000-30999 range, allowing direct TCP connections from the internet.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the TCP proxy","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this TCP proxy belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"process_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the process this TCP proxy is attached to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Internal container port that the TCP proxy forwards traffic to","example":8080},"external_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Externally accessible port assigned from the 30000-30999 range","example":30001},"hostname":{"type":"string","description":"Public hostname used to reach this TCP proxy","example":"us-central1.proxy.sevalla.app"},"status":{"type":"string","enum":["creating","ready","failed","deleting"],"description":"Current status of the TCP proxy. `creating` - being provisioned. `ready` - active and forwarding traffic. `failed` - provisioning failed. `deleting` - being removed.","example":"ready"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the TCP proxy was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the TCP proxy was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","process_id","port","external_port","hostname","status","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createApplicationTcpProxyV3","summary":"Create TCP proxy","tags":["Applications"],"description":"Create a public TCP proxy for an application process. The proxy is assigned an external port in the 30000-30999 range and a public hostname, allowing direct TCP connections from the internet to the specified container port. The proxy is provisioned asynchronously after creation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"process_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the process to attach the TCP proxy to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Internal container port to expose via the TCP proxy","example":3306}},"required":["process_id","port"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the TCP proxy","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this TCP proxy belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"process_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the process this TCP proxy is attached to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Internal container port that the TCP proxy forwards traffic to","example":8080},"external_port":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Externally accessible port assigned from the 30000-30999 range","example":30001},"hostname":{"type":"string","description":"Public hostname used to reach this TCP proxy","example":"us-central1.proxy.sevalla.app"},"status":{"type":"string","enum":["creating","ready","failed","deleting"],"description":"Current status of the TCP proxy. `creating` - being provisioned. `ready` - active and forwarding traffic. `failed` - provisioning failed. `deleting` - being removed.","example":"ready"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the TCP proxy was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the TCP proxy was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","process_id","port","external_port","hostname","status","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/tcp-proxies/{tcp_proxy_id}":{"delete":{"operationId":"deleteApplicationTcpProxyV3","summary":"Delete TCP proxy","tags":["Applications"],"description":"Delete a public TCP proxy from an application. The external port and hostname are released immediately. The port configuration is synchronized asynchronously after deletion.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"tcp_proxy_id","required":true,"description":"TCP proxy identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Deletion result message","example":"TCP proxy deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/private-ports":{"get":{"operationId":"listApplicationPrivatePortsV3","summary":"List private ports","tags":["Applications"],"description":"Retrieve a paginated list of private ports for an application. Private ports expose internal container ports for cluster-internal communication between services, without any external network access.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the private port","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this private port belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"process_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the process this private port is attached to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Internal container port exposed for cluster-internal communication","example":3000},"status":{"type":"string","enum":["creating","ready","failed","deleting"],"description":"Current status of the private port. `creating` - being provisioned. `ready` - active and accessible within the cluster. `failed` - provisioning failed. `deleting` - being removed.","example":"ready"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the private port was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the private port was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","process_id","port","status","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createApplicationPrivatePortV3","summary":"Create private port","tags":["Applications"],"description":"Expose a private port on an application process. Private ports allow cluster-internal communication between services without external network access. The port is provisioned asynchronously after creation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"process_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the process to expose the private port on","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Internal container port to expose for cluster-internal access","example":3306}},"required":["process_id","port"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the private port","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application this private port belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"process_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the process this private port is attached to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Internal container port exposed for cluster-internal communication","example":3000},"status":{"type":"string","enum":["creating","ready","failed","deleting"],"description":"Current status of the private port. `creating` - being provisioned. `ready` - active and accessible within the cluster. `failed` - provisioning failed. `deleting` - being removed.","example":"ready"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the private port was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the private port was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","app_id","process_id","port","status","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/private-ports/{private_port_id}":{"delete":{"operationId":"deleteApplicationPrivatePortV3","summary":"Delete private port","tags":["Applications"],"description":"Remove a private port from an application. The port is no longer accessible for cluster-internal communication after deletion. The port configuration is synchronized asynchronously.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"private_port_id","required":true,"description":"Private port identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Deletion result message","example":"TCP proxy deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/global-env-vars":{"get":{"operationId":"listGlobalEnvVarsV3","summary":"List global environment variables","tags":["Global Environment Variables"],"description":"Retrieve a paginated list of all company-wide global environment variables. Global variables are inherited by all applications in the company and can be overridden at the application level. Values are returned decrypted.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the global environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","description":"Name of the environment variable","example":"API_BASE_URL"},"value":{"type":"string","description":"Value of the environment variable","example":"https://api.example.com"},"is_runtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available at runtime","example":true},"is_buildtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available during the build step","example":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","key","value","is_runtime","is_buildtime","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createGlobalEnvVarV3","summary":"Create global environment variable","tags":["Global Environment Variables"],"description":"Create a new company-wide global environment variable. Global variables are inherited by all applications in the company and can be overridden by app-level variables with the same key. A deployment is required for the new variable to take effect in running applications.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable. Must be unique across all global variables in the company.","example":"API_BASE_URL"},"value":{"type":"string","maxLength":32768,"description":"Value of the environment variable. Will be stored encrypted at rest.","example":"https://api.example.com"},"is_runtime":{"default":true,"description":"Whether this variable is available at runtime. Defaults to true.","example":true,"type":"boolean"},"is_buildtime":{"default":true,"description":"Whether this variable is available during the build step. Defaults to true.","example":true,"type":"boolean"}},"required":["key","value"]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the global environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","description":"Name of the environment variable","example":"API_BASE_URL"},"value":{"type":"string","description":"Value of the environment variable","example":"https://api.example.com"},"is_runtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available at runtime","example":true},"is_buildtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available during the build step","example":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","key","value","is_runtime","is_buildtime","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/global-env-vars/{id}":{"put":{"operationId":"updateGlobalEnvVarV3","summary":"Update global environment variable","tags":["Global Environment Variables"],"description":"Update an existing global environment variable. You can change the key, value, or runtime/buildtime flags. A deployment is required for changes to take effect in running applications.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"description":"New name for the environment variable","example":"API_BASE_URL","type":"string","minLength":1,"maxLength":255},"value":{"description":"New value for the environment variable. Will be stored encrypted at rest.","example":"https://api.example.com","type":"string","maxLength":32768},"is_runtime":{"description":"Whether this variable is available at runtime","example":true,"type":"boolean"},"is_buildtime":{"description":"Whether this variable is available during the build step","example":true,"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Global environment variable identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the global environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","description":"Name of the environment variable","example":"API_BASE_URL"},"value":{"type":"string","description":"Value of the environment variable","example":"https://api.example.com"},"is_runtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available at runtime","example":true},"is_buildtime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is available during the build step","example":true},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","key","value","is_runtime","is_buildtime","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteGlobalEnvVarV3","summary":"Delete global environment variable","tags":["Global Environment Variables"],"description":"Delete a global environment variable. A deployment is required for the removal to take effect in running applications.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Global environment variable identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Deletion result message","example":"Global environment variable deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/requests-per-minute":{"get":{"operationId":"getApplicationRequestsPerMinuteV3","summary":"Get application requests per minute","tags":["Applications"],"description":"Retrieve a time series of requests per minute for an application. Returns data points at the specified interval, useful for monitoring traffic patterns and detecting spikes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/response-time":{"get":{"operationId":"getApplicationResponseTimeV3","summary":"Get application response time","tags":["Applications"],"description":"Retrieve a time series of response times for an application. Use the optional `percent` parameter to get a specific percentile (e.g., p95 or p99) instead of the default.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"example":95,"type":"integer","minimum":1,"maximum":99},"in":"query","name":"percent","required":false,"description":"Percentile value for response time calculation (1-99). For example, 95 returns the p95 response time"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/response-time-avg":{"get":{"operationId":"getApplicationResponseTimeAvgV3","summary":"Get application average response time","tags":["Applications"],"description":"Retrieve the average response time in milliseconds for an application over the specified time range. Returns a single aggregated value rather than a time series.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"average_response_time_ms":{"type":"number","minimum":0,"description":"Average response time in milliseconds","example":123.45}},"required":["average_response_time_ms"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/status-codes":{"get":{"operationId":"getApplicationStatusCodesV3","summary":"Get application status code breakdown","tags":["Applications"],"description":"Retrieve a time series showing the breakdown of HTTP response status codes for an application. Each data point includes a map of status codes to their request counts.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Breakdown of request counts by HTTP status code","example":{"200":150,"404":12,"500":3}}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/top-status-codes":{"get":{"operationId":"getApplicationTopStatusCodesV3","summary":"Get application top status codes","tags":["Applications"],"description":"Retrieve the most common HTTP response status codes for an application, ranked by total request count. Useful for identifying error rates and common response patterns.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","description":"HTTP status code","example":"200"},"total":{"type":"number","minimum":0,"description":"Total number of requests with this status code","example":1500}},"required":["status","total"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/top-countries":{"get":{"operationId":"getApplicationTopCountriesV3","summary":"Get application top countries","tags":["Applications"],"description":"Retrieve the countries generating the most traffic to an application, ranked by total request count. Each entry includes the country code, average response time, and total requests.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter country code (ISO 3166-1 alpha-2)","example":"US"},"response_time":{"type":"number","minimum":0,"description":"Average response time in milliseconds for requests from this country","example":85.2},"total":{"type":"number","minimum":0,"description":"Total number of requests from this country","example":5000}},"required":["country","response_time","total"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/slowest-requests":{"get":{"operationId":"getApplicationSlowestRequestsV3","summary":"Get application slowest requests","tags":["Applications"],"description":"Retrieve the slowest request paths for an application, ranked by average response time. Each entry includes the HTTP method, path, average response time, and total request count.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this request group","example":"abc123"},"client_request_method":{"type":"string","description":"HTTP method of the request","example":"GET"},"client_request_path":{"type":"string","description":"URL path of the request","example":"/api/users"},"average_response_time_ms":{"type":"number","minimum":0,"description":"Average response time in milliseconds","example":1250.5},"count_of_requests":{"type":"number","minimum":0,"description":"Number of requests matching this method and path","example":342}},"required":["id","client_request_method","client_request_path","average_response_time_ms","count_of_requests"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/metrics/top-pages":{"get":{"operationId":"getApplicationTopPagesV3","summary":"Get application top pages","tags":["Applications"],"description":"Retrieve the most visited pages for an application, ranked by total request count. Useful for understanding which endpoints or pages receive the most traffic.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"page":{"type":"string","description":"URL path","example":"/api/users"},"total":{"type":"number","minimum":0,"description":"Total number of requests to this page","example":2500}},"required":["page","total"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/repository":{"get":{"operationId":"getApplicationRepositoryV3","summary":"Get application repository","tags":["Applications"],"description":"Retrieve metadata about the Git repository connected to an application: the source type, Git provider, repository URL, default branch, and the commit currently running (from the latest successful deployment). Call this first to discover the deployed commit SHA, then pass it as the `ref` to the tree and contents endpoints to inspect exactly the code that is running. Only applications with a `privateGit` or `publicGit` source have a repository; `dockerImage` and internally created apps return 422.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["privateGit","publicGit","dockerImage","app"],"description":"Where the application source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit"},"git_type":{"type":"string","enum":["github","bitbucket","gitlab"],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository","example":"https://github.com/acme/my-app"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Default branch configured for deployments","example":"main"},"deployed_commit":{"anyOf":[{"type":"object","properties":{"sha":{"type":"string","description":"Commit SHA currently running, taken from the latest successful deployment","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message","example":"Fix login redirect"},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit author login","example":"octocat"}},"required":["sha","message","author_login"],"additionalProperties":false},{"type":"null"}],"description":"The commit currently deployed from the app's current repository. Null if the application has never deployed successfully, or if its repository was changed after the last successful deployment (the deployed commit belongs to the old repo and no longer applies)."}},"required":["source","git_type","repo_url","default_branch","deployed_commit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/repository/tree":{"get":{"operationId":"listApplicationRepositoryTreeV3","summary":"List application repository tree","tags":["Applications"],"description":"List files and directories in the application Git repository at a given ref. Use this to discover the repository structure before reading individual files. Defaults to reading the commit of the latest successful deployment so you see exactly the code that is running. Only applications with a `privateGit` or `publicGit` source have a repository; `dockerImage` and internally created apps return 422.","parameters":[{"schema":{"example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0","type":"string"},"in":"query","name":"ref","required":false,"description":"Branch, tag, or commit SHA to read the tree at. Defaults to the commit of the latest successful deployment, falling back to the default branch when there is no such deployment or the app's repository was changed after it (so the deployed commit no longer exists in the current repo). Pass the deployed commit SHA to inspect exactly the code that is running."},{"schema":{"example":"src","type":"string"},"in":"query","name":"path","required":false,"description":"Directory path relative to the repository root. Defaults to the root."},{"schema":{"example":false,"type":"string"},"in":"query","name":"recursive","required":false,"description":"When true, returns the full tree under `path` recursively in a single response. When false (default), returns only the immediate children. Large trees may be truncated."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ref the tree was read at (the resolved commit SHA or branch)","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"},"entries":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Path of the entry relative to the repository root","example":"src/index.ts"},"type":{"type":"string","enum":["file","dir"],"description":"Entry type. `file` - a file (blob). `dir` - a directory (tree).","example":"file"},"size":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"File size in bytes. Null for directories.","example":1024},"sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Object SHA of the entry, when available","example":"b1c2d3e4"}},"required":["path","type","size","sha"],"additionalProperties":false},"description":"Tree entries at the requested path"}},"required":["ref","entries"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/repository/contents":{"get":{"operationId":"getApplicationRepositoryFileV3","summary":"Read application repository file","tags":["Applications"],"description":"Read the contents of a single file from the application Git repository at a given ref. Defaults to the commit of the latest successful deployment so you read exactly the code that is running. Binary files and files larger than 1 MB return metadata only with a null `content` (check `is_binary` and `truncated`). Returns 404 when the file does not exist at the ref. Only applications with a `privateGit` or `publicGit` source have a repository; `dockerImage` and internally created apps return 422.","parameters":[{"schema":{"type":"string","minLength":1,"example":"src/index.ts"},"in":"query","name":"path","required":true,"description":"Path of the file to read, relative to the repository root."},{"schema":{"example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0","type":"string"},"in":"query","name":"ref","required":false,"description":"Branch, tag, or commit SHA to read the file at. Defaults to the commit of the latest successful deployment, falling back to the default branch when there is no such deployment or the app's repository was changed after it (so the deployed commit no longer exists in the current repo)."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string","description":"Path of the file relative to the repository root","example":"src/index.ts"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ref the file was read at (the resolved commit SHA or branch)","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UTF-8 file content. Null when the file is binary or exceeds the 1 MB size limit.","example":"export const main = () => console.log('hello')"},"size":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"File size in bytes","example":1024},"is_binary":{"type":"boolean","description":"Whether the file was detected as binary. Binary files do not return content.","example":false},"truncated":{"type":"boolean","description":"Whether content was omitted because the file exceeds the 1 MB size limit","example":false}},"required":["path","ref","content","size","is_binary","truncated"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/applications/{id}/repository/search":{"get":{"operationId":"searchApplicationRepositoryV3","summary":"Search application repository code","tags":["Applications"],"description":"Search the application Git repository for code matching a query, useful for locating where something is defined or used. Search runs against the provider index, which covers the default branch, so it does not accept a ref. Result quality varies by provider: it is strongest on GitHub and more limited on GitLab and Bitbucket. Only applications with a `privateGit` or `publicGit` source have a repository; `dockerImage` and internally created apps return 422.","parameters":[{"schema":{"type":"string","minLength":1,"example":"createServer"},"in":"query","name":"query","required":true,"description":"Code search query. Searches file contents in the repository."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"matches":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Path of the file containing the match","example":"src/server.ts"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ref the match was found on, when reported by the provider","example":"main"},"line":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Line number of the match, when available","example":12},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A short snippet of the matching line, when available","example":"const createServer = () => {}"}},"required":["path","ref","line","preview"],"additionalProperties":false},"description":"Matching code locations"}},"required":["matches"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases":{"post":{"operationId":"createDatabaseV3","summary":"Create database","tags":["Databases"],"description":"Create a new database on a specified cluster. The database is provisioned asynchronously - the initial status will be `creating` and will transition to `ready` once provisioning completes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":2,"maxLength":64,"description":"Human-readable name for the new database. Must be between 2 and 64 characters.","example":"My Database"},"type":{"type":"string","enum":["postgresql","mariadb","mysql","redis","valkey"],"description":"Database engine type. `postgresql` - PostgreSQL. `mariadb` - MariaDB. `mysql` - MySQL. `redis` - Redis. `valkey` - Valkey.","example":"postgresql"},"version":{"type":"string","description":"Database engine version to use. Available versions depend on the database type and the selected cluster. Unsupported versions are rejected with a 400 response.","example":"16"},"cluster_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the cluster (data center location) where the database will be created. Use the List Clusters endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"resource_type_id":{"type":"string","description":"Identifier of the database resource type (machine size). Use the List Database Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"db_name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^[a-zA-Z0-9_\\-+]+$","description":"Name of the database to create within the server. Must contain only alphanumeric characters, underscores, hyphens, or plus signs.","example":"my_database"},"db_password":{"type":"string","minLength":4,"maxLength":100,"pattern":"^[a-zA-Z0-9_?<>#@\\-=+]+$","description":"Password for the database user. Must be between 4 and 100 characters and contain only alphanumeric characters and special characters (_?<>#@-=+).","example":"securePassword123"},"db_user":{"description":"Username for database authentication. Must be between 2 and 32 characters. Cannot be \"root\" or \"postgres\". If omitted, the database engine default user is used.","example":"db_user","type":"string","minLength":2,"maxLength":32,"pattern":"^[a-zA-Z0-9_\\-+]+$"},"project_id":{"description":"Identifier of the project to group this database under. When omitted, the database is not assigned to any project.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"extensions":{"description":"PostgreSQL extensions to enable. Only applicable when type is `postgresql`.","type":"object","properties":{"enable_vector":{"description":"Enable the pgvector extension for vector similarity search","example":false,"type":"boolean"},"enable_postgis":{"description":"Enable the PostGIS extension for geospatial data","example":false,"type":"boolean"},"enable_cron":{"description":"Enable the pg_cron extension for scheduled jobs","example":false,"type":"boolean"}}}},"required":["display_name","type","version","cluster_id","resource_type_id","db_name","db_password"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this database is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-database"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Database"},"type":{"type":"string","enum":["postgresql","mariadb","mysql","mongodb","redis","valkey"],"description":"Database engine type. `postgresql` - PostgreSQL. `mariadb` - MariaDB. `mysql` - MySQL. `redis` - Redis. `valkey` - Valkey.","example":"postgresql"},"version":{"type":"string","description":"Database engine version","example":"16"},"status":{"anyOf":[{"type":"string","enum":["creating","ready","updating","passwordChange","passwordChangeFailed","deleting","error","dbDeletionFailed","restoring","restoringFailed","updatingExternalConnection"]},{"type":"null"}],"description":"Current status of the database reflecting the most recent lifecycle operation","example":"ready"},"is_suspended":{"type":"boolean","description":"Whether the database is currently suspended","example":false},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this database","example":"db1"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","type","version","status","is_suspended","resource_type_name","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"listDatabasesV3","summary":"List databases","tags":["Databases"],"description":"Retrieve a paginated list of all databases the authenticated API key has access to. Results are ordered by name and can be paginated using the `limit` and `offset` query parameters.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-database"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Database"},"status":{"anyOf":[{"type":"string","enum":["creating","ready","updating","passwordChange","passwordChangeFailed","deleting","error","dbDeletionFailed","restoring","restoringFailed","updatingExternalConnection"]},{"type":"null"}],"description":"Current status of the database reflecting the most recent lifecycle operation","example":"ready"},"type":{"type":"string","enum":["postgresql","mariadb","mysql","mongodb","redis","valkey"],"description":"Database engine type. `postgresql` - PostgreSQL. `mariadb` - MariaDB. `mysql` - MySQL. `redis` - Redis. `valkey` - Valkey.","example":"postgresql"},"version":{"type":"string","description":"Database engine version","example":"16"},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this database","example":"db1"},"is_suspended":{"type":"boolean","description":"Whether the database is currently suspended","example":false},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","display_name","status","type","version","resource_type_name","is_suspended","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}":{"get":{"operationId":"getDatabaseV3","summary":"Get database","tags":["Databases"],"description":"Retrieve the full details of a database including connection hostnames, cluster information, and current status.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this database is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-database"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Database"},"type":{"type":"string","enum":["postgresql","mariadb","mysql","mongodb","redis","valkey"],"description":"Database engine type. `postgresql` - PostgreSQL. `mariadb` - MariaDB. `mysql` - MySQL. `redis` - Redis. `valkey` - Valkey.","example":"postgresql"},"version":{"type":"string","description":"Database engine version","example":"16"},"status":{"anyOf":[{"type":"string","enum":["creating","ready","updating","passwordChange","passwordChangeFailed","deleting","error","dbDeletionFailed","restoring","restoringFailed","updatingExternalConnection"]},{"type":"null"}],"description":"Current status of the database reflecting the most recent lifecycle operation","example":"ready"},"is_suspended":{"type":"boolean","description":"Whether the database is currently suspended","example":false},"cluster_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the cluster where the database is deployed. Use the List Clusters endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"cluster_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable name of the cluster","example":"Iowa, USA"},"cluster_location":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Google Cloud region where the cluster is located","example":"us-central1"},"resource_type_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the database resource type (machine size). Use the List Database Resource Types endpoint to retrieve available options.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this database","example":"db1"},"cpu_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum CPU allocation in millicores","example":500},"memory_limit":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Maximum memory allocation in megabytes","example":512},"storage_size":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}],"description":"Storage allocation in megabytes","example":10000},"db_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the database within the server. Returns \"0\" for Redis and Valkey.","example":"my_database"},"internal_hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Internal Kubernetes DNS hostname for service-to-service communication within the cluster","example":"my-database.my-database-abc123.svc.cluster.local"},"internal_port":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Port number for internal connections within the cluster","example":"5432"},"external_hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"External hostname for connections from outside the cluster","example":"ext-db.example.com"},"external_port":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Port number for external connections from outside the cluster","example":"15432"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","type","version","status","is_suspended","cluster_id","cluster_display_name","cluster_location","resource_type_id","resource_type_name","cpu_limit","memory_limit","storage_size","db_name","internal_hostname","internal_port","external_hostname","external_port","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateDatabaseV3","summary":"Update database","tags":["Databases"],"description":"Update one or more properties of an existing database. Only include the fields you want to change - omitted fields are left unchanged. Changing the resource type triggers an asynchronous update operation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"Human-readable name shown in the dashboard and API responses","example":"My Database","type":"string","minLength":2,"maxLength":64},"resource_type_id":{"description":"Identifier of the database resource type (machine size) to change to. Changing the resource type triggers an update operation.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string"},"project_id":{"description":"Identifier of the project to assign this database to. Set to null to remove the project assignment.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this database","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this database is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-database"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Database"},"type":{"type":"string","enum":["postgresql","mariadb","mysql","mongodb","redis","valkey"],"description":"Database engine type. `postgresql` - PostgreSQL. `mariadb` - MariaDB. `mysql` - MySQL. `redis` - Redis. `valkey` - Valkey.","example":"postgresql"},"version":{"type":"string","description":"Database engine version","example":"16"},"status":{"anyOf":[{"type":"string","enum":["creating","ready","updating","passwordChange","passwordChangeFailed","deleting","error","dbDeletionFailed","restoring","restoringFailed","updatingExternalConnection"]},{"type":"null"}],"description":"Current status of the database reflecting the most recent lifecycle operation","example":"ready"},"is_suspended":{"type":"boolean","description":"Whether the database is currently suspended","example":false},"resource_type_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name of the resource type (machine size) assigned to this database","example":"db1"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the database was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","type","version","status","is_suspended","resource_type_name","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteDatabaseV3","summary":"Delete database","tags":["Databases"],"description":"Permanently delete a database and all of its data. This operation is irreversible and cannot be performed while the database status is creating, deleting, updating, or when a backup is in progress.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database is being deleted"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/activate":{"post":{"operationId":"activateDatabaseV3","summary":"Activate database","tags":["Databases"],"description":"Activate a previously suspended database, restoring it to a running state. The operation is asynchronous - the database status will transition once activation completes.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database activation started"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/suspend":{"post":{"operationId":"suspendDatabaseV3","summary":"Suspend database","tags":["Databases"],"description":"Suspend a running database by stopping all of its processes. The database configuration and data are preserved. Use the activate endpoint to restore the database. Cannot be performed while the database is being created, deleted, updated, or has a backup in progress.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database suspension started"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/restart":{"post":{"operationId":"restartDatabaseV3","summary":"Restart database","tags":["Databases"],"description":"Restart the database. The database configuration and stored data are preserved. The operation is asynchronous - the database status transitions to `updating` while the restart is in progress and back to `ready` once it completes. Allowed only when the database status is `ready`, `error`, `passwordChangeFailed`, or `restoringFailed`, the database is not suspended, and there is no backup in progress.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database restart started"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/reset-password":{"post":{"operationId":"resetDatabasePasswordV3","summary":"Reset database password","tags":["Databases"],"description":"Reset the password for a database. The operation is asynchronous - the database status will change to `passwordChange` during the process and transition back to `ready` once complete.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"new_password":{"type":"string","minLength":4,"maxLength":100,"pattern":"^[a-zA-Z0-9_?<>#@\\-=+]+$","description":"New password for the database user. Must be between 4 and 100 characters and contain only alphanumeric characters and special characters (_?<>#@-=+).","example":"newSecurePassword123"}},"required":["new_password"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database password reset started"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/cpu-usage":{"get":{"operationId":"getDatabaseCpuUsageV3","summary":"Get database CPU usage","tags":["Databases"],"description":"Retrieve a time series of CPU usage for a database. Returns data points at the specified interval showing actual CPU consumption in cores.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/cpu-limit":{"get":{"operationId":"getDatabaseCpuLimitV3","summary":"Get database CPU limit","tags":["Databases"],"description":"Retrieve a time series of CPU limits for a database. Returns data points at the specified interval showing the configured CPU limit in cores.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/memory-usage":{"get":{"operationId":"getDatabaseMemoryUsageV3","summary":"Get database memory usage","tags":["Databases"],"description":"Retrieve a time series of memory usage for a database. Returns data points at the specified interval showing actual memory consumption in bytes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/memory-limit":{"get":{"operationId":"getDatabaseMemoryLimitV3","summary":"Get database memory limit","tags":["Databases"],"description":"Retrieve a time series of memory limits for a database. Returns data points at the specified interval showing the configured memory limit in bytes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/storage-usage":{"get":{"operationId":"getDatabaseStorageUsageV3","summary":"Get database storage usage","tags":["Databases"],"description":"Retrieve a time series of storage usage for a database. Returns data points at the specified interval showing actual disk consumption in bytes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/storage-limit":{"get":{"operationId":"getDatabaseStorageLimitV3","summary":"Get database storage limit","tags":["Databases"],"description":"Retrieve a time series of storage limits for a database. Returns data points at the specified interval showing the configured storage limit in bytes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":60},"in":"query","name":"interval_in_seconds","required":true,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/all-storage":{"get":{"operationId":"getDatabaseAllStorageV3","summary":"Get database total storage","tags":["Databases"],"description":"Retrieve the current total allocated storage for a database. Returns a single point-in-time value in bytes.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"number","description":"Current metric value","example":1073741824}},"required":["value"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/metrics/used-storage":{"get":{"operationId":"getDatabaseUsedStorageV3","summary":"Get database used storage","tags":["Databases"],"description":"Retrieve the current used storage for a database. Returns a single point-in-time value in bytes.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"number","description":"Current metric value","example":1073741824}},"required":["value"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/backups":{"get":{"operationId":"listDatabaseBackupsV3","summary":"List database backups","tags":["Databases"],"description":"Retrieve all backups for a database, including both automatic daily backups and user-created manual backups. Daily backups have a 7-day retention period and manual backups have a 14-day retention period. Use the optional type filter to retrieve only daily or manual backups.","parameters":[{"schema":{"type":"string","enum":["daily","manual"]},"in":"query","name":"type","required":false,"description":"Filter backups by type. When omitted, both daily and manual backups are returned."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Backup identifier (unique backup name)","example":"daily-backup-2025-01-15"},"name":{"type":"string","description":"Unique backup name","example":"daily-backup-2025-01-15"},"display_name":{"type":"string","description":"Human-readable name for the backup. For daily backups, this matches the backup name.","example":"My Manual Backup"},"type":{"type":"string","enum":["daily","manual"],"description":"Backup type. `daily` - automatic daily backup with 7-day retention. `manual` - user-created backup with 14-day retention.","example":"manual"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the backup was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"expires_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the backup expires and will be automatically deleted, in ISO 8601 format","example":"2025-02-06T00:00:00.000Z"}},"required":["id","name","display_name","type","created_at","expires_at"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createDatabaseBackupV3","summary":"Create database backup","tags":["Databases"],"description":"Create a manual backup of a database. The backup is created asynchronously and will appear in the backup list once completed. Manual backups have a 14-day retention period.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"description":"Human-readable name for the manual backup","example":"Pre-migration backup"}},"required":["display_name"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database backup creation started"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/backups/{backup_id}":{"delete":{"operationId":"deleteDatabaseBackupV3","summary":"Delete database backup","tags":["Databases"],"description":"Delete a specific database backup by its unique name. The deletion is processed asynchronously.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"},{"schema":{"type":"string","example":"manual-my-backup-abc123"},"in":"path","name":"backup_id","required":true,"description":"Backup identifier (unique backup name)"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database backup deletion started"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/backups/{backup_id}/restore":{"post":{"operationId":"restoreDatabaseBackupV3","summary":"Restore database backup","tags":["Databases"],"description":"Restore a database from a specific backup. The restore operation is asynchronous - the database status will reflect the progress of the operation. By default the source database is restored in place and its current data is replaced. Optionally pass `target_database_id` in the body to restore the backup into a different database; the target must be in the same cluster, of the same database type, and on the same version as the source. The request is rejected with a 400 while another operation is in progress on the database being restored, or while a backup of the source database is still being created.","requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"target_database_id":{"description":"Optional ID of a different database to restore the backup into. When provided, the backup is cloned to this target database instead of overwriting the source. The target must be in the same cluster, of the same database type, and on the same version as the source. Its current data will be replaced.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},{"type":"null"}]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"},{"schema":{"type":"string","example":"manual-my-backup-abc123"},"in":"path","name":"backup_id","required":true,"description":"Backup identifier (unique backup name)"}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Database backup restore started"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/external-connection/toggle":{"post":{"operationId":"toggleDatabaseExternalConnectionV3","summary":"Toggle external connection","tags":["Databases"],"description":"Toggle external network access for a database. When enabled, the database becomes accessible from outside the cluster via the external hostname and port. When disabled, the database is only accessible internally. The operation is asynchronous - the database status will reflect the progress.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"External connection toggle started"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/internal-connections":{"get":{"operationId":"listDatabaseInternalConnectionsV3","summary":"List internal connections","tags":["Databases"],"description":"Retrieve all internal connections for a database. Internal connections allow services within the same cluster to communicate with each other. Returns connections where this database is either the source or target.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Internal connection identifier","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"source_id":{"type":"string","description":"Identifier of the source resource","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"source_type":{"type":"string","enum":["appResource","dbResource"],"description":"Type of the source resource. `appResource` - application. `dbResource` - database.","example":"dbResource"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"System name of the source resource","example":"my-database"},"source_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the source resource","example":"My Database"},"target_id":{"type":"string","description":"Identifier of the target resource","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"target_type":{"type":"string","enum":["appResource","dbResource"],"description":"Type of the target resource. `appResource` - application. `dbResource` - database.","example":"appResource"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"System name of the target resource","example":"my-app"},"target_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the target resource","example":"My App"}},"required":["id","source_id","source_type","source_name","source_display_name","target_id","target_type","target_name","target_display_name"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createDatabaseInternalConnectionV3","summary":"Create internal connection","tags":["Databases"],"description":"Create an internal connection from this database to another service (application or database). Both services must be deployed in the same cluster. The database from the URL path is always the source of the connection.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the target resource to connect to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"target_type":{"type":"string","enum":["app","database"],"description":"Type of the target resource. `app` - application. `database` - database.","example":"app"}},"required":["target_id","target_type"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the created internal connection","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["id"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/internal-connections/{connection_id}":{"delete":{"operationId":"deleteDatabaseInternalConnectionV3","summary":"Delete internal connection","tags":["Databases"],"description":"Delete an internal connection associated with this database. The connection must belong to this database (either as source or target).","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"connection_id","required":true,"description":"Internal connection identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Internal connection deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/databases/{id}/ip-restriction":{"get":{"operationId":"getDatabaseIpRestrictionV3","summary":"Get database IP restriction","tags":["Databases"],"description":"Retrieve the current IP restriction configuration for a database. Returns the restriction type, whether it is active, and the list of IP addresses or CIDR ranges. If no restriction has been configured, returns a default state with type `deny`, disabled, and an empty IP list.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["allow","deny"],"description":"Restriction type. `allow` - only listed IPs can access. `deny` - listed IPs are blocked.","example":"deny"},"is_enabled":{"type":"boolean","description":"Whether the IP restriction is currently active","example":false},"ip_list":{"type":"array","items":{"type":"string"},"description":"List of IP addresses or CIDR ranges included in the restriction","example":["203.0.113.0/24","198.51.100.1"]}},"required":["type","is_enabled","ip_list"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"put":{"operationId":"updateDatabaseIpRestrictionV3","summary":"Update database IP restriction","tags":["Databases"],"description":"Update the IP restriction configuration for a database. Sets the restriction type (allow or deny), enables or disables it, and updates the list of IP addresses or CIDR ranges. IP restrictions only apply to external connections. When type is `allow`, only the listed IPs can access the database. When type is `deny`, the listed IPs are blocked. Returns the updated restriction state.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["allow","deny"],"description":"Restriction type. `allow` - only listed IPs can access the database externally. `deny` - listed IPs are blocked from accessing the database externally."},"is_enabled":{"type":"boolean","description":"Whether the IP restriction should be active"},"ip_list":{"maxItems":500,"type":"array","items":{"type":"string","maxLength":45},"description":"List of IP addresses or CIDR ranges to include in the restriction. Each IP must be a valid public unicast address or CIDR range."}},"required":["type","is_enabled","ip_list"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Database identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["allow","deny"],"description":"Restriction type. `allow` - only listed IPs can access. `deny` - listed IPs are blocked.","example":"allow"},"is_enabled":{"type":"boolean","description":"Whether the IP restriction is currently active","example":true},"ip_list":{"type":"array","items":{"type":"string"},"description":"List of IP addresses or CIDR ranges included in the restriction","example":["203.0.113.0/24","198.51.100.1"]}},"required":["type","is_enabled","ip_list"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/docker-registries":{"get":{"operationId":"listDockerRegistriesV3","summary":"List Docker registry credentials","tags":["Docker Registries"],"description":"Retrieve a paginated list of all Docker registry credentials in the company. Credentials are used to authenticate with private Docker registries when pulling images for deployments. The secret field is never included in responses.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the Docker registry credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Human-readable name for the Docker registry credential","example":"My Docker Hub"},"registry":{"type":"string","enum":["gcr","ecr","dockerHub","github","gitlab","digitalOcean","custom"],"description":"Docker registry provider. `dockerHub` - Docker Hub. `gcr` - Google Container Registry. `ecr` - Amazon Elastic Container Registry. `github` - GitHub Container Registry. `gitlab` - GitLab Container Registry. `digitalOcean` - DigitalOcean Container Registry. `custom` - a self-hosted or third-party registry.","example":"dockerHub"},"username":{"type":"string","description":"Username or access key used to authenticate with the Docker registry","example":"my-docker-user"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","registry","username","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createDockerRegistryV3","summary":"Create Docker registry credential","tags":["Docker Registries"],"description":"Create a new Docker registry credential for the company. The credential is used to authenticate with private Docker registries when pulling images for deployments. The secret is encrypted before storage and never returned in API responses.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the Docker registry credential","example":"My Docker Hub"},"registry":{"default":"dockerHub","description":"Docker registry provider. `dockerHub` - Docker Hub. `gcr` - Google Container Registry. `ecr` - Amazon Elastic Container Registry. `github` - GitHub Container Registry. `gitlab` - GitLab Container Registry. `digitalOcean` - DigitalOcean Container Registry. `custom` - a self-hosted or third-party registry.","example":"dockerHub","type":"string","enum":["gcr","ecr","dockerHub","github","gitlab","digitalOcean","custom"]},"username":{"type":"string","pattern":"^(?=.{1,39}$)[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$","description":"Username or access key used to authenticate with the Docker registry","example":"my-docker-user"},"secret":{"type":"string","pattern":"^.{8,128}$","description":"Password or access token used to authenticate with the Docker registry. Stored encrypted at rest.","example":"my-secret-token"}},"required":["name","username","secret"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the Docker registry credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Human-readable name for the Docker registry credential","example":"My Docker Hub"},"registry":{"type":"string","enum":["gcr","ecr","dockerHub","github","gitlab","digitalOcean","custom"],"description":"Docker registry provider. `dockerHub` - Docker Hub. `gcr` - Google Container Registry. `ecr` - Amazon Elastic Container Registry. `github` - GitHub Container Registry. `gitlab` - GitLab Container Registry. `digitalOcean` - DigitalOcean Container Registry. `custom` - a self-hosted or third-party registry.","example":"dockerHub"},"username":{"type":"string","description":"Username or access key used to authenticate with the Docker registry","example":"my-docker-user"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","name","registry","username","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/docker-registries/{id}":{"get":{"operationId":"getDockerRegistryV3","summary":"Get Docker registry credential","tags":["Docker Registries"],"description":"Retrieve the details of a Docker registry credential. The secret field is never included in responses for security reasons.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Docker registry credential identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the Docker registry credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Human-readable name for the Docker registry credential","example":"My Docker Hub"},"registry":{"type":"string","enum":["gcr","ecr","dockerHub","github","gitlab","digitalOcean","custom"],"description":"Docker registry provider. `dockerHub` - Docker Hub. `gcr` - Google Container Registry. `ecr` - Amazon Elastic Container Registry. `github` - GitHub Container Registry. `gitlab` - GitLab Container Registry. `digitalOcean` - DigitalOcean Container Registry. `custom` - a self-hosted or third-party registry.","example":"dockerHub"},"username":{"type":"string","description":"Username or access key used to authenticate with the Docker registry","example":"my-docker-user"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","name","registry","username","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateDockerRegistryV3","summary":"Update Docker registry credential","tags":["Docker Registries"],"description":"Update one or more properties of an existing Docker registry credential. Only the provided fields are updated. The secret is re-encrypted if changed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"New name for the Docker registry credential","example":"My Docker Hub","type":"string","minLength":1,"maxLength":255},"registry":{"description":"Docker registry provider. `dockerHub` - Docker Hub. `gcr` - Google Container Registry. `ecr` - Amazon Elastic Container Registry. `github` - GitHub Container Registry. `gitlab` - GitLab Container Registry. `digitalOcean` - DigitalOcean Container Registry. `custom` - a self-hosted or third-party registry.","example":"dockerHub","type":"string","enum":["gcr","ecr","dockerHub","github","gitlab","digitalOcean","custom"]},"username":{"description":"New username or access key for the Docker registry","example":"my-docker-user","type":"string","pattern":"^(?=.{1,39}$)[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$"},"secret":{"description":"New password or access token for the Docker registry. Stored encrypted at rest.","example":"my-secret-token","type":"string","pattern":"^.{8,128}$"}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Docker registry credential identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the Docker registry credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this credential","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Human-readable name for the Docker registry credential","example":"My Docker Hub"},"registry":{"type":"string","enum":["gcr","ecr","dockerHub","github","gitlab","digitalOcean","custom"],"description":"Docker registry provider. `dockerHub` - Docker Hub. `gcr` - Google Container Registry. `ecr` - Amazon Elastic Container Registry. `github` - GitHub Container Registry. `gitlab` - GitLab Container Registry. `digitalOcean` - DigitalOcean Container Registry. `custom` - a self-hosted or third-party registry.","example":"dockerHub"},"username":{"type":"string","description":"Username or access key used to authenticate with the Docker registry","example":"my-docker-user"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the credential was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","name","registry","username","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteDockerRegistryV3","summary":"Delete Docker registry credential","tags":["Docker Registries"],"description":"Permanently delete a Docker registry credential. Applications using this credential will no longer be able to pull private images from the registry. Make sure no active applications depend on this credential before deleting it.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Docker registry credential identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Docker registry credential deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage":{"post":{"operationId":"createObjectStorageV3","summary":"Create object storage bucket","tags":["Object storages"],"description":"Create a new R2 object storage bucket. The bucket is provisioned immediately with S3-compatible API credentials returned in the response. Optionally enable a public CDN domain by setting `public_access` to true.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":2,"maxLength":64,"description":"Human-readable name for the new object storage bucket. Must be between 2 and 64 characters.","example":"My Bucket"},"location":{"description":"Geographic hint for where most data access occurs. Defaults to `enam` (Eastern North America). `apac` - Asia-Pacific. `eeur` - Eastern Europe. `enam` - Eastern North America. `oc` - Oceania. `weur` - Western Europe. `wnam` - Western North America.","example":"enam","type":"string","enum":["apac","eeur","enam","oc","weur","wnam"]},"jurisdiction":{"description":"Data residency jurisdiction. Defaults to `default` (no restriction). `default` - no jurisdiction restriction. `eu` - data stored exclusively in the EU. `fedramp` - FedRAMP-compliant storage.","example":"default","type":"string","enum":["default","eu","fedramp"]},"public_access":{"description":"Whether to enable a public CDN domain for this bucket. Defaults to false.","example":false,"type":"boolean"},"project_id":{"description":"Identifier of the project to group this bucket under. When omitted, the bucket is not assigned to any project.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["display_name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this object storage bucket is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-bucket"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Bucket"},"location":{"type":"string","enum":["apac","eeur","enam","oc","weur","wnam"],"description":"Geographic hint for where most data access occurs. `apac` - Asia-Pacific. `eeur` - Eastern Europe. `enam` - Eastern North America. `oc` - Oceania. `weur` - Western Europe. `wnam` - Western North America.","example":"enam"},"jurisdiction":{"type":"string","enum":["default","eu","fedramp"],"description":"Data residency jurisdiction for the bucket. `default` - no jurisdiction restriction. `eu` - data stored exclusively in the EU. `fedramp` - FedRAMP-compliant storage.","example":"default"},"status":{"type":"string","enum":["active","deleting","deletionFailed"],"description":"Current lifecycle state of the bucket. `active` - bucket is available for use. `deleting` - deletion is in progress, the bucket is emptied and removed asynchronously. `deletionFailed` - the deletion job failed, contact support to retry.","example":"active"},"bucket_name":{"type":"string","description":"Name of the R2 bucket in Cloudflare","example":"my-bucket"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public CDN domain for accessing objects in the bucket. Null if public access is not enabled.","example":"my-bucket.sevalla.storage"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"S3-compatible API endpoint URL for programmatic access to the bucket","example":"https://account-id.r2.cloudflarestorage.com"},"access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Access key ID for S3-compatible API authentication. Only returned when the bucket is first created.","example":"access-key-id"},"secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Secret access key for S3-compatible API authentication. Only returned when the bucket is first created.","example":"secret-access-key"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","location","jurisdiction","status","bucket_name","domain","endpoint","access_key","secret_key","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"listObjectStoragesV3","summary":"List object storage buckets","tags":["Object storages"],"description":"Retrieve a paginated list of all object storage buckets the authenticated API key has access to. Results are ordered by name and can be paginated using the `limit` and `offset` query parameters.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-bucket"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Bucket"},"location":{"type":"string","enum":["apac","eeur","enam","oc","weur","wnam"],"description":"Geographic hint for where most data access occurs. `apac` - Asia-Pacific. `eeur` - Eastern Europe. `enam` - Eastern North America. `oc` - Oceania. `weur` - Western Europe. `wnam` - Western North America.","example":"enam"},"jurisdiction":{"type":"string","enum":["default","eu","fedramp"],"description":"Data residency jurisdiction for the bucket. `default` - no jurisdiction restriction. `eu` - data stored exclusively in the EU. `fedramp` - FedRAMP-compliant storage.","example":"default"},"status":{"type":"string","enum":["active","deleting","deletionFailed"],"description":"Current lifecycle state of the bucket. `active` - bucket is available for use. `deleting` - deletion is in progress, the bucket is emptied and removed asynchronously. `deletionFailed` - the deletion job failed, contact support to retry.","example":"active"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public CDN domain for accessing objects in the bucket. Null if public access is not enabled.","example":"my-bucket.sevalla.storage"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","display_name","location","jurisdiction","status","domain","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}":{"get":{"operationId":"getObjectStorageV3","summary":"Get object storage bucket","tags":["Object storages"],"description":"Retrieve the full details of an object storage bucket including the S3-compatible endpoint, access credentials, and CDN domain.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this object storage bucket is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-bucket"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Bucket"},"location":{"type":"string","enum":["apac","eeur","enam","oc","weur","wnam"],"description":"Geographic hint for where most data access occurs. `apac` - Asia-Pacific. `eeur` - Eastern Europe. `enam` - Eastern North America. `oc` - Oceania. `weur` - Western Europe. `wnam` - Western North America.","example":"enam"},"jurisdiction":{"type":"string","enum":["default","eu","fedramp"],"description":"Data residency jurisdiction for the bucket. `default` - no jurisdiction restriction. `eu` - data stored exclusively in the EU. `fedramp` - FedRAMP-compliant storage.","example":"default"},"status":{"type":"string","enum":["active","deleting","deletionFailed"],"description":"Current lifecycle state of the bucket. `active` - bucket is available for use. `deleting` - deletion is in progress, the bucket is emptied and removed asynchronously. `deletionFailed` - the deletion job failed, contact support to retry.","example":"active"},"bucket_name":{"type":"string","description":"Name of the R2 bucket in Cloudflare","example":"my-bucket"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public CDN domain for accessing objects in the bucket. Null if public access is not enabled.","example":"my-bucket.sevalla.storage"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"S3-compatible API endpoint URL for programmatic access to the bucket","example":"https://account-id.r2.cloudflarestorage.com"},"access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Access key ID for S3-compatible API authentication. Only returned when the bucket is first created.","example":"access-key-id"},"secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Secret access key for S3-compatible API authentication. Only returned when the bucket is first created.","example":"secret-access-key"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","location","jurisdiction","status","bucket_name","domain","endpoint","access_key","secret_key","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateObjectStorageV3","summary":"Update object storage bucket","tags":["Object storages"],"description":"Update one or more properties of an existing object storage bucket. Only include the fields you want to change - omitted fields are left unchanged.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"Human-readable name shown in the dashboard and API responses","example":"My Bucket","type":"string","minLength":2,"maxLength":64},"project_id":{"description":"Identifier of the project to assign this bucket to. Set to null to remove the project assignment.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this object storage bucket is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-bucket"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Bucket"},"location":{"type":"string","enum":["apac","eeur","enam","oc","weur","wnam"],"description":"Geographic hint for where most data access occurs. `apac` - Asia-Pacific. `eeur` - Eastern Europe. `enam` - Eastern North America. `oc` - Oceania. `weur` - Western Europe. `wnam` - Western North America.","example":"enam"},"jurisdiction":{"type":"string","enum":["default","eu","fedramp"],"description":"Data residency jurisdiction for the bucket. `default` - no jurisdiction restriction. `eu` - data stored exclusively in the EU. `fedramp` - FedRAMP-compliant storage.","example":"default"},"status":{"type":"string","enum":["active","deleting","deletionFailed"],"description":"Current lifecycle state of the bucket. `active` - bucket is available for use. `deleting` - deletion is in progress, the bucket is emptied and removed asynchronously. `deletionFailed` - the deletion job failed, contact support to retry.","example":"active"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public CDN domain for accessing objects in the bucket. Null if public access is not enabled.","example":"my-bucket.sevalla.storage"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","location","jurisdiction","status","domain","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteObjectStorageV3","summary":"Delete object storage bucket","tags":["Object storages"],"description":"Schedule permanent deletion of an object storage bucket. This endpoint marks the bucket for deletion and queues a background job that empties all objects, revokes API credentials, and removes the bucket. The operation runs asynchronously and is irreversible. Poll the bucket to track its status - it will be reported as `deleting` while the job runs and disappears once the deletion completes.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"202":{"description":"Object storage bucket deletion has been scheduled"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Conflict"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":409},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}/domain":{"post":{"operationId":"createObjectStorageDomainV3","summary":"Enable CDN domain","tags":["Object storages"],"description":"Enable a public CDN domain for the object storage bucket. Objects in the bucket will be accessible via this domain. Fails if a domain is already enabled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public CDN domain for accessing objects in the bucket. Null if public access is not enabled.","example":"my-bucket.sevalla.storage"}},"required":["id","domain"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteObjectStorageDomainV3","summary":"Disable CDN domain","tags":["Object storages"],"description":"Disable the public CDN domain for the object storage bucket. Objects will no longer be accessible via the domain URL.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"204":{"description":"CDN domain disabled successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}/cache/purge":{"post":{"operationId":"purgeObjectStorageCacheV3","summary":"Purge CDN cache","tags":["Object storages"],"description":"Purge all cached content for the bucket's public CDN domain at the edge. Use this after replacing or updating objects so visitors get the latest versions instead of stale cached copies. Purging affects only the bucket's CDN domain and takes effect within a few seconds. If the bucket has no CDN domain enabled, there is nothing cached and the request succeeds without doing anything.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the purge request was processed successfully. Returns true even when the bucket has no CDN domain enabled, in which case there is nothing to purge."}},"required":["success"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}/cors-policies":{"get":{"operationId":"listObjectStorageCorsPoliciesV3","summary":"List CORS policies","tags":["Object storages"],"description":"Retrieve all CORS policy rules configured for the object storage bucket. Rules without an ID are automatically assigned one.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the CORS policy rule","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"methods":{"type":"array","items":{"type":"string","enum":["GET","PUT","POST","DELETE","HEAD"]},"description":"HTTP methods allowed by this CORS rule","example":["GET","PUT"]},"origins":{"type":"array","items":{"type":"string"},"description":"Origins allowed by this CORS rule. Use \"*\" to allow all origins.","example":["https://example.com"]},"headers":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"HTTP headers allowed in CORS requests. Null if no specific headers are configured.","example":["Content-Type"]}},"required":["id","methods","origins","headers"],"additionalProperties":false},"description":"List of CORS policy rules"}},"required":["data"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createObjectStorageCorsPolicyV3","summary":"Create CORS policy","tags":["Object storages"],"description":"Add a new CORS policy rule to the object storage bucket. The rule is appended to any existing rules.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["GET","PUT","POST","DELETE","HEAD"]},"description":"HTTP methods allowed by this CORS rule. At least one method is required. `GET` - read objects. `PUT` - upload objects. `POST` - create objects. `DELETE` - remove objects. `HEAD` - retrieve object metadata.","example":["GET","PUT"]},"origins":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":250},"description":"Origins allowed by this CORS rule. Use \"*\" to allow all origins. Maximum 100 origins.","example":["https://example.com"]},"headers":{"description":"HTTP headers allowed in CORS requests. Maximum 100 headers.","example":["Content-Type"],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":250}}},"required":["methods","origins"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"CORS policy created"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}/cors-policies/{cors_policy_id}":{"patch":{"operationId":"updateObjectStorageCorsPolicyV3","summary":"Update CORS policy","tags":["Object storages"],"description":"Update an existing CORS policy rule on the object storage bucket. All fields must be provided as the rule is fully replaced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"methods":{"minItems":1,"type":"array","items":{"type":"string","enum":["GET","PUT","POST","DELETE","HEAD"]},"description":"HTTP methods allowed by this CORS rule. `GET` - read objects. `PUT` - upload objects. `POST` - create objects. `DELETE` - remove objects. `HEAD` - retrieve object metadata.","example":["GET","PUT"]},"origins":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":250},"description":"Origins allowed by this CORS rule. Use \"*\" to allow all origins. Maximum 100 origins.","example":["https://example.com"]},"headers":{"description":"HTTP headers allowed in CORS requests. Maximum 100 headers.","example":["Content-Type"],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":250}}},"required":["methods","origins"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"},{"schema":{"type":"string","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"cors_policy_id","required":true,"description":"CORS policy rule identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"CORS policy updated"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteObjectStorageCorsPolicyV3","summary":"Delete CORS policy","tags":["Object storages"],"description":"Remove a CORS policy rule from the object storage bucket. If this is the last rule, the entire CORS configuration is removed.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"},{"schema":{"type":"string","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"cors_policy_id","required":true,"description":"CORS policy rule identifier"}],"responses":{"204":{"description":"CORS policy deleted successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}/objects":{"get":{"operationId":"listObjectStorageObjectsV3","summary":"List objects","tags":["Object storages"],"description":"List objects in the bucket using cursor-based pagination. Use the `prefix` and `delimiter` parameters to browse the bucket like a file system.","parameters":[{"schema":{"example":"images/","type":"string"},"in":"query","name":"prefix","required":false,"description":"Filter objects by key prefix"},{"schema":{"example":"/","type":"string"},"in":"query","name":"delimiter","required":false,"description":"Character used to group keys into common prefixes (typically \"/\")"},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Continuation token from a previous response for pagination"},{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":200},"in":"query","name":"limit","required":false,"description":"Maximum number of objects to return per page. Maximum 200."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Full object key (path) within the bucket. Folder prefixes end with \"/\".","example":"images/photo.jpg"},"type":{"type":"string","enum":["folder","file","image","video","audio","document"],"description":"Object type inferred from the file extension. `folder` - a prefix acting as a folder. `file` - generic file. `image` - image file (jpg, png, etc). `video` - video file (mp4, mov, etc). `audio` - audio file (mp3, wav, etc). `document` - document file (pdf, doc, etc).","example":"file"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"MIME content type of the object","example":"image/jpeg"},"size":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Object size in bytes","example":1024},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the last modification","example":"2024-01-01T00:00:00.000Z"},"e_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Entity tag for the object, used for cache validation","example":"\"abc123\""}},"required":["key","type","content_type","size","updated_at","e_tag"],"additionalProperties":false},"description":"List of objects"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Continuation token for the next page. Null if there are no more results."}},"required":["data","cursor"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteObjectStorageObjectsV3","summary":"Delete objects","tags":["Object storages"],"description":"Delete one or more objects from the bucket by their keys. Objects are deleted in batches of up to 1000. Partial failures are logged but do not cause the request to fail.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string"},"description":"Object keys to delete. Maximum 1000 keys per request.","example":["images/photo.jpg","docs/readme.txt"]}},"required":["keys"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"204":{"description":"Objects deleted successfully"},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/object-storage/{id}/rotate-credentials":{"post":{"operationId":"rotateObjectStorageCredentialsV3","summary":"Rotate object storage credentials","tags":["Object storages"],"description":"Generate a new access key and secret key for the object storage bucket. The previous credentials can optionally stay valid for a grace period (up to 168 hours) so clients can migrate without downtime. When the grace period elapses, the previous credentials stop working. The new credentials are returned in the response and are the only chance to capture them.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"old_keys_ttl_hours":{"default":0,"description":"Number of hours to keep the previous access and secret keys valid after rotation (0-168). Set to 0 to immediately invalidate the previous credentials. Use a non-zero value to give clients time to migrate to the new credentials.","example":24,"type":"integer","minimum":0,"maximum":168}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Object storage bucket identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this object storage bucket","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this object storage bucket is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-bucket"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Bucket"},"location":{"type":"string","enum":["apac","eeur","enam","oc","weur","wnam"],"description":"Geographic hint for where most data access occurs. `apac` - Asia-Pacific. `eeur` - Eastern Europe. `enam` - Eastern North America. `oc` - Oceania. `weur` - Western Europe. `wnam` - Western North America.","example":"enam"},"jurisdiction":{"type":"string","enum":["default","eu","fedramp"],"description":"Data residency jurisdiction for the bucket. `default` - no jurisdiction restriction. `eu` - data stored exclusively in the EU. `fedramp` - FedRAMP-compliant storage.","example":"default"},"status":{"type":"string","enum":["active","deleting","deletionFailed"],"description":"Current lifecycle state of the bucket. `active` - bucket is available for use. `deleting` - deletion is in progress, the bucket is emptied and removed asynchronously. `deletionFailed` - the deletion job failed, contact support to retry.","example":"active"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Public CDN domain for accessing objects in the bucket. Null if public access is not enabled.","example":"my-bucket.sevalla.storage"},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"S3-compatible API endpoint URL for programmatic access to the bucket","example":"https://account-id.r2.cloudflarestorage.com"},"access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Access key ID for S3-compatible API authentication. Only returned when the bucket is first created.","example":"access-key-id"},"secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Secret access key for S3-compatible API authentication. Only returned when the bucket is first created.","example":"secret-access-key"},"old_access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous access key ID that is still valid until old_keys_expired_at, returned when credentials were rotated with a grace period. Null once the grace period has elapsed.","example":"old-access-key-id"},"old_secret_key":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous secret access key that is still valid until old_keys_expired_at, returned when credentials were rotated with a grace period. Null once the grace period has elapsed.","example":"old-secret-access-key"},"old_keys_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the previous credentials stop working, in ISO 8601 format. Null if no grace period is active.","example":"2025-01-31T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the object storage bucket was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","location","jurisdiction","status","domain","endpoint","access_key","secret_key","old_access_key","old_secret_key","old_keys_expired_at","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines":{"get":{"operationId":"listPipelinesV3","summary":"List pipelines","tags":["Pipelines"],"description":"Retrieve a paginated list of all pipelines in the company. Each pipeline includes a summary of its stages.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the pipeline shown in the dashboard","example":"My Pipeline"},"type":{"type":"string","enum":["trunk","branch"],"description":"Pipeline type. `trunk` - all stages share the same Git repository and branch configuration. `branch` - each stage can have its own branch.","example":"trunk"},"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline stage","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the stage shown in the dashboard","example":"Production"},"type":{"type":"string","enum":["preview","standard","prod"],"description":"Stage type. `standard` - regular deployment stage. `prod` - production stage. `preview` - ephemeral preview environment stage for pull request previews.","example":"standard"},"order":{"type":"integer","minimum":0,"maximum":50,"description":"Position of the stage in the pipeline, starting from 0. Lower numbers appear first.","example":1}},"required":["id","display_name","type","order"],"additionalProperties":false},"description":"Pipeline stages ordered by position"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","display_name","type","stages","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createPipelineV3","summary":"Create pipeline","tags":["Pipelines"],"description":"Create a new pipeline with two default stages (Dev and Production). Pipelines let you organize applications into deployment stages and promote builds between them.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Display name for the pipeline","example":"My Pipeline"},"type":{"type":"string","enum":["trunk","branch"],"description":"Pipeline type. `trunk` - all stages share the same Git repository and branch configuration. `branch` - each stage can have its own branch.","example":"trunk"},"project_id":{"description":"Assign the pipeline to a project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["display_name","type"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this pipeline is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the pipeline shown in the dashboard","example":"My Pipeline"},"type":{"type":"string","enum":["trunk","branch"],"description":"Pipeline type. `trunk` - all stages share the same Git repository and branch configuration. `branch` - each stage can have its own branch.","example":"trunk"},"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline stage","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the stage shown in the dashboard","example":"Production"},"type":{"type":"string","enum":["preview","standard","prod"],"description":"Stage type. `standard` - regular deployment stage. `prod` - production stage. `preview` - ephemeral preview environment stage for pull request previews.","example":"standard"},"order":{"type":"integer","minimum":0,"maximum":50,"description":"Position of the stage in the pipeline, starting from 0. Lower numbers appear first.","example":1}},"required":["id","display_name","type","order"],"additionalProperties":false},"description":"Pipeline stages created by default (Dev and Production)"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","type","stages","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}":{"get":{"operationId":"getPipelineV3","summary":"Get pipeline","tags":["Pipelines"],"description":"Retrieve the full details of a pipeline including all its stages. Use this to inspect the pipeline configuration, stage ordering, and preview settings.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this pipeline is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the pipeline shown in the dashboard","example":"My Pipeline"},"type":{"type":"string","enum":["trunk","branch"],"description":"Pipeline type. `trunk` - all stages share the same Git repository and branch configuration. `branch` - each stage can have its own branch.","example":"trunk"},"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline stage","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"pipeline_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the pipeline this stage belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the stage shown in the dashboard","example":"Production"},"type":{"type":"string","enum":["preview","standard","prod"],"description":"Stage type. `standard` - regular deployment stage. `prod` - production stage. `preview` - ephemeral preview environment stage for pull request previews.","example":"standard"},"order":{"type":"integer","minimum":0,"maximum":50,"description":"Position of the stage in the pipeline, starting from 0. Lower numbers appear first.","example":1},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch associated with this stage. Used to filter deployments by branch.","example":"main"},"auto_create_app":{"type":"boolean","description":"Whether to automatically create a preview app when a pull request is opened. Only applies to preview stages.","example":false},"delete_stale_apps":{"type":"boolean","description":"Whether to automatically delete preview apps that have not been deployed for longer than the stale app threshold. Only applies to preview stages.","example":false},"stale_app_days":{"type":"integer","minimum":1,"maximum":365,"description":"Number of days after the last deployment before a preview app is considered stale and eligible for automatic deletion. Only applies when delete_stale_apps is enabled.","example":5},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the stage was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the stage was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","pipeline_id","display_name","type","order","branch","auto_create_app","delete_stale_apps","stale_app_days","created_at","updated_at"],"additionalProperties":false},"description":"Pipeline stages ordered by position"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","type","stages","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updatePipelineV3","summary":"Update pipeline","tags":["Pipelines"],"description":"Update one or more properties of an existing pipeline. You can change the display name, type, project assignment, or reorder stages in a single request.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"New display name for the pipeline","example":"My Pipeline","type":"string","minLength":1,"maxLength":255},"type":{"description":"Pipeline type. `trunk` - all stages share the same Git repository and branch configuration. `branch` - each stage can have its own branch.","example":"trunk","type":"string","enum":["trunk","branch"]},"stage_order":{"description":"Reorder stages by providing each stage ID with its new position","type":"array","items":{"type":"object","properties":{"stage_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Stage identifier","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"order":{"type":"integer","minimum":0,"maximum":50,"description":"New position for the stage","example":1}},"required":["stage_id","order"]}},"project_id":{"description":"Assign the pipeline to a project, or pass null to remove the project assignment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this pipeline","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this pipeline is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the pipeline shown in the dashboard","example":"My Pipeline"},"type":{"type":"string","enum":["trunk","branch"],"description":"Pipeline type. `trunk` - all stages share the same Git repository and branch configuration. `branch` - each stage can have its own branch.","example":"trunk"},"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline stage","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the stage shown in the dashboard","example":"Production"},"type":{"type":"string","enum":["preview","standard","prod"],"description":"Stage type. `standard` - regular deployment stage. `prod` - production stage. `preview` - ephemeral preview environment stage for pull request previews.","example":"standard"},"order":{"type":"integer","minimum":0,"maximum":50,"description":"Position of the stage in the pipeline, starting from 0. Lower numbers appear first.","example":1}},"required":["id","display_name","type","order"],"additionalProperties":false},"description":"Pipeline stages ordered by position"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the pipeline was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","type","stages","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deletePipelineV3","summary":"Delete pipeline","tags":["Pipelines"],"description":"Permanently delete a pipeline and all its stages. Applications in the pipeline are unlinked but not deleted. Preview apps are queued for deletion.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Pipeline is being deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/promote":{"post":{"operationId":"promotePipelineV3","summary":"Promote pipeline","tags":["Pipelines"],"description":"Promote an application from one pipeline stage to another by copying the latest successful deployment from the source app to one or more target apps. The target apps receive a new deployment that reuses the source build image without rebuilding.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source_app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application to promote from. The latest successful deployment of this app will be used.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"target_app_ids":{"minItems":1,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":"Identifiers of the applications to promote to. Each target app will receive a new deployment using the source app build.","example":["fb5e5168-4281-4bec-94c5-0d1584e9e657"]}},"required":["source_app_id","target_app_ids"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"target_app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the target application that received the promotion","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"deployment_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the new deployment created on the target application","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["target_app_id","deployment_id"],"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/stages":{"post":{"operationId":"createPipelineStageV3","summary":"Create pipeline stage","tags":["Pipelines"],"description":"Create a new stage in a pipeline. The stage is inserted at the specified position and existing stages are shifted up. New stages are always created with the \"standard\" type.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the new stage","example":"Staging"},"insert_before":{"type":"integer","minimum":0,"maximum":50,"description":"Position to insert the stage at. Existing stages at this position and above are shifted up.","example":2},"branch":{"description":"Git branch to associate with this stage. Used in branch-type pipelines.","example":"staging","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["display_name","insert_before"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the pipeline stage","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"pipeline_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the pipeline this stage belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name for the stage shown in the dashboard","example":"Production"},"type":{"type":"string","enum":["preview","standard","prod"],"description":"Stage type. `standard` - regular deployment stage. `prod` - production stage. `preview` - ephemeral preview environment stage for pull request previews.","example":"standard"},"order":{"type":"integer","minimum":0,"maximum":50,"description":"Position of the stage in the pipeline, starting from 0. Lower numbers appear first.","example":1},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch associated with this stage. Used to filter deployments by branch.","example":"main"},"auto_create_app":{"type":"boolean","description":"Whether to automatically create a preview app when a pull request is opened. Only applies to preview stages.","example":false},"delete_stale_apps":{"type":"boolean","description":"Whether to automatically delete preview apps that have not been deployed for longer than the stale app threshold. Only applies to preview stages.","example":false},"stale_app_days":{"type":"integer","minimum":1,"maximum":365,"description":"Number of days after the last deployment before a preview app is considered stale and eligible for automatic deletion. Only applies when delete_stale_apps is enabled.","example":5},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the stage was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the stage was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","pipeline_id","display_name","type","order","branch","auto_create_app","delete_stale_apps","stale_app_days","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/stages/{stage_id}":{"delete":{"operationId":"deletePipelineStageV3","summary":"Delete pipeline stage","tags":["Pipelines"],"description":"Delete a stage from a pipeline. Applications in the stage are unlinked but not deleted. Remaining stages are automatically reordered to fill the gap.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"stage_id","required":true,"description":"Stage identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Pipeline stage deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/stages/{stage_id}/apps":{"post":{"operationId":"addAppToPipelineStageV3","summary":"Add application to pipeline stage","tags":["Pipelines"],"description":"Add an existing application to a pipeline stage. The application must belong to the same company as the pipeline and must not already be assigned to another pipeline stage. The application inherits the project assignment from the pipeline.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"app_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the application to add to the stage. The application must belong to the same company and must not already be in a pipeline.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["app_id"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"stage_id","required":true,"description":"Stage identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Application added to pipeline stage"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/stages/{stage_id}/apps/{app_id}":{"delete":{"operationId":"removeAppFromPipelineStageV3","summary":"Remove application from pipeline stage","tags":["Pipelines"],"description":"Remove an application from a pipeline stage. The application is unlinked from the stage but not deleted. It can be added to a different stage or used independently.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"stage_id","required":true,"description":"Stage identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"app_id","required":true,"description":"Application identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Application removed from pipeline stage"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/preview/enable":{"post":{"operationId":"enablePipelinePreviewV3","summary":"Enable pipeline preview","tags":["Pipelines"],"description":"Enable preview apps for a pipeline. When enabled, the pipeline can create ephemeral preview environments for pull requests. If the pipeline does not have a Git repository configured, you must provide a repo_url to connect one.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repo_url":{"description":"Git repository URL to connect to the pipeline. Required if the pipeline does not already have a repository configured.","example":"https://github.com/user/repo","type":"string","format":"uri"},"auto_create_app":{"default":false,"description":"Automatically create a preview app when a pull request is opened","example":false,"type":"boolean"},"delete_stale_apps":{"default":false,"description":"Automatically delete preview apps that have not been deployed for longer than the stale app threshold","example":false,"type":"boolean"},"stale_app_days":{"default":5,"description":"Number of days after the last deployment before a preview app is considered stale","example":5,"type":"integer","minimum":1,"maximum":365}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Pipeline preview stage has been enabled"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/preview/disable":{"post":{"operationId":"disablePipelinePreviewV3","summary":"Disable pipeline preview","tags":["Pipelines"],"description":"Disable preview apps for a pipeline. All existing preview apps in the preview stage are queued for deletion and the preview stage is removed.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Pipeline preview stage has been disabled"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/pipelines/{id}/preview":{"put":{"operationId":"updatePipelinePreviewSettingsV3","summary":"Update pipeline preview settings","tags":["Pipelines"],"description":"Update the preview stage configuration for a pipeline. You can change the auto-create behavior, stale app cleanup settings, or switch the connected Git repository.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repo_url":{"description":"Git repository URL. When provided and different from the current repository, the pipeline switches to the new repository.","example":"https://github.com/user/repo","type":"string","format":"uri"},"auto_create_app":{"description":"Automatically create a preview app when a pull request is opened","example":true,"type":"boolean"},"delete_stale_apps":{"description":"Automatically delete preview apps that have not been deployed for longer than the stale app threshold","example":true,"type":"boolean"},"stale_app_days":{"description":"Number of days after the last deployment before a preview app is considered stale","example":7,"type":"integer","minimum":1,"maximum":365}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Pipeline identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Pipeline preview settings updated"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/resources/clusters":{"get":{"operationId":"listClustersV3","summary":"List clusters","tags":["Resources"],"description":"Retrieve all available clusters (data center locations) where applications and databases can be deployed. This is reference data and does not require specific resource permissions.","responses":{"200":{"description":"List of available clusters","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the cluster","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Internal name of the cluster","example":"us-central1"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable name for the cluster shown in the dashboard","example":"Iowa, USA"},"location":{"type":"string","description":"Google Cloud region where the cluster is located","example":"us-central1"}},"required":["id","name","display_name","location"],"additionalProperties":false},"description":"List of available clusters"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/resources/database-resource-types":{"get":{"operationId":"listDatabaseResourceTypesV3","summary":"List database resource types","tags":["Resources"],"description":"Retrieve all available database resource types (machine sizes) that can be assigned to databases. This is reference data and does not require specific resource permissions.","responses":{"200":{"description":"List of available database resource types","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the database resource type","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Name of the resource type (machine size)","example":"db-s1"},"cpu_limit":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum CPU allocation in millicores","example":1000},"memory_limit":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum memory allocation in megabytes","example":1024},"storage_limit":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum storage allocation in megabytes","example":10000}},"required":["id","name","cpu_limit","memory_limit","storage_limit"],"additionalProperties":false},"description":"List of available database resource types"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/resources/process-resource-types":{"get":{"operationId":"listProcessResourceTypesV3","summary":"List process resource types","tags":["Resources"],"description":"Retrieve all available process resource types (machine sizes) that can be assigned to application processes. This is reference data and does not require specific resource permissions.","responses":{"200":{"description":"List of available process resource types","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the process resource type","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Name of the resource type (machine size)","example":"s1"},"cpu_limit":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum CPU allocation in millicores","example":1000},"memory_limit":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Maximum memory allocation in megabytes","example":1024},"category":{"type":"string","enum":["hobby","standard","cpuOptimized","memoryOptimized"],"description":"Resource type category. `hobby` - limited resources for development and testing. `standard` - balanced resources for production workloads. `cpuOptimized` - higher CPU allocation for compute-heavy workloads. `memoryOptimized` - higher memory allocation for memory-heavy workloads.","example":"standard"}},"required":["id","name","cpu_limit","memory_limit","category"],"additionalProperties":false},"description":"List of available process resource types"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/resources/rbac/api-key-permissions":{"get":{"operationId":"listApiKeyPermissionsV3","summary":"List API key permissions","tags":["Resources"],"description":"Retrieve all available API key permissions. Permissions define specific actions on specific resource types that can be granted to API keys. This is reference data and does not require specific resource permissions.","responses":{"200":{"description":"List of available API key permissions","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the permission","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Name of the permission","example":"app:read"},"description":{"type":"string","description":"Human-readable description of what this permission allows","example":"View applications"},"resource":{"type":"string","enum":["APP","PIPELINE","DATABASE","STATIC_SITE","LOAD_BALANCER","OBJECT_STORAGE","BILLING","COMPANY","PROJECT","WEBHOOK","API_KEY","REGISTRY_CREDENTIAL"],"description":"Resource type this permission applies to. `APP` - applications. `PIPELINE` - pipelines. `DATABASE` - databases. `STATIC_SITE` - static sites. `LOAD_BALANCER` - load balancers. `OBJECT_STORAGE` - object storage. `BILLING` - billing. `COMPANY` - company settings. `PROJECT` - projects. `WEBHOOK` - webhooks. `API_KEY` - API keys. `REGISTRY_CREDENTIAL` - Docker registry credentials.","example":"APP"},"action":{"type":"string","enum":["CREATE","READ","UPDATE","DELETE"],"description":"Action this permission allows on the resource. `CREATE` - create new resources. `READ` - view resources. `UPDATE` - modify resources. `DELETE` - remove resources.","example":"READ"}},"required":["id","name","description","resource","action"],"additionalProperties":false},"description":"List of available API key permissions"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/resources/rbac/api-key-roles":{"get":{"operationId":"listApiKeyRolesV3","summary":"List API key roles","tags":["Resources"],"description":"Retrieve all available API key roles. Roles are predefined permission sets that can be assigned to API keys. This is reference data and does not require specific resource permissions.","responses":{"200":{"description":"List of available API key roles","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the role","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Name of the role","example":"Developer"},"description":{"type":"string","description":"Human-readable description of what this role allows","example":"Can manage applications and databases"},"permissions":{"type":"array","items":{"type":"string"},"description":"List of permission IDs granted by this role","example":["fb5e5168-4281-4bec-94c5-0d1584e9e657"]}},"required":["id","name","description","permissions"],"additionalProperties":false},"description":"List of available API key roles"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites":{"get":{"operationId":"listStaticSitesV3","summary":"List static sites","tags":["Static sites"],"description":"Retrieve a paginated list of all static sites the authenticated API key has access to. Results can be paginated using the `limit` and `offset` query parameters.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the static site","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-static-site"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Static Site"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deploymentCancelled","deleting","deletionFailed"]},{"type":"null"}],"description":"Current status of the static site reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"}},"required":["id","name","display_name","status"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createStaticSiteV3","summary":"Create static site","tags":["Static sites"],"description":"Create a new static site from a Git repository. An initial deployment is triggered automatically after creation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":2,"maxLength":64,"description":"Human-readable name for the new static site. Must be between 2 and 64 characters.","example":"My Static Site"},"repo_url":{"type":"string","maxLength":2048,"description":"Full URL of the Git repository containing the static site source code","example":"https://github.com/user/static-site"},"default_branch":{"type":"string","minLength":1,"maxLength":255,"description":"Git branch used for deployments","example":"main"},"source":{"default":"privateGit","description":"Where the static site source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit","type":"string","enum":["privateGit","publicGit"]},"git_type":{"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Required for private git sources when the provider cannot be auto-detected.","example":"github","type":"string","enum":["github","bitbucket","gitlab"]},"auto_deploy":{"description":"Enable or disable automatic deployments on every push to the default branch","example":true,"type":"boolean"},"is_preview_enabled":{"description":"Enable or disable preview deployments for pull requests targeting the default branch","example":false,"type":"boolean"},"install_command":{"description":"Command used to install dependencies before building the static site","example":"npm install","type":"string","maxLength":1024},"build_command":{"description":"Command used to build the static site","example":"npm run build","type":"string","maxLength":1024},"published_directory":{"description":"Directory containing the built files to publish","example":"dist","type":"string","maxLength":500},"root_directory":{"description":"Root directory of the project within the repository","example":"/","type":"string","maxLength":500},"node_version":{"description":"Node.js version used to build the static site","example":"20","type":"string","maxLength":20},"index_file":{"description":"Custom index file served as the entry point for the static site","example":"index.html","type":"string","maxLength":255},"error_file":{"description":"Custom error page file served when a requested path is not found","example":"404.html","type":"string","maxLength":255},"project_id":{"description":"Identifier of the project to group this static site under. When omitted, the static site is not assigned to any project.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"allow_deploy_paths":{"description":"Glob patterns for file paths that trigger a deployment. When set, only commits touching these paths trigger auto deploy. Mutually exclusive with ignore_deploy_paths.","example":["src/**","package.json"],"type":"array","items":{"type":"string"}},"ignore_deploy_paths":{"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy. Mutually exclusive with allow_deploy_paths.","example":["docs/**","README.md"],"type":"array","items":{"type":"string"}}},"required":["display_name","repo_url","default_branch"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the static site","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this static site","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this static site is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-static-site"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Static Site"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deploymentCancelled","deleting","deletionFailed"]},{"type":"null"}],"description":"Current status of the static site reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"source":{"type":"string","enum":["privateGit","publicGit"],"description":"Where the static site source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit"},"repo_url":{"type":"string","description":"Full URL of the Git repository","example":"https://github.com/user/static-site"},"default_branch":{"type":"string","description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch","example":true},"is_preview_enabled":{"type":"boolean","description":"When enabled, preview deployments are created for pull requests targeting the default branch","example":false},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for public git sources.","example":"github"},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary hostname assigned to the static site","example":"my-site.sevalla.app"},"install_command":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Command used to install dependencies before building the static site","example":"npm install"},"build_command":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Command used to build the static site","example":"npm run build"},"published_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Directory containing the built files to publish","example":"dist"},"root_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Root directory of the project within the repository","example":"/"},"node_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Node.js version used to build the static site","example":"20"},"index_file":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom index file served as the entry point for the static site","example":"index.html"},"error_file":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom error page file served when a requested path is not found","example":"404.html"},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the static site was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the static site was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","status","source","repo_url","default_branch","auto_deploy","is_preview_enabled","git_lfs_enabled","git_type","hostname","install_command","build_command","published_directory","root_directory","node_version","index_file","error_file","allow_deploy_paths","ignore_deploy_paths","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}":{"get":{"operationId":"getStaticSiteV3","summary":"Get static site","tags":["Static sites"],"description":"Retrieve the full details of a static site including its source configuration, build settings, and current status.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the static site","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the company that owns this static site","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this static site is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in URLs and internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-static-site"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Static Site"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deploymentCancelled","deleting","deletionFailed"]},{"type":"null"}],"description":"Current status of the static site reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"},"source":{"type":"string","enum":["privateGit","publicGit"],"description":"Where the static site source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit"},"repo_url":{"type":"string","description":"Full URL of the Git repository","example":"https://github.com/user/static-site"},"default_branch":{"type":"string","description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch","example":true},"is_preview_enabled":{"type":"boolean","description":"When enabled, preview deployments are created for pull requests targeting the default branch","example":false},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for public git sources.","example":"github"},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary hostname assigned to the static site","example":"my-site.sevalla.app"},"install_command":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Command used to install dependencies before building the static site","example":"npm install"},"build_command":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Command used to build the static site","example":"npm run build"},"published_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Directory containing the built files to publish","example":"dist"},"root_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Root directory of the project within the repository","example":"/"},"node_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Node.js version used to build the static site","example":"20"},"index_file":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom index file served as the entry point for the static site","example":"index.html"},"error_file":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom error page file served when a requested path is not found","example":"404.html"},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the static site was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the static site was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","name","display_name","status","source","repo_url","default_branch","auto_deploy","is_preview_enabled","git_lfs_enabled","git_type","hostname","install_command","build_command","published_directory","root_directory","node_version","index_file","error_file","allow_deploy_paths","ignore_deploy_paths","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateStaticSiteV3","summary":"Update static site","tags":["Static sites"],"description":"Update one or more properties of an existing static site. Only include the fields you want to change - omitted fields are left unchanged. Changes to build settings take effect on the next deployment. When changing source or repo_url, the repository is validated against the Git provider.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"Human-readable name shown in the dashboard and API responses","example":"My Static Site","type":"string","minLength":1,"maxLength":64},"auto_deploy":{"description":"Enable or disable automatic deployments on every push to the default branch","example":true,"type":"boolean"},"default_branch":{"description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main","type":"string","minLength":1},"build_command":{"description":"Command used to build the static site","example":"npm run build","anyOf":[{"type":"string"},{"type":"null"}]},"node_version":{"description":"Node.js version used to build the static site","example":"20","anyOf":[{"type":"string"},{"type":"null"}]},"published_directory":{"description":"Directory containing the built files to publish","example":"dist","anyOf":[{"type":"string"},{"type":"null"}]},"is_preview_enabled":{"description":"Enable or disable preview deployments for pull requests targeting the default branch","example":false,"type":"boolean"},"git_lfs_enabled":{"description":"Enable or disable Git LFS during the source checkout step. Enabled by default. When enabled, LFS objects are fetched on every deployment. Disable to skip LFS downloads.","example":true,"type":"boolean"},"install_command":{"description":"Command used to install dependencies before building the static site","example":"npm install","anyOf":[{"type":"string"},{"type":"null"}]},"root_directory":{"description":"Root directory of the project within the repository","example":".","anyOf":[{"type":"string"},{"type":"null"}]},"index_file":{"description":"Custom index file served as the entry point for the static site","example":"index.html","type":"string","minLength":1},"error_file":{"description":"Custom error page file served when a requested path is not found","example":"404.html","anyOf":[{"type":"string"},{"type":"null"}]},"source":{"description":"Where the static site source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit","type":"string","enum":["privateGit","publicGit"]},"git_type":{"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for public git sources.","example":"github","anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}]},"repo_url":{"description":"Full URL of the Git repository","example":"https://github.com/user/static-site","type":"string","minLength":1},"allow_deploy_paths":{"description":"Glob patterns for file paths that trigger a deployment. When set, only commits touching these paths trigger auto deploy. Mutually exclusive with ignore_deploy_paths.","example":["src/**","package.json"],"type":"array","items":{"type":"string"}},"ignore_deploy_paths":{"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy. Mutually exclusive with allow_deploy_paths.","example":["docs/**","README.md"],"type":"array","items":{"type":"string"}}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the static site","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Static Site"},"auto_deploy":{"type":"boolean","description":"When enabled, a new deployment is automatically triggered on every push to the default branch","example":true},"default_branch":{"type":"string","description":"Git branch used for automatic and manual deployments when no branch is explicitly specified","example":"main"},"build_command":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Command used to build the static site","example":"npm run build"},"node_version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Node.js version used to build the static site","example":"20"},"published_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Directory containing the built files to publish","example":"dist"},"is_preview_enabled":{"type":"boolean","description":"When enabled, preview deployments are created for pull requests targeting the default branch","example":false},"git_lfs_enabled":{"type":"boolean","description":"When enabled, Git LFS objects are fetched during the source checkout step of a deployment. Enabled by default. Disable this to skip LFS downloads and speed up checkout when the repository contains LFS files that are not needed at build time.","example":true},"install_command":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Command used to install dependencies before building the static site","example":"npm install"},"root_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Root directory of the project within the repository","example":"/"},"index_file":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom index file served as the entry point for the static site","example":"index.html"},"error_file":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Custom error page file served when a requested path is not found","example":"404.html"},"allow_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths that trigger a deployment when changed. When set, only commits touching these paths will trigger auto deploy.","example":["src/**","package.json"]},"ignore_deploy_paths":{"type":"array","items":{"type":"string"},"description":"Glob patterns for file paths to exclude from deployment triggers. Commits that only touch ignored paths will not trigger auto deploy.","example":["docs/**","README.md"]},"source":{"type":"string","enum":["privateGit","publicGit"],"description":"Where the static site source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit"},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for public git sources.","example":"github"},"repo_url":{"type":"string","description":"Full URL of the Git repository","example":"https://github.com/user/static-site"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the static site was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"status":{"anyOf":[{"type":"string","enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deploymentCancelled","deleting","deletionFailed"]},{"type":"null"}],"description":"Current status of the static site reflecting the most recent deployment or lifecycle operation","example":"deploymentSuccess"}},"required":["id","display_name","auto_deploy","default_branch","build_command","node_version","published_directory","is_preview_enabled","git_lfs_enabled","install_command","root_directory","index_file","error_file","allow_deploy_paths","ignore_deploy_paths","source","git_type","repo_url","updated_at","status"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Conflict"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":409},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteStaticSiteV3","summary":"Delete static site","tags":["Static sites"],"description":"Permanently delete a static site and all of its associated resources including deployments and custom domains. This operation is irreversible.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Static site is being deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Conflict"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":409},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/domains":{"get":{"operationId":"listStaticSiteDomainsV3","summary":"List static site domains","tags":["Static sites"],"description":"Retrieve a paginated list of all domains (both system and custom) associated with a static site. System domains are assigned automatically, while custom domains are added by users.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"addStaticSiteDomainV3","summary":"Add static site domain","tags":["Static sites"],"description":"Add a custom domain to a static site. After adding, configure your DNS records as indicated in the response to complete domain verification. The domain status will transition from `verification` to `pointing` to `active` as DNS propagates.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain_name":{"type":"string","minLength":1,"description":"The custom domain name to add to the static site","example":"site.example.com"},"is_wildcard":{"description":"Whether this should be a wildcard domain that matches all subdomains","example":false,"type":"boolean"},"custom_ssl_cert":{"description":"Custom SSL certificate in PEM format. When provided, the platform uses this certificate instead of auto-provisioning one.","example":"-----BEGIN CERTIFICATE-----...","type":"string"},"custom_ssl_key":{"description":"Private key for the custom SSL certificate in PEM format. Required when custom_ssl_cert is provided.","example":"-----BEGIN PRIVATE KEY-----...","type":"string"}},"required":["domain_name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/domains/{domain_id}":{"get":{"operationId":"getStaticSiteDomainV3","summary":"Get static site domain","tags":["Static sites"],"description":"Retrieve the details of a specific domain associated with a static site, including its verification status, DNS records, and configuration.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteStaticSiteDomainV3","summary":"Delete static site domain","tags":["Static sites"],"description":"Remove a custom domain from a static site. System domains cannot be deleted - use the toggle endpoint to disable them instead. This action cannot be undone.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateStaticSiteDomainV3","summary":"Update static site system domain","tags":["Static sites"],"description":"Update the subdomain name of a system domain. Only applies to system domains - use the add/delete endpoints to manage custom domains.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"New subdomain name for the system domain","example":"my-site"}},"required":["name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/domains/{domain_id}/refresh-status":{"post":{"operationId":"refreshStaticSiteDomainStatusV3","summary":"Refresh static site domain status","tags":["Static sites"],"description":"Trigger a re-check of the domain verification and DNS pointing status. Use this after updating your DNS records to speed up the verification process.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain status refresh initiated"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/domains/{domain_id}/set-primary":{"post":{"operationId":"setStaticSitePrimaryDomainV3","summary":"Set primary static site domain","tags":["Static sites"],"description":"Set a domain as the primary domain for the static site. The primary domain is used for canonical URLs and redirects. Only one domain can be primary at a time - the previously primary domain is automatically demoted.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain set as primary"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/domains/{domain_id}/toggle":{"post":{"operationId":"toggleStaticSiteSystemDomainV3","summary":"Toggle static site system domain","tags":["Static sites"],"description":"Enable or disable a system domain for the static site. When disabled, the system domain stops serving traffic. Only applies to system domains - custom domains cannot be toggled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"System domain toggled"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/access-logs":{"get":{"operationId":"getStaticSiteAccessLogsV3","summary":"Get static site access logs","tags":["Static sites"],"description":"Retrieve HTTP access logs for a static site. These are logs of incoming requests served by the static site. Use the `filters` parameter for advanced filtering by severity, message content, tags, or attributes.","parameters":[{"schema":{"example":"2026-02-22T14:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"Start of the time range in ISO 8601 format. Defaults to 1 hour ago if not provided."},{"schema":{"example":"2026-02-22T15:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"End of the time range in ISO 8601 format. Defaults to now if not provided."},{"schema":{"example":"[{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced log filtering. Each filter has a `key`, `operator`, and `value` or `values` field. Example: [{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]"},{"schema":{"default":1000,"example":1000,"type":"integer","minimum":1,"maximum":5000},"in":"query","name":"limit","required":false,"description":"Maximum number of log entries to return (1-5000)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the log entry","example":"abc123"},"message":{"type":"string","description":"Log message content","example":"Server started on port 3000"},"service":{"type":"string","description":"Service that produced the log entry, such as APP_RUNTIME, APP_ACCESS, APP_DEPLOYMENT, SS_DEPLOYMENT, or SS_ACCESS","example":"APP_RUNTIME"},"severity":{"type":"string","description":"Log severity level such as INFO, WARN, ERROR, or DEBUG","example":"INFO"},"timestamp":{"type":"string","description":"Formatted timestamp of the log entry","example":"2026-02-22 15:30:00.000"},"tags":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Key-value pairs of tags associated with the log entry, such as container name or resource ID","example":{"idApp":"fb5e5168-4281-4bec-94c5-0d1584e9e657","container":"web"}},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Additional structured attributes attached to the log entry","example":{}},"unix_timestamp":{"type":"number","description":"Unix timestamp of the log entry in microseconds","example":1740236400000000}},"required":["id","message","service","severity","timestamp","tags","attributes","unix_timestamp"],"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/deployments":{"get":{"operationId":"listStaticSiteDeploymentsV3","summary":"List static site deployments","tags":["Static sites"],"description":"Retrieve a paginated list of all deployments for a static site, ordered by most recent first. Each deployment includes its status, source details, and timestamps.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"static_site_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the static site this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment. `waiting` - queued for processing. `inProgress` - build or publish is running. `success` - deployed successfully. `failed` - deployment failed. `cancelled` - cancelled before completion. `skipped` - skipped because no changes were detected.","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was triggered. `manual` - triggered via API or dashboard. `automatic` - triggered by a Git push.","example":"manual"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment","example":"https://github.com/user/static-site"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch deployed","example":"main"},"is_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this is a preview deployment for a pull request","example":false},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git username of the commit author","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the commit author","example":"https://avatars.githubusercontent.com/u/1234"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA of the deployed commit","example":"abc123def456"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed commit","example":"Update landing page"},"cloud_build_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the cloud build job for this deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"build_error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Error message from the build step if the deployment failed","example":"Build failed: exit code 1"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started building, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","static_site_id","status","type","repo_url","branch","is_preview","author_login","author_img","commit_sha","commit_message","cloud_build_id","build_error","created_at","updated_at","finished_at","started_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"deployStaticSiteV3","summary":"Deploy static site","tags":["Static sites"],"description":"Trigger a new deployment for a static site. By default, deploys the latest commit on the default branch. You can optionally specify a different branch or roll back to a previous deployment by providing a deployment_id. The deployment runs asynchronously - use the list deployments endpoint to track progress.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"branch":{"description":"Git branch to deploy. When omitted, the static site default branch is used.","type":"string"},"deployment_id":{"description":"Identifier of a previous deployment to roll back to. When provided, the branch field is ignored.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"static_site_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the static site this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment. `waiting` - queued for processing. `inProgress` - build or publish is running. `success` - deployed successfully. `failed` - deployment failed. `cancelled` - cancelled before completion. `skipped` - skipped because no changes were detected.","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was triggered. `manual` - triggered via API or dashboard. `automatic` - triggered by a Git push.","example":"manual"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment","example":"https://github.com/user/static-site"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch deployed","example":"main"},"is_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this is a preview deployment for a pull request","example":false},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git username of the commit author","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the commit author","example":"https://avatars.githubusercontent.com/u/1234"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA of the deployed commit","example":"abc123def456"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed commit","example":"Update landing page"},"cloud_build_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the cloud build job for this deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"build_error":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Error message from the build step if the deployment failed","example":"Build failed: exit code 1"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started building, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","static_site_id","status","type","repo_url","branch","is_preview","author_login","author_img","commit_sha","commit_message","cloud_build_id","build_error","created_at","updated_at","finished_at","started_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/deployments/{deployment_id}":{"get":{"operationId":"getStaticSiteDeploymentV3","summary":"Get static site deployment","tags":["Static sites"],"description":"Retrieve details of a specific deployment for a static site, including its status, source details, and timestamps.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"deployment_id","required":true,"description":"Deployment identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the deployment","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"static_site_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the static site this deployment belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"anyOf":[{"type":"string","enum":["waiting","inProgress","success","failed","cancelled","skipped"]},{"type":"null"}],"description":"Current status of the deployment. `waiting` - queued for processing. `inProgress` - build or publish is running. `success` - deployed successfully. `failed` - deployment failed. `cancelled` - cancelled before completion. `skipped` - skipped because no changes were detected.","example":"success"},"type":{"anyOf":[{"type":"string","enum":["manual","automatic"]},{"type":"null"}],"description":"How the deployment was triggered. `manual` - triggered via API or dashboard. `automatic` - triggered by a Git push.","example":"manual"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository used for this deployment","example":"https://github.com/user/static-site"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch deployed","example":"main"},"is_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this is a preview deployment for a pull request","example":false},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git username of the commit author","example":"octocat"},"author_img":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Avatar URL of the commit author","example":"https://avatars.githubusercontent.com/u/1234"},"commit_sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full SHA of the deployed commit","example":"abc123def456"},"commit_message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message of the deployed commit","example":"Update landing page"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the deployment was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"finished_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment finished, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"started_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the deployment started building, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","static_site_id","status","type","repo_url","branch","is_preview","author_login","author_img","commit_sha","commit_message","created_at","updated_at","finished_at","started_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/deployments/{deployment_id}/cancel":{"post":{"operationId":"cancelStaticSiteDeploymentV3","summary":"Cancel static site deployment","tags":["Static sites"],"description":"Cancel a deployment that is currently in progress or waiting. Deployments in the `waiting` status are skipped immediately, while `inProgress` deployments are stopped mid-execution. Completed or already cancelled deployments cannot be cancelled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"deployment_id","required":true,"description":"Deployment identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Cancellation result message","example":"Deployment is being cancelled"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/deployments/{deployment_id}/logs":{"get":{"operationId":"getStaticSiteDeploymentLogsV3","summary":"Get static site deployment logs","tags":["Static sites"],"description":"Retrieve build and deployment logs for a specific static site deployment. These include output from the build process and publish steps. Use the `filters` parameter for advanced filtering by severity, message content, tags, or attributes.","parameters":[{"schema":{"example":"2026-02-22T14:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"Start of the time range in ISO 8601 format. Defaults to 1 hour ago if not provided."},{"schema":{"example":"2026-02-22T15:30:00.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"End of the time range in ISO 8601 format. Defaults to now if not provided."},{"schema":{"example":"[{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced log filtering. Each filter has a `key`, `operator`, and `value` or `values` field. Example: [{\"key\":\"severity\",\"operator\":\"EQUALS\",\"value\":\"ERROR\"}]"},{"schema":{"default":1000,"example":1000,"type":"integer","minimum":1,"maximum":5000},"in":"query","name":"limit","required":false,"description":"Maximum number of log entries to return (1-5000)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"deployment_id","required":true,"description":"Deployment identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the log entry","example":"abc123"},"message":{"type":"string","description":"Log message content","example":"Server started on port 3000"},"service":{"type":"string","description":"Service that produced the log entry, such as APP_RUNTIME, APP_ACCESS, APP_DEPLOYMENT, SS_DEPLOYMENT, or SS_ACCESS","example":"APP_RUNTIME"},"severity":{"type":"string","description":"Log severity level such as INFO, WARN, ERROR, or DEBUG","example":"INFO"},"timestamp":{"type":"string","description":"Formatted timestamp of the log entry","example":"2026-02-22 15:30:00.000"},"tags":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Key-value pairs of tags associated with the log entry, such as container name or resource ID","example":{"idApp":"fb5e5168-4281-4bec-94c5-0d1584e9e657","container":"web"}},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Additional structured attributes attached to the log entry","example":{}},"unix_timestamp":{"type":"number","description":"Unix timestamp of the log entry in microseconds","example":1740236400000000}},"required":["id","message","service","severity","timestamp","tags","attributes","unix_timestamp"],"additionalProperties":false}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/purge-cache":{"post":{"operationId":"purgeStaticSiteCacheV3","summary":"Purge edge cache","tags":["Static sites"],"description":"Purge the edge cache for a static site, removing all cached content. Use this when you need cached resources to be refreshed immediately without waiting for the cache TTL to expire.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Cache purged successfully"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/pretty-url/toggle":{"post":{"operationId":"toggleStaticSitePrettyUrlV3","summary":"Toggle pretty URLs","tags":["Static sites"],"description":"Toggle pretty URL redirects for a static site. When enabled, URLs like `/about` will serve `/about/index.html` or `/about.html` without showing the file extension.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_turned_on":{"type":"boolean","description":"Whether pretty URLs are currently enabled for this static site","example":true}},"required":["is_turned_on"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/rate-limit":{"get":{"operationId":"getStaticSiteRateLimitV3","summary":"Get rate limit","tags":["Static sites"],"description":"Retrieve the current rate limiting configuration for a static site. Rate limiting restricts each client IP to 100 requests per minute per hostname and applies the configured action when the limit is exceeded. If rate limiting has never been configured, returns the default state: disabled with the `challenge` action.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting is currently active","example":false},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action applied when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"put":{"operationId":"updateStaticSiteRateLimitV3","summary":"Update rate limit","tags":["Static sites"],"description":"Update the rate limiting configuration for a static site. Rate limiting restricts each client IP to 100 requests per minute per hostname across the static site domains. When a client exceeds the limit, the configured action is applied: `challenge` requires the visitor to pass a managed challenge for 5 minutes, `throttle` blocks requests only while the rate stays above the limit, and `ban` blocks the client IP for 5 minutes. Changes are synced to the edge network as part of the request. Returns the updated rate limit state.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting should be active","example":true},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action to apply when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting is currently active","example":true},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action applied when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/requests-per-minute":{"get":{"operationId":"getStaticSiteRequestsPerMinuteV3","summary":"Get static site requests per minute","tags":["Static sites"],"description":"Retrieve a time series of requests per minute for a static site. Returns data points at the specified interval, useful for monitoring traffic patterns and detecting spikes.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/response-time":{"get":{"operationId":"getStaticSiteResponseTimeV3","summary":"Get static site response time","tags":["Static sites"],"description":"Retrieve a time series of response times for a static site. Use the optional `percent` parameter to get a specific percentile (e.g., p95 or p99) instead of the default.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"example":95,"type":"integer","minimum":1,"maximum":99},"in":"query","name":"percent","required":false,"description":"Percentile value for response time calculation (1-99). For example, 95 returns the p95 response time"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"number","description":"Metric value at this timestamp","example":42}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/response-time-avg":{"get":{"operationId":"getStaticSiteResponseTimeAvgV3","summary":"Get static site average response time","tags":["Static sites"],"description":"Retrieve the average response time in milliseconds for a static site over the specified time range. Returns a single aggregated value rather than a time series.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"average_response_time_ms":{"type":"number","minimum":0,"description":"Average response time in milliseconds","example":123.45}},"required":["average_response_time_ms"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/status-codes":{"get":{"operationId":"getStaticSiteStatusCodesV3","summary":"Get static site status code breakdown","tags":["Static sites"],"description":"Retrieve a time series showing the breakdown of HTTP response status codes for a static site. Each data point includes a map of status codes to their request counts.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","description":"Timestamp of the data point","example":"2026-02-22T14:30:00.000Z"},"value":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"},"description":"Breakdown of request counts by HTTP status code","example":{"200":150,"404":12,"500":3}}},"required":["time","value"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/top-status-codes":{"get":{"operationId":"getStaticSiteTopStatusCodesV3","summary":"Get static site top status codes","tags":["Static sites"],"description":"Retrieve the most common HTTP response status codes for a static site, ranked by total request count. Useful for identifying error rates and common response patterns.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","description":"HTTP status code","example":"200"},"total":{"type":"number","minimum":0,"description":"Total number of requests with this status code","example":1500}},"required":["status","total"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/top-countries":{"get":{"operationId":"getStaticSiteTopCountriesV3","summary":"Get static site top countries","tags":["Static sites"],"description":"Retrieve the countries generating the most traffic to a static site, ranked by total request count. Each entry includes the country code, average response time, and total requests.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter country code (ISO 3166-1 alpha-2)","example":"US"},"response_time":{"type":"number","minimum":0,"description":"Average response time in milliseconds for requests from this country","example":85.2},"total":{"type":"number","minimum":0,"description":"Total number of requests from this country","example":5000}},"required":["country","response_time","total"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/slowest-requests":{"get":{"operationId":"getStaticSiteSlowestRequestsV3","summary":"Get static site slowest requests","tags":["Static sites"],"description":"Retrieve the slowest request paths for a static site, ranked by average response time. Each entry includes the HTTP method, path, average response time, and total request count.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this request group","example":"abc123"},"client_request_method":{"type":"string","description":"HTTP method of the request","example":"GET"},"client_request_path":{"type":"string","description":"URL path of the request","example":"/api/users"},"average_response_time_ms":{"type":"number","minimum":0,"description":"Average response time in milliseconds","example":1250.5},"count_of_requests":{"type":"number","minimum":0,"description":"Number of requests matching this method and path","example":342}},"required":["id","client_request_method","client_request_path","average_response_time_ms","count_of_requests"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/metrics/top-pages":{"get":{"operationId":"getStaticSiteTopPagesV3","summary":"Get static site top pages","tags":["Static sites"],"description":"Retrieve the most visited pages for a static site, ranked by total request count. Useful for understanding which pages receive the most traffic.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T14:30:00.000Z"},"in":"query","name":"from","required":true,"description":"Start of the time range in ISO 8601 format"},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-02-22T15:30:00.000Z"},"in":"query","name":"to","required":true,"description":"End of the time range in ISO 8601 format"},{"schema":{"example":60,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"interval_in_seconds","required":false,"description":"Aggregation interval in seconds. Determines the granularity of time-series data points"},{"schema":{"example":"[{\"key\":\"path\",\"operator\":\"EQUALS\",\"value\":\"/api/users\"}]","type":"string"},"in":"query","name":"filters","required":false,"description":"JSON-encoded array of filter objects for advanced filtering. Each filter has a `key`, `operator`, and `value` or `values` field"},{"schema":{"default":10,"example":10,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items to return (1-100)"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"page":{"type":"string","description":"URL path","example":"/api/users"},"total":{"type":"number","minimum":0,"description":"Total number of requests to this page","example":2500}},"required":["page","total"],"additionalProperties":false}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/env-vars":{"get":{"operationId":"listStaticSiteEnvVarsV3","summary":"List static site environment variables","tags":["Static sites"],"description":"Retrieve a paginated list of all environment variables for a static site. Values are returned decrypted.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"static_site_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the static site this environment variable belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable","example":"API_KEY"},"value":{"type":"string","maxLength":32768,"description":"Decrypted value of the environment variable","example":"my-secret-value"},"is_production":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is used in production deployments","example":true},"is_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is used in preview deployments","example":false},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch this variable is scoped to, or null for all branches","example":"main"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","static_site_id","key","value","is_production","is_preview","branch","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createStaticSiteEnvVarV3","summary":"Create static site environment variable","tags":["Static sites"],"description":"Create a new environment variable for a static site. The value is encrypted before storage. A deployment is required for the new variable to take effect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable. Must be unique within the static site scope.","example":"API_BASE_URL"},"value":{"type":"string","maxLength":32768,"description":"Value of the environment variable. Will be stored encrypted at rest.","example":"https://api.example.com"},"is_production":{"description":"Whether this variable is used in production deployments. Defaults to true.","example":true,"type":"boolean"},"is_preview":{"description":"Whether this variable is used in preview deployments. Defaults to true.","example":true,"type":"boolean"},"branch":{"description":"Git branch this variable is scoped to. When omitted, the variable applies to all branches.","example":"main","type":"string"}},"required":["key","value"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"static_site_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the static site this environment variable belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable","example":"API_KEY"},"value":{"type":"string","maxLength":32768,"description":"Decrypted value of the environment variable","example":"my-secret-value"},"is_production":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is used in production deployments","example":true},"is_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is used in preview deployments","example":false},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch this variable is scoped to, or null for all branches","example":"main"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","static_site_id","key","value","is_production","is_preview","branch","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/env-vars/{env_var_id}":{"put":{"operationId":"updateStaticSiteEnvVarV3","summary":"Update static site environment variable","tags":["Static sites"],"description":"Update an existing environment variable for a static site. You can change the key, value, or scope flags. A deployment is required for changes to take effect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"description":"New name for the environment variable","example":"API_BASE_URL","type":"string","minLength":1,"maxLength":255},"value":{"description":"New value for the environment variable. Will be stored encrypted at rest.","example":"https://api.example.com","type":"string","maxLength":32768},"is_production":{"description":"Whether this variable is used in production deployments","example":true,"type":"boolean"},"is_preview":{"description":"Whether this variable is used in preview deployments","example":true,"type":"boolean"},"branch":{"description":"Git branch this variable is scoped to, or null for all branches","example":"main","anyOf":[{"type":"string"},{"type":"null"}]}}}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"env_var_id","required":true,"description":"Environment variable identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the environment variable","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"static_site_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the static site this environment variable belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"key":{"type":"string","minLength":1,"maxLength":255,"description":"Name of the environment variable","example":"API_KEY"},"value":{"type":"string","maxLength":32768,"description":"Decrypted value of the environment variable","example":"my-secret-value"},"is_production":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is used in production deployments","example":true},"is_preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether this variable is used in preview deployments","example":false},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Git branch this variable is scoped to, or null for all branches","example":"main"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the environment variable was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","static_site_id","key","value","is_production","is_preview","branch","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteStaticSiteEnvVarV3","summary":"Delete static site environment variable","tags":["Static sites"],"description":"Delete an environment variable from a static site. A deployment is required for the removal to take effect.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"env_var_id","required":true,"description":"Environment variable identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Deletion result message","example":"Environment variable deleted"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/repository":{"get":{"operationId":"getStaticSiteRepositoryV3","summary":"Get static site repository","tags":["Static sites"],"description":"Retrieve metadata about the Git repository connected to a static site: the source type, Git provider, repository URL, default branch, and the commit currently deployed (from the latest successful deployment). Call this first to discover the deployed commit SHA, then pass it as the `ref` to the tree and contents endpoints to inspect exactly the code that is deployed. Static sites always have a `privateGit` or `publicGit` source; the 422 response only occurs if the repository URL is missing.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["privateGit","publicGit"],"description":"Where the static site source code comes from. `privateGit` - private Git repository connected via OAuth. `publicGit` - public Git repository URL.","example":"privateGit"},"git_type":{"anyOf":[{"type":"string","enum":["github","bitbucket","gitlab"]},{"type":"null"}],"description":"Git hosting provider for the repository. `github` - GitHub. `bitbucket` - Bitbucket. `gitlab` - GitLab. Null for public git sources.","example":"github"},"repo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full URL of the Git repository","example":"https://github.com/acme/my-site"},"default_branch":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Default branch configured for deployments","example":"main"},"deployed_commit":{"anyOf":[{"type":"object","properties":{"sha":{"type":"string","description":"Commit SHA currently deployed, taken from the latest successful deployment","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit message","example":"Fix homepage layout"},"author_login":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Commit author login","example":"octocat"}},"required":["sha","message","author_login"],"additionalProperties":false},{"type":"null"}],"description":"The commit currently deployed from the static site's current repository. Null if the static site has never deployed successfully, or if its repository was changed after the last successful deployment (the deployed commit belongs to the old repo and no longer applies)."}},"required":["source","git_type","repo_url","default_branch","deployed_commit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/repository/tree":{"get":{"operationId":"listStaticSiteRepositoryTreeV3","summary":"List static site repository tree","tags":["Static sites"],"description":"List files and directories in the static site Git repository at a given ref. Use this to discover the repository structure before reading individual files. Defaults to reading the commit of the latest successful deployment so you see exactly the code that is deployed. Static sites always have a `privateGit` or `publicGit` source; the 422 response only occurs if the repository URL is missing.","parameters":[{"schema":{"example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0","type":"string"},"in":"query","name":"ref","required":false,"description":"Branch, tag, or commit SHA to read the tree at. Defaults to the commit of the latest successful deployment, falling back to the default branch when there is no such deployment or the static site's repository was changed after it (so the deployed commit no longer exists in the current repo). Pass the deployed commit SHA to inspect exactly the code that is deployed."},{"schema":{"example":"src","type":"string"},"in":"query","name":"path","required":false,"description":"Directory path relative to the repository root. Defaults to the root."},{"schema":{"example":false,"type":"string"},"in":"query","name":"recursive","required":false,"description":"When true, returns the full tree under `path` recursively in a single response. When false (default), returns only the immediate children. Large trees may be truncated."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ref the tree was read at (the resolved commit SHA or branch)","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"},"entries":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Path of the entry relative to the repository root","example":"src/index.ts"},"type":{"type":"string","enum":["file","dir"],"description":"Entry type. `file` - a file (blob). `dir` - a directory (tree).","example":"file"},"size":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"File size in bytes. Null for directories.","example":1024},"sha":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Object SHA of the entry, when available","example":"b1c2d3e4"}},"required":["path","type","size","sha"],"additionalProperties":false},"description":"Tree entries at the requested path"}},"required":["ref","entries"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/repository/contents":{"get":{"operationId":"getStaticSiteRepositoryFileV3","summary":"Read static site repository file","tags":["Static sites"],"description":"Read the contents of a single file from the static site Git repository at a given ref. Defaults to the commit of the latest successful deployment so you read exactly the code that is deployed. Binary files and files larger than 1 MB return metadata only with a null `content` (check `is_binary` and `truncated`). Returns 404 when the file does not exist at the ref. Static sites always have a `privateGit` or `publicGit` source; the 422 response only occurs if the repository URL is missing.","parameters":[{"schema":{"type":"string","minLength":1,"example":"src/index.ts"},"in":"query","name":"path","required":true,"description":"Path of the file to read, relative to the repository root."},{"schema":{"example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0","type":"string"},"in":"query","name":"ref","required":false,"description":"Branch, tag, or commit SHA to read the file at. Defaults to the commit of the latest successful deployment, falling back to the default branch when there is no such deployment or the static site's repository was changed after it (so the deployed commit no longer exists in the current repo)."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string","description":"Path of the file relative to the repository root","example":"src/index.ts"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ref the file was read at (the resolved commit SHA or branch)","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UTF-8 file content. Null when the file is binary or exceeds the 1 MB size limit.","example":"export const main = () => console.log('hello')"},"size":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"File size in bytes","example":1024},"is_binary":{"type":"boolean","description":"Whether the file was detected as binary. Binary files do not return content.","example":false},"truncated":{"type":"boolean","description":"Whether content was omitted because the file exceeds the 1 MB size limit","example":false}},"required":["path","ref","content","size","is_binary","truncated"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/static-sites/{id}/repository/search":{"get":{"operationId":"searchStaticSiteRepositoryV3","summary":"Search static site repository code","tags":["Static sites"],"description":"Search the static site Git repository for code matching a query, useful for locating where something is defined or used. Search runs against the provider index, which covers the default branch, so it does not accept a ref. Result quality varies by provider: it is strongest on GitHub and more limited on GitLab and Bitbucket. Static sites always have a `privateGit` or `publicGit` source; the 422 response only occurs if the repository URL is missing.","parameters":[{"schema":{"type":"string","minLength":1,"example":"createServer"},"in":"query","name":"query","required":true,"description":"Code search query. Searches file contents in the repository."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Static site identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"matches":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Path of the file containing the match","example":"src/server.ts"},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ref the match was found on, when reported by the provider","example":"main"},"line":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Line number of the match, when available","example":12},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A short snippet of the matching line, when available","example":"const createServer = () => {}"}},"required":["path","ref","line","preview"],"additionalProperties":false},"description":"Matching code locations"}},"required":["matches"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unprocessable entity"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":422},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/usage-alerts":{"get":{"operationId":"listUsageAlertConfigsV3","summary":"List usage alert configs","tags":["Usage Alerts"],"description":"Retrieve all usage alert configs for the company, including the company-wide config and any project-scoped configs. Pass project_id to filter to a single project.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"query","name":"project_id","required":false,"description":"Filter to the config scoped to a specific project. Omit to list all configs for the company."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the usage alert config","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","minLength":1,"description":"Identifier of the company this config belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this config is scoped to. When null, the config applies to total company spend across all projects.","example":null},"limit_usd":{"type":"number","minimum":0.01,"description":"Spending limit in USD that triggers fire as percentages of. Must be greater than zero.","example":100},"emails":{"minItems":1,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":"Email recipients notified when a trigger fires","example":["billing@example.com"]},"triggers":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the trigger","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"percentage":{"type":"integer","minimum":1,"maximum":100,"description":"Threshold expressed as a percentage of the spending limit. Fires once per billing period.","example":80},"last_fired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when this trigger last fired, in ISO 8601 format. Null if it has not fired yet.","example":null}},"required":["id","percentage","last_fired_at"],"additionalProperties":false,"description":"A threshold percentage that fires a notification when reached"},"description":"Threshold percentages of the limit. The highest matching trigger fires once per billing period. Up to 10 triggers per config."},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","limit_usd","emails","triggers","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createUsageAlertConfigV3","summary":"Create usage alert config","tags":["Usage Alerts"],"description":"Create a usage alert config for the company or for a specific project. Each company can have one company-wide config plus one config per project. Configs are evaluated hourly against the current billing period. The highest matching trigger fires once per period and notifies the listed emails.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Project to scope the config to. Omit or pass null to create a company-wide config that tracks total spend across all projects.","example":null,"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"limit_usd":{"type":"number","minimum":0.01,"description":"Spending limit in USD. Triggers fire as percentages of this value.","example":100},"emails":{"minItems":1,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":"Email recipients notified when a trigger fires","example":["billing@example.com"]},"triggers":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"percentage":{"type":"integer","minimum":1,"maximum":100,"description":"Threshold expressed as a percentage of the spending limit","example":80}},"required":["percentage"]},"description":"Threshold percentages of the limit. Up to 10 triggers per config.","example":[{"percentage":50},{"percentage":80},{"percentage":100}]}},"required":["limit_usd","emails","triggers"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the usage alert config","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","minLength":1,"description":"Identifier of the company this config belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this config is scoped to. When null, the config applies to total company spend across all projects.","example":null},"limit_usd":{"type":"number","minimum":0.01,"description":"Spending limit in USD that triggers fire as percentages of. Must be greater than zero.","example":100},"emails":{"minItems":1,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":"Email recipients notified when a trigger fires","example":["billing@example.com"]},"triggers":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the trigger","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"percentage":{"type":"integer","minimum":1,"maximum":100,"description":"Threshold expressed as a percentage of the spending limit. Fires once per billing period.","example":80},"last_fired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when this trigger last fired, in ISO 8601 format. Null if it has not fired yet.","example":null}},"required":["id","percentage","last_fired_at"],"additionalProperties":false,"description":"A threshold percentage that fires a notification when reached"},"description":"Threshold percentages of the limit. The highest matching trigger fires once per billing period. Up to 10 triggers per config."},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","limit_usd","emails","triggers","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/usage-alerts/{id}":{"get":{"operationId":"getUsageAlertConfigV3","summary":"Get usage alert config","tags":["Usage Alerts"],"description":"Retrieve a single usage alert config by its identifier, including its trigger thresholds.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Usage alert config identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the usage alert config","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","minLength":1,"description":"Identifier of the company this config belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this config is scoped to. When null, the config applies to total company spend across all projects.","example":null},"limit_usd":{"type":"number","minimum":0.01,"description":"Spending limit in USD that triggers fire as percentages of. Must be greater than zero.","example":100},"emails":{"minItems":1,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":"Email recipients notified when a trigger fires","example":["billing@example.com"]},"triggers":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the trigger","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"percentage":{"type":"integer","minimum":1,"maximum":100,"description":"Threshold expressed as a percentage of the spending limit. Fires once per billing period.","example":80},"last_fired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when this trigger last fired, in ISO 8601 format. Null if it has not fired yet.","example":null}},"required":["id","percentage","last_fired_at"],"additionalProperties":false,"description":"A threshold percentage that fires a notification when reached"},"description":"Threshold percentages of the limit. The highest matching trigger fires once per billing period. Up to 10 triggers per config."},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","limit_usd","emails","triggers","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateUsageAlertConfigV3","summary":"Update usage alert config","tags":["Usage Alerts"],"description":"Update one or more properties of an existing usage alert config. Only the provided fields are changed. The project scope is fixed at creation and cannot be changed - delete the config and create a new one to move it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit_usd":{"description":"Spending limit in USD. Triggers fire as percentages of this value.","example":200,"type":"number","minimum":0.01},"emails":{"description":"Email recipients notified when a trigger fires","example":["billing@example.com"],"minItems":1,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"triggers":{"description":"Replaces all triggers on the config when provided. Existing trigger fired-state is reset because triggers are recreated.","example":[{"percentage":50},{"percentage":80},{"percentage":100}],"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"percentage":{"type":"integer","minimum":1,"maximum":100,"description":"Threshold expressed as a percentage of the spending limit","example":80}},"required":["percentage"]}}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Usage alert config identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the usage alert config","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","minLength":1,"description":"Identifier of the company this config belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this config is scoped to. When null, the config applies to total company spend across all projects.","example":null},"limit_usd":{"type":"number","minimum":0.01,"description":"Spending limit in USD that triggers fire as percentages of. Must be greater than zero.","example":100},"emails":{"minItems":1,"type":"array","items":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"description":"Email recipients notified when a trigger fires","example":["billing@example.com"]},"triggers":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the trigger","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"percentage":{"type":"integer","minimum":1,"maximum":100,"description":"Threshold expressed as a percentage of the spending limit. Fires once per billing period.","example":80},"last_fired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when this trigger last fired, in ISO 8601 format. Null if it has not fired yet.","example":null}},"required":["id","percentage","last_fired_at"],"additionalProperties":false,"description":"A threshold percentage that fires a notification when reached"},"description":"Threshold percentages of the limit. The highest matching trigger fires once per billing period. Up to 10 triggers per config."},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the config was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","limit_usd","emails","triggers","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteUsageAlertConfigV3","summary":"Delete usage alert config","tags":["Usage Alerts"],"description":"Permanently delete a usage alert config. The cron will stop evaluating it immediately. This action cannot be undone.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Usage alert config identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Usage alert config deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/webhooks":{"get":{"operationId":"listWebhooksV3","summary":"List webhooks","tags":["Webhooks"],"description":"Retrieve a paginated list of all webhooks configured for the company. Each company can have up to 10 webhooks. Webhooks receive HTTP POST notifications when subscribed events occur.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"is_enabled":{"type":"boolean","description":"Whether the webhook is currently active and receiving events","example":true},"allowed_events":{"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"secret":{"type":"string","description":"Webhook signing secret used to verify event payloads. Prefixed with whsec_.","example":"whsec_abc123..."},"old_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous signing secret, available temporarily after rolling the secret to allow graceful migration","example":null},"old_secret_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the old secret expires, in ISO 8601 format. Null if no old secret exists.","example":null},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events are delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional human-readable description for the webhook","example":"Production deploy notifications"},"created_by":{"type":"string","description":"Identifier of the API key that created the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the API key that last updated the webhook","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","is_enabled","allowed_events","secret","old_secret","old_secret_expired_at","endpoint","description","created_by","updated_by","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createWebhookV3","summary":"Create webhook","tags":["Webhooks"],"description":"Create a new webhook for the company. The webhook will start receiving events for the specified event types as soon as it is created. Each company can have up to 10 webhooks. A signing secret is automatically generated and included in the response.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allowed_events":{"minItems":1,"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events will be delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"description":"Optional human-readable description for the webhook","example":"Production deploy notifications","type":"string","maxLength":255}},"required":["allowed_events","endpoint"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"is_enabled":{"type":"boolean","description":"Whether the webhook is currently active and receiving events","example":true},"allowed_events":{"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"secret":{"type":"string","description":"Webhook signing secret used to verify event payloads. Prefixed with whsec_.","example":"whsec_abc123..."},"old_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous signing secret, available temporarily after rolling the secret to allow graceful migration","example":null},"old_secret_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the old secret expires, in ISO 8601 format. Null if no old secret exists.","example":null},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events are delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional human-readable description for the webhook","example":"Production deploy notifications"},"created_by":{"type":"string","description":"Identifier of the API key that created the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the API key that last updated the webhook","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","is_enabled","allowed_events","secret","old_secret","old_secret_expired_at","endpoint","description","created_by","updated_by","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/webhooks/{id}":{"get":{"operationId":"getWebhookV3","summary":"Get webhook","tags":["Webhooks"],"description":"Retrieve the details of a specific webhook, including its subscribed events, endpoint, and signing secret.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"is_enabled":{"type":"boolean","description":"Whether the webhook is currently active and receiving events","example":true},"allowed_events":{"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"secret":{"type":"string","description":"Webhook signing secret used to verify event payloads. Prefixed with whsec_.","example":"whsec_abc123..."},"old_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous signing secret, available temporarily after rolling the secret to allow graceful migration","example":null},"old_secret_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the old secret expires, in ISO 8601 format. Null if no old secret exists.","example":null},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events are delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional human-readable description for the webhook","example":"Production deploy notifications"},"created_by":{"type":"string","description":"Identifier of the API key that created the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the API key that last updated the webhook","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","is_enabled","allowed_events","secret","old_secret","old_secret_expired_at","endpoint","description","created_by","updated_by","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateWebhookV3","summary":"Update webhook","tags":["Webhooks"],"description":"Update one or more properties of an existing webhook. Only the provided fields are updated. Changes take effect immediately for subsequent event deliveries.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allowed_events":{"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"],"minItems":1,"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]}},"endpoint":{"description":"URL where webhook events will be delivered via HTTP POST","example":"https://example.com/webhooks","type":"string","format":"uri"},"description":{"description":"Optional human-readable description for the webhook","example":"Production deploy notifications","anyOf":[{"type":"string","maxLength":255},{"type":"null"}]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"is_enabled":{"type":"boolean","description":"Whether the webhook is currently active and receiving events","example":true},"allowed_events":{"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"secret":{"type":"string","description":"Webhook signing secret used to verify event payloads. Prefixed with whsec_.","example":"whsec_abc123..."},"old_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous signing secret, available temporarily after rolling the secret to allow graceful migration","example":null},"old_secret_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the old secret expires, in ISO 8601 format. Null if no old secret exists.","example":null},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events are delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional human-readable description for the webhook","example":"Production deploy notifications"},"created_by":{"type":"string","description":"Identifier of the API key that created the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the API key that last updated the webhook","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","is_enabled","allowed_events","secret","old_secret","old_secret_expired_at","endpoint","description","created_by","updated_by","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteWebhookV3","summary":"Delete webhook","tags":["Webhooks"],"description":"Permanently delete a webhook. The webhook will immediately stop receiving events. This action cannot be undone.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Webhook deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/webhooks/{id}/toggle":{"post":{"operationId":"toggleWebhookV3","summary":"Toggle webhook","tags":["Webhooks"],"description":"Toggle a webhook between enabled and disabled states. Disabled webhooks stop receiving event deliveries until re-enabled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"is_enabled":{"type":"boolean","description":"Whether the webhook is currently active and receiving events","example":true},"allowed_events":{"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"secret":{"type":"string","description":"Webhook signing secret used to verify event payloads. Prefixed with whsec_.","example":"whsec_abc123..."},"old_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous signing secret, available temporarily after rolling the secret to allow graceful migration","example":null},"old_secret_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the old secret expires, in ISO 8601 format. Null if no old secret exists.","example":null},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events are delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional human-readable description for the webhook","example":"Production deploy notifications"},"created_by":{"type":"string","description":"Identifier of the API key that created the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the API key that last updated the webhook","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","is_enabled","allowed_events","secret","old_secret","old_secret_expired_at","endpoint","description","created_by","updated_by","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/webhooks/{id}/roll-secret":{"post":{"operationId":"rollWebhookSecretV3","summary":"Roll webhook secret","tags":["Webhooks"],"description":"Generate a new signing secret for the webhook. You can set a transition period (up to 24 hours) during which both old and new secrets are valid, allowing you to update your verification logic without downtime.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expire_in_hours":{"default":0,"description":"Number of hours before the old secret expires. Set to 0 to expire immediately. Maximum 24 hours. During the transition period, both old and new secrets are valid for signature verification.","example":6,"type":"integer","minimum":0,"maximum":24}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"is_enabled":{"type":"boolean","description":"Whether the webhook is currently active and receiving events","example":true},"allowed_events":{"type":"array","items":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"]},"description":"List of event types this webhook subscribes to. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":["APP_DEPLOY","APP_CREATE"]},"secret":{"type":"string","description":"Webhook signing secret used to verify event payloads. Prefixed with whsec_.","example":"whsec_abc123..."},"old_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Previous signing secret, available temporarily after rolling the secret to allow graceful migration","example":null},"old_secret_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the old secret expires, in ISO 8601 format. Null if no old secret exists.","example":null},"endpoint":{"type":"string","format":"uri","description":"URL where webhook events are delivered via HTTP POST","example":"https://example.com/webhooks"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional human-readable description for the webhook","example":"Production deploy notifications"},"created_by":{"type":"string","description":"Identifier of the API key that created the webhook","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the API key that last updated the webhook","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the webhook was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","is_enabled","allowed_events","secret","old_secret","old_secret_expired_at","endpoint","description","created_by","updated_by","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/webhooks/{id}/deliveries":{"get":{"operationId":"listWebhookDeliveriesV3","summary":"List webhook event deliveries","tags":["Webhooks"],"description":"Retrieve a paginated list of event deliveries for a specific webhook. Each delivery represents an HTTP POST request sent to the webhook endpoint when a subscribed event occurred. Results are ordered by creation time, newest first.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the event delivery","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"webhook_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the webhook this delivery belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"event_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the event that triggered this delivery","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"event_type":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"],"description":"Type of event that was delivered. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":"APP_DEPLOY"},"status":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"description":"Delivery status. `PENDING` - delivery is queued or in progress. `SUCCESS` - endpoint responded with a 2xx status. `FAILED` - endpoint returned a non-2xx status or the request timed out.","example":"SUCCESS"},"endpoint":{"type":"string","description":"URL where the event was delivered","example":"https://example.com/webhooks"},"payload":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON-encoded event payload that was sent to the endpoint","example":"{\"webhook_id\":\"...\",\"event_id\":\"...\",\"type\":\"APP_DEPLOY\",\"data\":{...}}"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Response body returned by the endpoint, truncated to 10,000 characters","example":"{\"received\":true}"},"response_status":{"anyOf":[{"type":"integer","minimum":100,"maximum":599},{"type":"null"}],"description":"HTTP status code returned by the endpoint","example":200},"response_time_ms":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Time in milliseconds the endpoint took to respond","example":150},"sent_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the delivery was sent, in ISO 8601 format. Null if still pending.","example":"2025-01-30T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the event delivery was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the event delivery was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","webhook_id","event_id","event_type","status","endpoint","payload","response","response_status","response_time_ms","sent_at","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/webhooks/{id}/deliveries/{delivery_id}":{"get":{"operationId":"getWebhookDeliveryV3","summary":"Get webhook event delivery","tags":["Webhooks"],"description":"Retrieve the details of a specific event delivery, including the request payload sent to the endpoint, the response received, HTTP status code, and response time.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Webhook identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"delivery_id","required":true,"description":"Event delivery identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the event delivery","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"webhook_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the webhook this delivery belongs to","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"event_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the event that triggered this delivery","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"event_type":{"type":"string","enum":["APP_CREATE","APP_UPDATE","APP_DELETE","APP_DEPLOY","DATABASE_CREATE","DATABASE_UPDATE","DATABASE_DELETE","STATIC_SITE_CREATE","STATIC_SITE_UPDATE","STATIC_SITE_DELETE","STATIC_SITE_DEPLOY"],"description":"Type of event that was delivered. `APP_CREATE` - application created. `APP_UPDATE` - application updated. `APP_DELETE` - application deleted. `APP_DEPLOY` - application deployed. `DATABASE_CREATE` - database created. `DATABASE_UPDATE` - database updated. `DATABASE_DELETE` - database deleted. `STATIC_SITE_CREATE` - static site created. `STATIC_SITE_UPDATE` - static site updated. `STATIC_SITE_DELETE` - static site deleted. `STATIC_SITE_DEPLOY` - static site deployed.","example":"APP_DEPLOY"},"status":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"description":"Delivery status. `PENDING` - delivery is queued or in progress. `SUCCESS` - endpoint responded with a 2xx status. `FAILED` - endpoint returned a non-2xx status or the request timed out.","example":"SUCCESS"},"endpoint":{"type":"string","description":"URL where the event was delivered","example":"https://example.com/webhooks"},"payload":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON-encoded event payload that was sent to the endpoint","example":"{\"webhook_id\":\"...\",\"event_id\":\"...\",\"type\":\"APP_DEPLOY\",\"data\":{...}}"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Response body returned by the endpoint, truncated to 10,000 characters","example":"{\"received\":true}"},"response_status":{"anyOf":[{"type":"integer","minimum":100,"maximum":599},{"type":"null"}],"description":"HTTP status code returned by the endpoint","example":200},"response_time_ms":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Time in milliseconds the endpoint took to respond","example":150},"sent_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the delivery was sent, in ISO 8601 format. Null if still pending.","example":"2025-01-30T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the event delivery was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the event delivery was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","webhook_id","event_id","event_type","status","endpoint","payload","response","response_status","response_time_ms","sent_at","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/projects":{"get":{"operationId":"listProjectsV3","summary":"List projects","tags":["Projects"],"description":"Retrieve a paginated list of all projects the authenticated API key has access to. Results are ordered by name and can be paginated using the `limit` and `offset` query parameters.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-project-abc12"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Project"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","display_name","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createProjectV3","summary":"Create project","tags":["Projects"],"description":"Create a new project within the company. Projects are used to group related services (applications, databases, pipelines, object storage) together for easier management.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":64,"description":"Human-readable name for the project","example":"My Project"}},"required":["display_name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-project-abc12"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Project"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","name","display_name","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/projects/{id}":{"get":{"operationId":"getProjectV3","summary":"Get project","tags":["Projects"],"description":"Retrieve the details of a specific project by its identifier.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Project identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-project-abc12"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Project"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"services":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the service","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name of the service","example":"my-app-abc12"},"display_name":{"type":"string","description":"Human-readable name of the service","example":"My App"},"type":{"type":"string","enum":["app","database","pipeline","object-storage","load-balancer"],"description":"Type of service. `app` - application. `database` - database. `pipeline` - deployment pipeline. `object-storage` - object storage bucket. `load-balancer` - load balancer.","example":"app"}},"required":["id","name","display_name","type"],"additionalProperties":false},"description":"List of services assigned to this project"}},"required":["id","company_id","name","display_name","created_at","updated_at","services"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateProjectV3","summary":"Update project","tags":["Projects"],"description":"Update the display name of an existing project.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":64,"description":"New display name for the project","example":"My Updated Project"}},"required":["display_name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Project identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Unique system name used in internal references. Auto-generated from the display name and cannot be changed after creation.","example":"my-project-abc12"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Project"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the project was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","name","display_name","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteProjectV3","summary":"Delete project","tags":["Projects"],"description":"Permanently delete a project. All services (applications, databases, pipelines, object storage) currently in this project will be unlinked but not deleted. API key capabilities scoped to this project will also be removed.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Project identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Project deleted"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/projects/{id}/services":{"post":{"operationId":"addServiceToProjectV3","summary":"Add service to project","tags":["Projects"],"description":"Add an existing service to a project. The service must belong to the same company as the project. When adding a pipeline, all applications in the pipeline stages are also moved into the project.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"service_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the service to add to the project","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"service_type":{"type":"string","enum":["app","database","pipeline","object-storage"],"description":"Type of service to add. `app` - application. `database` - database. `pipeline` - deployment pipeline (also moves all stage apps into the project). `object-storage` - object storage bucket.","example":"app"}},"required":["service_id","service_type"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Project identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Service added to project"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/projects/{id}/services/{service_id}":{"delete":{"operationId":"removeServiceFromProjectV3","summary":"Remove service from project","tags":["Projects"],"description":"Remove a service from a project. The service itself is not deleted, only the association with the project is removed. When removing a pipeline, all applications in the pipeline stages are also removed from the project.","parameters":[{"schema":{"type":"string","enum":["app","database","pipeline","object-storage"],"example":"app"},"in":"query","name":"service_type","required":true,"description":"Type of service to remove. `app` - application. `database` - database. `pipeline` - deployment pipeline (also removes all stage apps from the project). `object-storage` - object storage bucket."},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Project identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"service_id","required":true,"description":"Service identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Service removed from project"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/api-keys":{"get":{"operationId":"listApiKeysV3","summary":"List API keys","tags":["API Keys"],"description":"Retrieve a paginated list of all API keys for the authenticated company. Results are ordered by creation date (newest first). Token values are masked for security.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the API key","example":"My API Key"},"is_enabled":{"type":"boolean","description":"Whether the API key is currently active and can be used for authentication"},"source":{"type":"string","enum":["DASHBOARD","CLI","EXTERNAL","SUPPORT_MCP"],"description":"How the API key was created - `DASHBOARD` created via the web dashboard, `CLI` created via CLI, `EXTERNAL` created via the API"},"masked_token":{"type":"string","description":"Masked version of the token showing only the first 6 and last 4 characters","example":"svl_ab...wxyz"},"roles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the role","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Role name","example":"COMPANY_ADMIN"},"description":{"type":"string","description":"Human-readable description of the role"}},"required":["id","name","description"],"additionalProperties":false},"description":"Pre-defined roles assigned to this API key"},"capabilities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the capability","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"permission":{"type":"string","description":"Permission string in RESOURCE:ACTION format","example":"APP:READ"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional resource ID this capability is scoped to. Null means access to all resources","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["id","permission","resource_id"],"additionalProperties":false},"description":"Granular capabilities assigned to this API key"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key was last used for authentication, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key expires, in ISO 8601 format. Null means no expiration","example":"2025-01-01T00:00:00.000Z"},"old_token_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the previous token expires during rotation, in ISO 8601 format. Null if no rotation is in progress","example":"2024-01-02T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was created, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was last updated, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"}},"required":["id","company_id","name","is_enabled","source","masked_token","roles","capabilities","last_used_at","expired_at","old_token_expired_at","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"post":{"operationId":"createApiKeyV3","summary":"Create API key","tags":["API Keys"],"description":"Create a new API key with the specified roles and/or capabilities. The response includes the raw token value, which is only shown once - make sure to store it securely. At least one role or capability must be provided.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the API key","example":"My API Key"},"role_ids":{"description":"List of role IDs to assign to the API key. At least one role or capability is required","type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"capabilities":{"description":"List of granular capabilities to assign. At least one role or capability is required","type":"array","items":{"type":"object","properties":{"permission":{"type":"string","minLength":1,"description":"Permission string in RESOURCE:ACTION format, e.g. APP:READ, DATABASE:CREATE","example":"APP:READ"},"resource_id":{"description":"Optional resource ID to scope this capability to a specific resource","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string"}},"required":["permission"]}},"expired_at":{"description":"ISO 8601 timestamp when the API key should expire. Omit for no expiration","example":"2025-12-31T23:59:59Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"token":{"type":"string","description":"The raw API key token. This is the only time the full token is returned - store it securely","example":"svl_abc123..."},"name":{"type":"string","description":"Name of the created API key","example":"My API Key"}},"required":["id","token","name"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/api-keys/me":{"get":{"operationId":"getCurrentApiKeyV3","summary":"Get current API key","tags":["API Keys"],"description":"Retrieve the details of the API key used to authenticate the current request, including a unified list of its effective capabilities (the permissions from its roles merged with its custom capabilities). Use this to discover what the calling key is allowed to do without knowing its ID. Any valid API key can call this endpoint regardless of its permissions. The token value is masked for security.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the API key","example":"My API Key"},"is_enabled":{"type":"boolean","description":"Whether the API key is currently active and can be used for authentication"},"source":{"type":"string","enum":["DASHBOARD","CLI","EXTERNAL","SUPPORT_MCP"],"description":"How the API key was created - `DASHBOARD` created via the web dashboard, `CLI` created via CLI, `EXTERNAL` created via the API"},"masked_token":{"type":"string","description":"Masked version of the token showing only the first 6 and last 4 characters","example":"svl_ab...wxyz"},"capabilities":{"type":"array","items":{"type":"object","properties":{"permission":{"type":"string","description":"Permission string in RESOURCE:ACTION format","example":"APP:READ"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Resource ID this capability is scoped to. Null means the permission applies to all resources","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["permission","resource_id"],"additionalProperties":false},"description":"The key's effective capabilities, combining permissions granted by its roles (which always apply to all resources, so resource_id is null) with its custom capabilities. When a permission is granted for all resources, any resource-scoped grant for the same permission is omitted as redundant."},"last_used_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key was last used for authentication, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key expires, in ISO 8601 format. Null means no expiration","example":"2025-01-01T00:00:00.000Z"},"old_token_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the previous token expires during rotation, in ISO 8601 format. Null if no rotation is in progress","example":"2024-01-02T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was created, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was last updated, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"}},"required":["id","company_id","name","is_enabled","source","masked_token","capabilities","last_used_at","expired_at","old_token_expired_at","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/api-keys/{id}":{"get":{"operationId":"getApiKeyV3","summary":"Get API key","tags":["API Keys"],"description":"Retrieve the full details of a single API key including its roles, capabilities, and usage metadata. The token value is masked for security.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"API key identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the API key","example":"My API Key"},"is_enabled":{"type":"boolean","description":"Whether the API key is currently active and can be used for authentication"},"source":{"type":"string","enum":["DASHBOARD","CLI","EXTERNAL","SUPPORT_MCP"],"description":"How the API key was created - `DASHBOARD` created via the web dashboard, `CLI` created via CLI, `EXTERNAL` created via the API"},"masked_token":{"type":"string","description":"Masked version of the token showing only the first 6 and last 4 characters","example":"svl_ab...wxyz"},"roles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the role","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Role name","example":"COMPANY_ADMIN"},"description":{"type":"string","description":"Human-readable description of the role"}},"required":["id","name","description"],"additionalProperties":false},"description":"Pre-defined roles assigned to this API key"},"capabilities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the capability","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"permission":{"type":"string","description":"Permission string in RESOURCE:ACTION format","example":"APP:READ"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional resource ID this capability is scoped to. Null means access to all resources","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["id","permission","resource_id"],"additionalProperties":false},"description":"Granular capabilities assigned to this API key"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key was last used for authentication, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key expires, in ISO 8601 format. Null means no expiration","example":"2025-01-01T00:00:00.000Z"},"old_token_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the previous token expires during rotation, in ISO 8601 format. Null if no rotation is in progress","example":"2024-01-02T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was created, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was last updated, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"}},"required":["id","company_id","name","is_enabled","source","masked_token","roles","capabilities","last_used_at","expired_at","old_token_expired_at","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateApiKeyV3","summary":"Update API key","tags":["API Keys"],"description":"Update an API key's name, roles, or capabilities. When roles or capabilities are provided, they fully replace the existing values. An API key cannot update itself.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"New name for the API key","example":"Updated Key Name","type":"string","minLength":1,"maxLength":255},"role_ids":{"description":"New list of role IDs. Replaces all existing roles when provided","type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"capabilities":{"description":"New list of capabilities. Replaces all existing capabilities when provided","type":"array","items":{"type":"object","properties":{"permission":{"type":"string","minLength":1,"description":"Permission string in RESOURCE:ACTION format, e.g. APP:READ, DATABASE:CREATE","example":"APP:READ"},"resource_id":{"description":"Optional resource ID to scope this capability to a specific resource","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string"}},"required":["permission"]}}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"API key identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company that owns this API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Human-readable name for the API key","example":"My API Key"},"is_enabled":{"type":"boolean","description":"Whether the API key is currently active and can be used for authentication"},"source":{"type":"string","enum":["DASHBOARD","CLI","EXTERNAL","SUPPORT_MCP"],"description":"How the API key was created - `DASHBOARD` created via the web dashboard, `CLI` created via CLI, `EXTERNAL` created via the API"},"masked_token":{"type":"string","description":"Masked version of the token showing only the first 6 and last 4 characters","example":"svl_ab...wxyz"},"roles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the role","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Role name","example":"COMPANY_ADMIN"},"description":{"type":"string","description":"Human-readable description of the role"}},"required":["id","name","description"],"additionalProperties":false},"description":"Pre-defined roles assigned to this API key"},"capabilities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the capability","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"permission":{"type":"string","description":"Permission string in RESOURCE:ACTION format","example":"APP:READ"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional resource ID this capability is scoped to. Null means access to all resources","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"}},"required":["id","permission","resource_id"],"additionalProperties":false},"description":"Granular capabilities assigned to this API key"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key was last used for authentication, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the API key expires, in ISO 8601 format. Null means no expiration","example":"2025-01-01T00:00:00.000Z"},"old_token_expired_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Timestamp when the previous token expires during rotation, in ISO 8601 format. Null if no rotation is in progress","example":"2024-01-02T00:00:00.000Z"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was created, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the API key was last updated, in ISO 8601 format","example":"2024-01-01T00:00:00.000Z"}},"required":["id","company_id","name","is_enabled","source","masked_token","roles","capabilities","last_used_at","expired_at","old_token_expired_at","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteApiKeyV3","summary":"Delete API key","tags":["API Keys"],"description":"Permanently delete an API key. This immediately revokes all access for this key and cannot be undone. An API key cannot delete itself.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"API key identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"API key \"My Key\" deleted"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/api-keys/{id}/toggle":{"post":{"operationId":"toggleApiKeyV3","summary":"Toggle API key","tags":["API Keys"],"description":"Enable or disable an API key. A disabled API key cannot be used for authentication until it is re-enabled. An API key cannot toggle itself.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"API key identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"API key \"My Key\" disabled"},"is_enabled":{"type":"boolean","description":"New enabled state of the API key"}},"required":["message","is_enabled"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/api-keys/{id}/rotate":{"post":{"operationId":"rotateApiKeyV3","summary":"Rotate API key","tags":["API Keys"],"description":"Generate a new token for an API key. The old token can optionally remain valid for a transition period (up to 168 hours) to allow graceful migration. The response includes the new raw token, which is only shown once. An API key cannot rotate itself.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"old_token_ttl_hours":{"default":0,"description":"Number of hours to keep the old token valid after rotation (0-168). Set to 0 to immediately invalidate the old token","example":24,"type":"integer","minimum":0,"maximum":168}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"API key identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"The new raw API key token. This is the only time the full token is returned - store it securely","example":"svl_abc123..."},"name":{"type":"string","description":"Name of the rotated API key","example":"My API Key"}},"required":["token","name"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/api-keys/validate":{"get":{"operationId":"validateApiKeyV3","summary":"Validate API key","tags":["API Keys"],"description":"Validate the provided API key and return its details including name, expiration, associated company, and current status. Use this endpoint to verify that an API key is valid and active before making other API calls.","security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API key","example":"My API Key"},"expires_at":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"Expiration timestamp in ISO 8601 format, or null if no expiration","example":"2025-01-30T00:00:00.000Z"},"company_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Identifier of the company associated with the API key","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"status":{"type":"string","description":"Current status of the API key","example":"active"}},"required":["name","expires_at","company_id","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers":{"post":{"operationId":"createLoadBalancerV3","summary":"Create load balancer","tags":["Load balancers"],"description":"Create a new load balancer. The load balancer is created with no destinations - add them separately using the create destination endpoint.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"type":"string","minLength":2,"maxLength":64,"description":"Human-readable name for the load balancer. Must be between 2 and 64 characters.","example":"My Load Balancer"},"type":{"description":"Routing type for the load balancer. Defaults to `DEFAULT`. `DEFAULT` - standard round-robin or weighted routing. `GEO` - geographic routing based on client location.","example":"DEFAULT","type":"string","enum":["DEFAULT","GEO"]},"project_id":{"description":"Identifier of the project to group this load balancer under. When omitted, the load balancer is not assigned to any project.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["display_name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this load balancer is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Load Balancer"},"name":{"type":"string","description":"Unique system name auto-generated from the display name","example":"my-load-balancer"},"type":{"type":"string","enum":["DEFAULT","GEO"],"description":"Load balancer routing type. `DEFAULT` - standard round-robin or weighted routing. `GEO` - geographic routing based on client location.","example":"DEFAULT"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","name","type","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"listLoadBalancersV3","summary":"List load balancers","tags":["Load balancers"],"description":"Retrieve a paginated list of all load balancers the authenticated API key has access to. Results are ordered by creation date (newest first) and can be paginated using the `limit` and `offset` query parameters.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this load balancer is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Load Balancer"},"name":{"type":"string","description":"Unique system name auto-generated from the display name","example":"my-load-balancer"},"type":{"type":"string","enum":["DEFAULT","GEO"],"description":"Load balancer routing type. `DEFAULT` - standard round-robin or weighted routing. `GEO` - geographic routing based on client location.","example":"DEFAULT"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","name","type","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}":{"get":{"operationId":"getLoadBalancerV3","summary":"Get load balancer","tags":["Load balancers"],"description":"Retrieve the full details of a load balancer including its routing type and custom route configuration.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this load balancer is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Load Balancer"},"name":{"type":"string","description":"Unique system name auto-generated from the display name","example":"my-load-balancer"},"type":{"type":"string","enum":["DEFAULT","GEO"],"description":"Load balancer routing type. `DEFAULT` - standard round-robin or weighted routing. `GEO` - geographic routing based on client location.","example":"DEFAULT"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","name","type","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateLoadBalancerV3","summary":"Update load balancer","tags":["Load balancers"],"description":"Update one or more properties of an existing load balancer. Only include the fields you want to change - omitted fields are left unchanged.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"description":"Human-readable name shown in the dashboard and API responses","example":"My Load Balancer","type":"string","minLength":2,"maxLength":64},"type":{"description":"Routing type. `DEFAULT` - standard round-robin or weighted routing. `GEO` - geographic routing based on client location.","example":"DEFAULT","type":"string","enum":["DEFAULT","GEO"]},"project_id":{"description":"Identifier of the project to group this load balancer under. Set to `null` to remove from a project.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"company_id":{"type":"string","description":"Identifier of the company that owns this load balancer","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"project_id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"description":"Identifier of the project this load balancer is grouped under","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"display_name":{"type":"string","description":"Human-readable name shown in the dashboard and API responses","example":"My Load Balancer"},"name":{"type":"string","description":"Unique system name auto-generated from the display name","example":"my-load-balancer"},"type":{"type":"string","enum":["DEFAULT","GEO"],"description":"Load balancer routing type. `DEFAULT` - standard round-robin or weighted routing. `GEO` - geographic routing based on client location.","example":"DEFAULT"},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the load balancer was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","company_id","project_id","display_name","name","type","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteLoadBalancerV3","summary":"Delete load balancer","tags":["Load balancers"],"description":"Permanently delete a load balancer and all its destinations. This operation is irreversible.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"204":{"description":"Load balancer deleted successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/rate-limit":{"get":{"operationId":"getLoadBalancerRateLimitV3","summary":"Get rate limit","tags":["Load balancers"],"description":"Retrieve the current rate limiting configuration for a load balancer. Rate limiting restricts each client IP to 100 requests per minute per hostname and applies the configured action when the limit is exceeded. If rate limiting has never been configured, returns the default state: disabled with the `challenge` action.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting is currently active","example":false},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action applied when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"put":{"operationId":"updateLoadBalancerRateLimitV3","summary":"Update rate limit","tags":["Load balancers"],"description":"Update the rate limiting configuration for a load balancer. Rate limiting restricts each client IP to 100 requests per minute per hostname across the load balancer domains. When a client exceeds the limit, the configured action is applied: `challenge` requires the visitor to pass a managed challenge for 5 minutes, `throttle` blocks requests only while the rate stays above the limit, and `ban` blocks the client IP for 5 minutes. Changes are synced to the edge network as part of the request. Returns the updated rate limit state.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting should be active","example":true},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action to apply when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"]}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"is_enabled":{"type":"boolean","description":"Whether rate limiting is currently active","example":true},"action":{"type":"string","enum":["challenge","throttle","ban"],"description":"Mitigation action applied when a client IP exceeds the limit of 100 requests per minute. `challenge` - visitors must pass a managed challenge for 5 minutes. `throttle` - requests are blocked only while the rate stays above the limit. `ban` - the client IP is blocked for 5 minutes.","example":"challenge"}},"required":["is_enabled","action"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/destinations":{"post":{"operationId":"createLoadBalancerDestinationV3","summary":"Create load balancer destination","tags":["Load balancers"],"description":"Add a new destination to a load balancer. The destination starts enabled and will immediately begin receiving traffic according to the load balancer routing type.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"service_id":{"description":"Identifier of the backing service. Required for APP, STATIC_SITE, OBJECT_STORAGE, and LOAD_BALANCER types. Must not be set for EXTERNAL type.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657","type":"string","minLength":1},"service_type":{"type":"string","enum":["APP","STATIC_SITE","OBJECT_STORAGE","EXTERNAL","LOAD_BALANCER"],"description":"Type of the backing service. `APP` - application. `STATIC_SITE` - static site. `OBJECT_STORAGE` - object storage bucket. `EXTERNAL` - external URL. `LOAD_BALANCER` - nested load balancer.","example":"APP"},"weight":{"description":"Traffic weight for weighted routing. Higher values receive proportionally more traffic.","example":100,"type":"integer","minimum":0,"maximum":10000},"url":{"description":"External URL, required when service_type is EXTERNAL","example":"https://example.com","type":"string"},"latitude":{"description":"Geographic latitude for GEO routing","example":37.7749,"type":"number","minimum":-90,"maximum":90},"longitude":{"description":"Geographic longitude for GEO routing","example":-122.4194,"type":"number","minimum":-180,"maximum":180}},"required":["service_type"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the destination","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"service_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the backing service for this destination. Null for EXTERNAL type destinations.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"service_type":{"type":"string","enum":["APP","STATIC_SITE","OBJECT_STORAGE","EXTERNAL","LOAD_BALANCER"],"description":"Type of the backing service. `APP` - application. `STATIC_SITE` - static site. `OBJECT_STORAGE` - object storage bucket. `EXTERNAL` - external URL. `LOAD_BALANCER` - nested load balancer.","example":"APP"},"is_enabled":{"type":"boolean","description":"Whether this destination is currently receiving traffic","example":true},"weight":{"anyOf":[{"type":"integer","minimum":0,"maximum":10000},{"type":"null"}],"description":"Traffic weight for weighted routing. Higher values receive proportionally more traffic.","example":100},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"External URL for EXTERNAL service type destinations","example":null},"latitude":{"anyOf":[{"type":"number","minimum":-90,"maximum":90},{"type":"null"}],"description":"Geographic latitude for GEO routing","example":null},"longitude":{"anyOf":[{"type":"number","minimum":-180,"maximum":180},{"type":"null"}],"description":"Geographic longitude for GEO routing","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the destination was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the destination was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","service_id","service_type","is_enabled","weight","url","latitude","longitude","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"listLoadBalancerDestinationsV3","summary":"List load balancer destinations","tags":["Load balancers"],"description":"Retrieve a paginated list of all destinations configured for a load balancer.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the destination","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"service_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Identifier of the backing service for this destination. Null for EXTERNAL type destinations.","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"service_type":{"type":"string","enum":["APP","STATIC_SITE","OBJECT_STORAGE","EXTERNAL","LOAD_BALANCER"],"description":"Type of the backing service. `APP` - application. `STATIC_SITE` - static site. `OBJECT_STORAGE` - object storage bucket. `EXTERNAL` - external URL. `LOAD_BALANCER` - nested load balancer.","example":"APP"},"is_enabled":{"type":"boolean","description":"Whether this destination is currently receiving traffic","example":true},"weight":{"anyOf":[{"type":"integer","minimum":0,"maximum":10000},{"type":"null"}],"description":"Traffic weight for weighted routing. Higher values receive proportionally more traffic.","example":100},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"External URL for EXTERNAL service type destinations","example":null},"latitude":{"anyOf":[{"type":"number","minimum":-90,"maximum":90},{"type":"null"}],"description":"Geographic latitude for GEO routing","example":null},"longitude":{"anyOf":[{"type":"number","minimum":-180,"maximum":180},{"type":"null"}],"description":"Geographic longitude for GEO routing","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the destination was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the destination was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","service_id","service_type","is_enabled","weight","url","latitude","longitude","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/destinations/{destination_id}":{"delete":{"operationId":"deleteLoadBalancerDestinationV3","summary":"Delete load balancer destination","tags":["Load balancers"],"description":"Remove a destination from a load balancer. Traffic will no longer be routed to this destination. This action cannot be undone.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"destination_id","required":true,"description":"Destination identifier"}],"responses":{"204":{"description":"Destination deleted successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/destinations/{destination_id}/toggle":{"post":{"operationId":"toggleLoadBalancerDestinationV3","summary":"Toggle load balancer destination","tags":["Load balancers"],"description":"Enable or disable a load balancer destination. When disabled, the destination stops receiving traffic.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"destination_id","required":true,"description":"Destination identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Destination toggled"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/domains":{"post":{"operationId":"addLoadBalancerDomainV3","summary":"Add load balancer domain","tags":["Load balancers"],"description":"Add a custom domain to a load balancer. After adding, configure your DNS records as indicated in the response to complete domain verification. The domain status will transition from `verification` to `pointing` to `active` as DNS propagates.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain_name":{"type":"string","minLength":1,"description":"The custom domain name to add to the load balancer","example":"lb.example.com"},"is_wildcard":{"description":"Whether this should be a wildcard domain that matches all subdomains","example":false,"type":"boolean"},"custom_ssl_cert":{"description":"Custom SSL certificate in PEM format. When provided, the platform uses this certificate instead of auto-provisioning one.","example":"-----BEGIN CERTIFICATE-----...","type":"string"},"custom_ssl_key":{"description":"Private key for the custom SSL certificate in PEM format. Required when custom_ssl_cert is provided.","example":"-----BEGIN PRIVATE KEY-----...","type":"string"}},"required":["domain_name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"get":{"operationId":"listLoadBalancerDomainsV3","summary":"List load balancer domains","tags":["Load balancers"],"description":"Retrieve a paginated list of all domains (both system and custom) associated with a load balancer.","parameters":[{"schema":{"default":25,"example":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Maximum number of items per page"},{"schema":{"default":0,"example":0,"type":"integer","minimum":0,"maximum":10000},"in":"query","name":"offset","required":false,"description":"Number of items to skip"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false},"description":"List of items"},"total":{"type":"integer","minimum":0,"maximum":10000,"description":"Total number of items matching the query","example":42},"offset":{"type":"integer","minimum":0,"maximum":10000,"description":"Current pagination offset","example":0},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Current pagination limit","example":25}},"required":["data","total","offset","limit"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/domains/{domain_id}":{"get":{"operationId":"getLoadBalancerDomainV3","summary":"Get load balancer domain","tags":["Load balancers"],"description":"Retrieve the details of a specific domain associated with a load balancer, including its verification status, DNS records, and configuration.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteLoadBalancerDomainV3","summary":"Delete load balancer domain","tags":["Load balancers"],"description":"Remove a custom domain from a load balancer. System domains cannot be deleted - use the toggle endpoint to disable them instead. This action cannot be undone.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"204":{"description":"Domain deleted successfully"},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}},"patch":{"operationId":"updateLoadBalancerDomainV3","summary":"Update load balancer system domain","tags":["Load balancers"],"description":"Update the subdomain name of a system domain. Only applies to system domains - use the add/delete endpoints to manage custom domains.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"New subdomain name for the system domain","example":"my-lb"}},"required":["name"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the domain","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"name":{"type":"string","description":"Domain name, either a custom domain or a system-assigned subdomain","example":"app.example.com"},"status":{"type":"string","description":"Current verification and pointing status of the domain. `VERIFICATION` - domain ownership is being verified. `POINTING` - domain is verified but DNS is not yet pointing to the platform. `ACTIVE` - domain is fully configured and serving traffic. `TIMED_OUT` - verification or pointing timed out and needs to be refreshed.","example":"ACTIVE"},"type":{"type":"string","description":"Domain type. `SYSTEM` - platform-assigned domain that can be toggled on/off. `CUSTOM` - user-added domain with custom DNS configuration.","example":"CUSTOM"},"is_enabled":{"type":"boolean","description":"Whether the domain is currently enabled. Only applicable to system domains.","example":true},"is_wildcard":{"type":"boolean","description":"Whether this is a wildcard domain that matches all subdomains","example":false},"is_primary":{"type":"boolean","description":"Whether this domain is the primary domain for the service. The primary domain is used for canonical URLs.","example":true},"dns_records":{"anyOf":[{},{"type":"null"}],"description":"DNS records that need to be configured for this domain. Null when DNS configuration is not required.","example":[{"type":"CNAME","name":"app.example.com","value":"cname.sevalla.com"}]},"errors":{"anyOf":[{},{"type":"null"}],"description":"Any errors encountered during domain verification or configuration","example":null},"created_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was created, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"Timestamp when the domain was last modified, in ISO 8601 format","example":"2025-01-30T00:00:00.000Z"}},"required":["id","name","status","type","is_enabled","is_wildcard","is_primary","dns_records","errors","created_at","updated_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Bad request"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":400},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/domains/{domain_id}/refresh-status":{"post":{"operationId":"refreshLoadBalancerDomainStatusV3","summary":"Refresh load balancer domain status","tags":["Load balancers"],"description":"Trigger a re-check of the domain verification and DNS pointing status. Use this after updating your DNS records to speed up the verification process.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain status refresh initiated"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/domains/{domain_id}/set-primary":{"post":{"operationId":"setLoadBalancerPrimaryDomainV3","summary":"Set primary load balancer domain","tags":["Load balancers"],"description":"Set a domain as the primary domain for the load balancer. The primary domain is used for canonical URLs. Only one domain can be primary at a time - the previously primary domain is automatically demoted.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"Domain set as primary"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/load-balancers/{id}/domains/{domain_id}/toggle":{"post":{"operationId":"toggleLoadBalancerSystemDomainV3","summary":"Toggle load balancer system domain","tags":["Load balancers"],"description":"Enable or disable a system domain for the load balancer. When disabled, the system domain stops serving traffic. Only applies to system domains - custom domains cannot be toggled.","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"id","required":true,"description":"Load balancer identifier"},{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"in":"path","name":"domain_id","required":true,"description":"Domain identifier"}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Confirmation message","example":"System domain toggled"}},"required":["message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Not found"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":404},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/auth/device-codes":{"post":{"operationId":"createDeviceCodeV3","summary":"Create device code","tags":["Device Authorization"],"description":"Request a new device authorization code. The external client displays this code to the user, who then visits the Sevalla dashboard to approve the device. The client polls the GET endpoint until the code is approved, denied, or expired. Codes expire after 5 minutes. Maximum 5 active codes per IP address.","security":[],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The device code to display to the user. The user enters this code in the Sevalla dashboard to authorize the device","example":"ABCD1234"},"expires_at":{"type":"string","description":"ISO 8601 timestamp when the device code expires. Codes are valid for 5 minutes","example":"2025-06-01T12:05:00.000Z"}},"required":["code","expires_at"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Too many requests"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":429},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/auth/device-codes/{code}":{"get":{"operationId":"pollDeviceCodeV3","summary":"Poll device code status","tags":["Device Authorization"],"description":"Check the current status of a device authorization code. The external client should poll this endpoint at regular intervals (recommended every 5 seconds) until the status changes from `pending`. When approved, the response includes the API key token for a one-time retrieval - the token cannot be fetched again.","parameters":[{"schema":{"type":"string","minLength":1,"example":"ABCD1234"},"in":"path","name":"code","required":true,"description":"The device code to check the status of"}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","approved","denied","expired"],"description":"Current status of the device code. `pending` - waiting for user action, `approved` - user approved and token is included, `denied` - user explicitly rejected the request, `expired` - code has expired","example":"pending"},"token":{"description":"The API key token, only present when status is `approved`. This is the only time the token is returned - store it securely","example":"svl_abc123...","type":"string"}},"required":["status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/git/providers":{"get":{"operationId":"listGitProvidersV3","summary":"List Git providers","tags":["Git"],"description":"Retrieve available Git providers (GitHub, Bitbucket, GitLab) with their OAuth connect URLs. Use the connect_url to initiate the OAuth flow and link a Git account. GitHub also includes a settings_url for managing repository access permissions.","responses":{"200":{"description":"List of available Git providers","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["github","bitbucket","gitlab"],"description":"Git provider identifier"},"display_name":{"type":"string","description":"Human-readable provider name"},"connect_url":{"type":"string","description":"OAuth authorization URL to connect the provider to the user account"},"settings_url":{"description":"URL to manage repository access settings. Only available for GitHub.","type":"string"}},"required":["provider","display_name","connect_url"],"additionalProperties":false},"description":"List of available Git providers"}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}},"/users":{"get":{"operationId":"listUsersV3","summary":"List company users","tags":["Users"],"description":"Retrieve the list of users belonging to the company associated with the authenticated API key.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Unique identifier for the user","example":"fb5e5168-4281-4bec-94c5-0d1584e9e657"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"User email address","example":"user@example.com"},"image":{"type":"string","format":"uri","description":"URL of the user avatar image","example":"https://avatars.githubusercontent.com/u/12345"},"full_name":{"type":"string","description":"Full name of the user","example":"John Doe"}},"required":["id","email","image","full_name"],"additionalProperties":false},"description":"List of company users"}},"required":["data"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Unauthorized"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":401},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Forbidden"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":403},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Internal Server Error"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code","example":500},"data":{"type":"object","properties":{"code":{"description":"Error tracking code for support reference","example":"err-abc-123","type":"string"},"message":{"description":"Additional error details or instructions","example":"If you need assistance, please contact support and provide this error code.","type":"string"}},"additionalProperties":false}},"required":["message","status"],"additionalProperties":false}}}}}}}},"servers":[{"url":"https://api.sevalla.com/v3"}],"security":[{"bearerAuth":[]}]}