openapi: 3.1.0 info: title: Deno Deploy REST API description: >- The Deno Deploy REST API (v1) provides programmatic access to manage projects and deployments on the Deno Deploy serverless edge platform. It exposes endpoints for creating and managing organizations, projects, deployments, domains, and KV databases, as well as retrieving analytics and usage metrics. Authentication uses HTTP Bearer tokens generated from the Deno Deploy dashboard. This v1 API is scheduled for sunset on July 20, 2026; users should migrate to the v2 API. version: '1.0' contact: name: Deno Deploy Support url: https://deno.com/deploy termsOfService: https://deno.com/deploy/terms externalDocs: description: Deno Deploy REST API Documentation url: https://docs.deno.com/deploy/api/rest/ servers: - url: https://api.deno.com/v1 description: Deno Deploy Production API tags: - name: Deployments description: Create, list, retrieve, redeploy, and delete deployments; access build and app logs - name: Domains description: Register and manage custom domains with TLS certificate support - name: KV Databases description: Create and manage Deno KV databases and backups - name: Organizations description: Retrieve organization details and analytics - name: Projects description: Create, list, update, and delete Deploy projects security: - bearerAuth: [] paths: /organizations/{organizationId}: get: operationId: getOrganization summary: Get organization description: >- Retrieves the details of an organization by its UUID. Organizations are the top-level billing and access-control containers on Deno Deploy. tags: - Organizations parameters: - $ref: '#/components/parameters/organizationId' responses: '200': description: Organization retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Organization' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /organizations/{organizationId}/analytics: get: operationId: getOrganizationAnalytics summary: Get organization analytics description: >- Returns time-series analytics data for an organization in 15-minute intervals. The time range is limited to a maximum of 24 hours and must be specified using RFC 3339 timestamps. tags: - Organizations parameters: - $ref: '#/components/parameters/organizationId' - name: since in: query required: true description: Start of the analytics time range in RFC 3339 format schema: type: string format: date-time - name: until in: query required: true description: End of the analytics time range in RFC 3339 format schema: type: string format: date-time responses: '200': description: Analytics data retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Analytics' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /organizations/{organizationId}/projects: get: operationId: listProjects summary: List projects description: >- Returns a paginated list of all projects belonging to the specified organization. Supports filtering by name and sorting by various fields. tags: - Projects parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/order' responses: '200': description: Projects listed successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: createProject summary: Create project description: >- Creates a new project within the specified organization. Projects are containers for deployments on Deno Deploy, and each project can have multiple deployments across its lifecycle. tags: - Projects parameters: - $ref: '#/components/parameters/organizationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateProjectRequest' responses: '200': description: Project created successfully content: application/json: schema: $ref: '#/components/schemas/Project' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /projects/{projectId}: get: operationId: getProject summary: Get project description: >- Retrieves the details of a specific project by its UUID, including its name, associated organization, and current configuration. tags: - Projects parameters: - $ref: '#/components/parameters/projectId' responses: '200': description: Project retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateProject summary: Update project description: >- Updates mutable fields of an existing project such as its name. Only the fields present in the request body are modified. tags: - Projects parameters: - $ref: '#/components/parameters/projectId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateProjectRequest' responses: '200': description: Project updated successfully content: application/json: schema: $ref: '#/components/schemas/Project' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteProject summary: Delete project description: >- Permanently deletes a project and all of its deployments. This operation cannot be undone. tags: - Projects parameters: - $ref: '#/components/parameters/projectId' responses: '200': description: Project deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /projects/{projectId}/analytics: get: operationId: getProjectAnalytics summary: Get project analytics description: >- Returns time-series analytics data for a specific project in 15-minute intervals. The time range is limited to a maximum of 24 hours and must be specified using RFC 3339 timestamps. tags: - Projects parameters: - $ref: '#/components/parameters/projectId' - name: since in: query required: true description: Start of the analytics time range in RFC 3339 format schema: type: string format: date-time - name: until in: query required: true description: End of the analytics time range in RFC 3339 format schema: type: string format: date-time responses: '200': description: Analytics data retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Analytics' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /projects/{projectId}/deployments: get: operationId: listDeployments summary: List deployments description: >- Returns a paginated list of all deployments for a project. Supports filtering by deployment ID prefix and sorting by creation date. tags: - Deployments parameters: - $ref: '#/components/parameters/projectId' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/order' responses: '200': description: Deployments listed successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/Deployment' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: createDeployment summary: Create deployment description: >- Creates a new deployment for the specified project. A deployment consists of assets (code and static files), environment variables, compiler options, and optional KV database associations. Assets support UTF-8 text, base64-encoded binary, git SHA-1 references, and symlinks. tags: - Deployments parameters: - $ref: '#/components/parameters/projectId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDeploymentRequest' responses: '200': description: Deployment created successfully content: application/json: schema: $ref: '#/components/schemas/Deployment' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /deployments/{deploymentId}: get: operationId: getDeployment summary: Get deployment description: >- Retrieves the details of a specific deployment by its ID, including its status, associated project, domains, environment variables, and configuration. tags: - Deployments parameters: - $ref: '#/components/parameters/deploymentId' responses: '200': description: Deployment retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Deployment' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteDeployment summary: Delete deployment description: >- Permanently deletes a specific deployment. Active deployments serving traffic cannot be deleted until domains are detached. tags: - Deployments parameters: - $ref: '#/components/parameters/deploymentId' responses: '200': description: Deployment deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /deployments/{deploymentId}/redeploy: post: operationId: redeployDeployment summary: Redeploy deployment description: >- Creates a new deployment based on an existing one, optionally overriding environment variables and KV database associations. Environment variables support merge semantics so only specified keys are modified. tags: - Deployments parameters: - $ref: '#/components/parameters/deploymentId' requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/RedeployRequest' responses: '200': description: Redeployment created successfully content: application/json: schema: $ref: '#/components/schemas/Deployment' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /deployments/{deploymentId}/build_logs: get: operationId: getBuildLogs summary: Get build logs description: >- Retrieves the build logs for a deployment. Logs are returned as either a JSON array or newline-delimited JSON (NDJSON) depending on the Accept header. Build logs capture output from the deployment build process. tags: - Deployments parameters: - $ref: '#/components/parameters/deploymentId' responses: '200': description: Build logs retrieved successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/BuildLogEntry' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /deployments/{deploymentId}/app_logs: get: operationId: getAppLogs summary: Get application logs description: >- Retrieves or streams runtime application logs for a deployment. Supports filtering by log level, region, time range, and full-text search query. Cursor-based pagination is supported for large result sets. When no until parameter is specified, the endpoint streams logs in real time. tags: - Deployments parameters: - $ref: '#/components/parameters/deploymentId' - name: q in: query description: Full-text search query to filter log messages schema: type: string - name: level in: query description: Filter logs by severity level schema: type: string enum: [debug, info, warning, error] - name: region in: query description: Filter logs by the deployment region that emitted them schema: type: string - name: since in: query description: Return logs after this RFC 3339 timestamp schema: type: string format: date-time - name: until in: query description: Return logs before this RFC 3339 timestamp; omit to stream schema: type: string format: date-time - name: limit in: query description: Maximum number of log entries to return schema: type: integer minimum: 1 maximum: 300 - name: sort in: query description: Field to sort results by schema: type: string - name: order in: query description: Sort direction schema: type: string enum: [asc, desc] - name: cursor in: query description: Pagination cursor from a previous response Link header schema: type: string responses: '200': description: Application logs retrieved successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/AppLogEntry' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /deployments/{deploymentId}/domains/{domain}: put: operationId: attachDomainToDeployment summary: Attach domain to deployment description: >- Associates a custom domain with a specific deployment, routing all traffic for that domain to the deployment. The domain must already be registered and verified in the organization. tags: - Domains parameters: - $ref: '#/components/parameters/deploymentId' - name: domain in: path required: true description: The custom domain name to attach schema: type: string responses: '200': description: Domain attached successfully content: application/json: schema: $ref: '#/components/schemas/AttachDomainResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: detachDomainFromDeployment summary: Detach domain from deployment description: >- Removes the association between a custom domain and a deployment. After detachment, the domain no longer routes traffic to this deployment and can be attached to a different deployment. tags: - Domains parameters: - $ref: '#/components/parameters/deploymentId' - name: domain in: path required: true description: The custom domain name to detach schema: type: string responses: '200': description: Domain detached successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /organizations/{organizationId}/domains: get: operationId: listDomains summary: List domains description: >- Returns a paginated list of all custom domains registered within an organization. Includes verification status and TLS certificate information for each domain. tags: - Domains parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/order' responses: '200': description: Domains listed successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/Domain' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: createDomain summary: Create domain description: >- Registers a new custom domain within the organization. After creation, the domain must be verified via DNS before it can be attached to deployments. TLS certificates can be uploaded or automatically provisioned after verification. tags: - Domains parameters: - $ref: '#/components/parameters/organizationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDomainRequest' responses: '200': description: Domain created successfully content: application/json: schema: $ref: '#/components/schemas/Domain' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /domains/{domainId}: get: operationId: getDomain summary: Get domain description: >- Retrieves the details of a specific custom domain by its UUID, including its verification status, TLS certificate state, and current deployment association. tags: - Domains parameters: - $ref: '#/components/parameters/domainId' responses: '200': description: Domain retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Domain' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteDomain summary: Delete domain description: >- Permanently removes a custom domain from the organization. Any active deployment associations must be detached before the domain can be deleted. tags: - Domains parameters: - $ref: '#/components/parameters/domainId' responses: '200': description: Domain deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /domains/{domainId}/verify: post: operationId: verifyDomain summary: Verify domain ownership description: >- Triggers DNS-based verification for a custom domain. Deno Deploy checks for the presence of a DNS TXT record to confirm domain ownership before allowing the domain to serve traffic. tags: - Domains parameters: - $ref: '#/components/parameters/domainId' responses: '200': description: Domain verification initiated successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /domains/{domainId}/certificates: post: operationId: addDomainCertificate summary: Upload TLS certificate description: >- Uploads a custom TLS certificate and private key for a domain. The certificate must be valid for the domain and signed by a trusted certificate authority. Alternatively, certificates can be automatically provisioned via Let's Encrypt. tags: - Domains parameters: - $ref: '#/components/parameters/domainId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddDomainCertificateRequest' responses: '200': description: Certificate uploaded successfully '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /domains/{domainId}/certificates/provision: post: operationId: provisionDomainCertificates summary: Provision TLS certificate description: >- Automatically provisions a TLS certificate for a verified domain using Let's Encrypt. The domain must be verified before this endpoint can be called. tags: - Domains parameters: - $ref: '#/components/parameters/domainId' responses: '200': description: Certificate provisioning initiated successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /organizations/{organizationId}/databases: get: operationId: listKvDatabases summary: List KV databases description: >- Returns a paginated list of all Deno KV databases belonging to the organization. Each database can be associated with one or more deployments and supports optional S3 backup configuration. tags: - KV Databases parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/q' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/order' responses: '200': description: KV databases listed successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/KvDatabase' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: createKvDatabase summary: Create KV database description: >- Creates a new Deno KV database within the organization. The database can be given a descriptive name and subsequently associated with deployments to provide persistent, globally distributed key-value storage. tags: - KV Databases parameters: - $ref: '#/components/parameters/organizationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateKvDatabaseRequest' responses: '200': description: KV database created successfully content: application/json: schema: $ref: '#/components/schemas/KvDatabase' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /databases/{databaseId}: patch: operationId: updateKvDatabase summary: Update KV database description: >- Updates the name or description of an existing Deno KV database. Only the fields present in the request body are modified. tags: - KV Databases parameters: - $ref: '#/components/parameters/databaseId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateKvDatabaseRequest' responses: '200': description: KV database updated successfully content: application/json: schema: $ref: '#/components/schemas/KvDatabase' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /databases/{databaseId}/database_backups: get: operationId: listKvBackups summary: List KV database backups description: >- Returns a list of all backup configurations for a Deno KV database. Each backup entry includes the S3 destination, schedule, and current status of the backup job. tags: - KV Databases parameters: - $ref: '#/components/parameters/databaseId' responses: '200': description: KV database backups listed successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/KvDatabaseBackup' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: enableKvBackup summary: Enable KV database backup description: >- Enables automatic backups for a Deno KV database to an S3-compatible storage bucket. Backups are taken on a configurable schedule and stored in the specified S3 bucket using the provided credentials. tags: - KV Databases parameters: - $ref: '#/components/parameters/databaseId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnableKvBackupRequest' responses: '200': description: KV database backup enabled successfully content: application/json: schema: $ref: '#/components/schemas/EnableKvBackupResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /database_backups/{databaseBackupId}: get: operationId: getKvBackup summary: Get KV database backup description: >- Retrieves the details of a specific KV database backup configuration by its UUID, including current status and S3 destination. tags: - KV Databases parameters: - $ref: '#/components/parameters/databaseBackupId' responses: '200': description: KV database backup retrieved successfully content: application/json: schema: $ref: '#/components/schemas/KvDatabaseBackup' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: disableKvBackup summary: Disable KV database backup description: >- Disables automatic backups for a specific KV database backup configuration. Existing backup files in S3 are not removed. tags: - KV Databases parameters: - $ref: '#/components/parameters/databaseBackupId' responses: '200': description: KV database backup disabled successfully content: application/json: schema: $ref: '#/components/schemas/DisableKvBackupResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: securitySchemes: bearerAuth: type: http scheme: bearer description: >- Bearer token authentication. Generate tokens from the Deno Deploy dashboard under Settings > Access Tokens. parameters: organizationId: name: organizationId in: path required: true description: UUID of the organization schema: type: string format: uuid projectId: name: projectId in: path required: true description: UUID of the project schema: type: string format: uuid deploymentId: name: deploymentId in: path required: true description: Identifier of the deployment schema: type: string domainId: name: domainId in: path required: true description: UUID of the custom domain schema: type: string format: uuid databaseId: name: databaseId in: path required: true description: UUID of the KV database schema: type: string format: uuid databaseBackupId: name: databaseBackupId in: path required: true description: UUID of the KV database backup configuration schema: type: string format: uuid page: name: page in: query description: Page number for paginated results (1-based) schema: type: integer minimum: 1 default: 1 limit: name: limit in: query description: Maximum number of items to return per page schema: type: integer minimum: 1 maximum: 100 default: 20 q: name: q in: query description: Search query to filter results by name or identifier schema: type: string sort: name: sort in: query description: Field name to sort results by schema: type: string order: name: order in: query description: Sort order direction schema: type: string enum: [asc, desc] default: asc responses: BadRequest: description: Bad request - invalid parameters or request body content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized - missing or invalid Bearer token content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Not found - the requested resource does not exist content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object description: Standard error response returned by all API error conditions required: [error] properties: error: type: string description: Human-readable error message describing what went wrong Organization: type: object description: >- An organization on Deno Deploy. Organizations are the top-level billing and access-control containers that own projects, KV databases, and custom domains. required: [id, name] properties: id: type: string format: uuid description: Unique identifier for the organization name: type: string description: Human-readable name of the organization pro: type: boolean description: Whether the organization has an active Pro subscription features: type: object description: Feature flags enabled for this organization Analytics: type: object description: >- Time-series analytics data returned in 15-minute intervals for an organization or project. Covers request counts, bandwidth usage, and error rates over the specified time range. properties: fields: type: array description: Ordered list of field names present in each data row items: type: object properties: name: type: string description: Name of the analytics field type: type: string description: Data type of the field values values: type: array description: Array of data rows, each corresponding to a 15-minute interval items: type: array items: {} Project: type: object description: >- A Deno Deploy project, which is a container for multiple deployments. Each project has a unique name within its organization and can have custom domains and KV databases associated with it. required: [id, name, organizationId] properties: id: type: string format: uuid description: Unique identifier for the project name: type: string description: Human-readable name of the project, unique within the organization minLength: 3 maxLength: 26 pattern: '^[a-z][a-z0-9-]*$' organizationId: type: string format: uuid description: UUID of the organization that owns this project createdAt: type: string format: date-time description: ISO 8601 timestamp when the project was created updatedAt: type: string format: date-time description: ISO 8601 timestamp when the project was last modified CreateProjectRequest: type: object description: Request body for creating a new Deno Deploy project required: [name] properties: name: type: string description: >- Unique name for the project within the organization. Must be 3-26 characters, lowercase alphanumeric and hyphens only, and must start with a letter. minLength: 3 maxLength: 26 pattern: '^[a-z][a-z0-9-]*$' UpdateProjectRequest: type: object description: Request body for updating an existing Deno Deploy project properties: name: type: string description: New name for the project minLength: 3 maxLength: 26 pattern: '^[a-z][a-z0-9-]*$' Deployment: type: object description: >- An immutable deployment on Deno Deploy representing a specific version of code and configuration. Deployments are created from assets and serve traffic when associated with a custom domain or the project's default subdomain. required: [id, projectId, status] properties: id: type: string description: Unique identifier for the deployment projectId: type: string format: uuid description: UUID of the project this deployment belongs to status: type: string description: Current status of the deployment enum: [pending, failed, success] domains: type: array description: List of custom domains currently attached to this deployment items: type: string envVars: type: object description: Environment variables set for this deployment (values redacted) additionalProperties: type: string databases: type: object description: KV database associations keyed by the name used in the deployment additionalProperties: type: string format: uuid createdAt: type: string format: date-time description: ISO 8601 timestamp when the deployment was created updatedAt: type: string format: date-time description: ISO 8601 timestamp when the deployment was last modified CreateDeploymentRequest: type: object description: Request body for creating a new deployment required: [assets, entryPointUrl] properties: entryPointUrl: type: string description: >- Relative path to the entry point file within the assets, used as the main module when the deployment starts assets: type: object description: >- Map of file paths to asset objects. Keys are paths relative to the project root (e.g., "main.ts"). Values describe the asset content as text, base64-encoded binary, a git SHA-1 hash reference, or a symlink. additionalProperties: $ref: '#/components/schemas/DeploymentAsset' envVars: type: object description: Environment variables to set for this deployment additionalProperties: type: string databases: type: object description: >- Map of KV database association names to database UUIDs. The name becomes the database identifier accessible in the deployment code. additionalProperties: type: string format: uuid compilerOptions: $ref: '#/components/schemas/CompilerOptions' DeploymentAsset: type: object description: >- An individual asset included in a deployment. Assets can be UTF-8 text files, base64-encoded binary files, references to git blob objects by SHA-1 hash, or symbolic links. required: [kind] properties: kind: type: string description: The type of asset encoding enum: [file, symlink] content: type: string description: >- File content as a UTF-8 string (for text files) or base64-encoded string (for binary files) encoding: type: string description: Encoding format of the content field enum: [utf-8, base64] gitSha1: type: string description: >- SHA-1 hash of a previously uploaded git blob object. When specified, the content and encoding fields are ignored. pattern: '^[0-9a-f]{40}$' target: type: string description: Target path for symlink assets CompilerOptions: type: object description: TypeScript compiler options applied during deployment build properties: jsx: type: string description: JSX transform mode enum: [react, react-jsx, react-jsxdev, preserve] jsxFactory: type: string description: Function used to create JSX elements (default is React.createElement) jsxFragmentFactory: type: string description: Function used to create JSX fragments (default is React.Fragment) jsxImportSource: type: string description: Module specifier used as the source for JSX automatic runtime imports RedeployRequest: type: object description: >- Request body for redeploying an existing deployment with optional modifications to environment variables and KV database associations. Environment variable changes use merge semantics. properties: envVars: type: object description: >- Environment variables to merge into the redeployment. Only specified keys are modified; unspecified keys retain their original values. additionalProperties: type: string databases: type: object description: KV database associations to apply to the redeployment additionalProperties: type: string format: uuid BuildLogEntry: type: object description: A single entry from a deployment's build log properties: level: type: string description: Log level of the entry enum: [debug, info, warning, error] message: type: string description: Log message content ts: type: string format: date-time description: ISO 8601 timestamp when the log entry was produced AppLogEntry: type: object description: A single runtime application log entry from a running deployment properties: level: type: string description: Log severity level enum: [debug, info, warning, error] message: type: string description: Log message content region: type: string description: Deno Deploy region where the log was emitted deploymentId: type: string description: Identifier of the deployment that produced this log entry ts: type: string format: date-time description: ISO 8601 timestamp when the log entry was produced Domain: type: object description: >- A custom domain registered within a Deno Deploy organization. Domains must be verified via DNS before they can serve traffic, and TLS certificates must be uploaded or provisioned before HTTPS is enabled. required: [id, domain] properties: id: type: string format: uuid description: Unique identifier for the domain registration domain: type: string description: The custom domain name (e.g., example.com) token: type: string description: DNS TXT record value to add for domain ownership verification isValidated: type: boolean description: Whether domain ownership has been successfully verified certificates: type: array description: TLS certificates associated with this domain items: $ref: '#/components/schemas/DomainCertificate' provisioningStatus: $ref: '#/components/schemas/ProvisioningStatus' createdAt: type: string format: date-time description: ISO 8601 timestamp when the domain was registered updatedAt: type: string format: date-time description: ISO 8601 timestamp when the domain was last modified DomainCertificate: type: object description: A TLS certificate associated with a custom domain properties: cipher: type: string description: Cipher suite used by the certificate (e.g., RSA, EC) expiresAt: type: string format: date-time description: ISO 8601 timestamp when the certificate expires createdAt: type: string format: date-time description: ISO 8601 timestamp when the certificate was added updatedAt: type: string format: date-time description: ISO 8601 timestamp when the certificate was last updated ProvisioningStatus: type: object description: Current status of automatic TLS certificate provisioning properties: code: type: string description: Status code indicating the provisioning state enum: [success, failed, pending, manual] CreateDomainRequest: type: object description: Request body for registering a new custom domain required: [domain] properties: domain: type: string description: The fully qualified domain name to register (e.g., example.com) AddDomainCertificateRequest: type: object description: Request body for uploading a custom TLS certificate for a domain required: [certificatePem, privateKeyPem] properties: certificatePem: type: string description: PEM-encoded TLS certificate chain privateKeyPem: type: string description: PEM-encoded private key corresponding to the certificate AttachDomainResponse: type: object description: Response returned when a domain is successfully attached to a deployment properties: domainId: type: string format: uuid description: UUID of the domain that was attached deploymentId: type: string description: Identifier of the deployment the domain was attached to KvDatabase: type: object description: >- A Deno KV database managed by Deno Deploy. KV databases provide globally distributed key-value storage accessible from deployments via the Deno.openKv() API. Databases can be associated with one or more deployments. required: [databaseId] properties: databaseId: type: string format: uuid description: Unique identifier for the KV database description: type: string description: Human-readable description of the database kvConnect: type: string format: uri description: >- KV Connect URL used to open the database from a Deno program: https://api.deno.com/databases/{database-id}/connect createdAt: type: string format: date-time description: ISO 8601 timestamp when the database was created updatedAt: type: string format: date-time description: ISO 8601 timestamp when the database was last modified CreateKvDatabaseRequest: type: object description: Request body for creating a new Deno KV database properties: description: type: string description: Optional human-readable description for the new database UpdateKvDatabaseRequest: type: object description: Request body for updating an existing Deno KV database properties: description: type: string description: New description for the database KvDatabaseBackup: type: object description: >- A backup configuration for a Deno KV database, specifying an S3 storage destination and schedule for automatic backups. required: [id, databaseId] properties: id: type: string format: uuid description: Unique identifier for the backup configuration databaseId: type: string format: uuid description: UUID of the KV database being backed up bucketName: type: string description: Name of the S3 bucket where backups are stored bucketRegion: type: string description: AWS region of the S3 bucket status: type: string description: Current status of the backup job enum: [pending, active, failed, disabled] createdAt: type: string format: date-time description: ISO 8601 timestamp when the backup was configured updatedAt: type: string format: date-time description: ISO 8601 timestamp when the backup configuration was last modified EnableKvBackupRequest: type: object description: Request body for enabling S3 backup for a Deno KV database required: [bucketName, bucketRegion, accessKeyId, secretAccessKey] properties: bucketName: type: string description: Name of the S3 bucket to store backups in bucketRegion: type: string description: AWS region of the S3 bucket (e.g., us-east-1) accessKeyId: type: string description: AWS access key ID for S3 write access secretAccessKey: type: string description: AWS secret access key for S3 write access EnableKvBackupResponse: type: object description: Response returned when KV backup is successfully enabled properties: id: type: string format: uuid description: UUID of the newly created backup configuration DisableKvBackupResponse: type: object description: Response returned when KV backup is successfully disabled properties: id: type: string format: uuid description: UUID of the disabled backup configuration