Deno Domains API
Register and manage custom domains with TLS certificate support
Register and manage custom domains with TLS certificate support
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/deno-domains-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Deno Deploy REST Apps Domains 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: Domains
description: Register and manage custom domains with TLS certificate support
paths:
/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'
components:
schemas:
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
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
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
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)
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
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
parameters:
domainId:
name: domainId
in: path
required: true
description: UUID of the custom domain
schema:
type: string
format: uuid
order:
name: order
in: query
description: Sort order direction
schema:
type: string
enum:
- asc
- desc
default: asc
deploymentId:
name: deploymentId
in: path
required: true
description: Identifier of the deployment
schema:
type: string
q:
name: q
in: query
description: Search query to filter results by name or identifier
schema:
type: string
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
sort:
name: sort
in: query
description: Field name to sort results by
schema:
type: string
organizationId:
name: organizationId
in: path
required: true
description: UUID of the organization
schema:
type: string
format: uuid
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/