Deno Deployments API
Create, list, retrieve, redeploy, and delete deployments; access build and app logs
Create, list, retrieve, redeploy, and delete deployments; access build and app logs
openapi: 3.1.0
info:
title: Deno Deploy REST Apps Deployments 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
servers:
- url: https://api.deno.com/v1
description: Deno Deploy Production API
security:
- bearerAuth: []
tags:
- name: Deployments
description: Create, list, retrieve, redeploy, and delete deployments; access build and app logs
paths:
/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'
components:
schemas:
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
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
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'
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
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
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
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
parameters:
deploymentId:
name: deploymentId
in: path
required: true
description: Identifier of the deployment
schema:
type: string
sort:
name: sort
in: query
description: Field name to sort results by
schema:
type: string
page:
name: page
in: query
description: Page number for paginated results (1-based)
schema:
type: integer
minimum: 1
default: 1
projectId:
name: projectId
in: path
required: true
description: UUID of the project
schema:
type: string
format: uuid
q:
name: q
in: query
description: Search query to filter results by name or identifier
schema:
type: string
order:
name: order
in: query
description: Sort order direction
schema:
type: string
enum:
- asc
- desc
default: asc
limit:
name: limit
in: query
description: Maximum number of items to return per page
schema:
type: integer
minimum: 1
maximum: 100
default: 20
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'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Bearer token authentication. Generate tokens from the Deno Deploy dashboard under Settings > Access Tokens.
externalDocs:
description: Deno Deploy REST API Documentation
url: https://docs.deno.com/deploy/api/rest/