linode Domains API
Manage DNS domains and their associated resource records including A, AAAA, CNAME, MX, TXT, SRV, CAA, and NS records.
Manage DNS domains and their associated resource records including A, AAAA, CNAME, MX, TXT, SRV, CAA, and NS records.
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/linode-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: Linode API v4 Account Domains API
description: The Linode API v4 provides programmatic access to the full range of Akamai Connected Cloud (formerly Linode) products and services. It enables developers to create and manage compute instances, deploy Kubernetes clusters, configure NodeBalancers, manage DNS domains, provision Block Storage volumes, control Object Storage buckets, set up firewalls, and administer account settings. The RESTful API uses OAuth and personal access tokens for authentication and returns JSON responses, with support for filtering and sorting across all resource endpoints.
version: 4.189.0
contact:
name: Linode Support
url: https://www.linode.com/support/
termsOfService: https://www.linode.com/legal-tos/
servers:
- url: https://api.linode.com/v4
description: Production Server
security:
- personalAccessToken: []
- oauth: []
tags:
- name: Domains
description: Manage DNS domains and their associated resource records including A, AAAA, CNAME, MX, TXT, SRV, CAA, and NS records.
paths:
/domains:
get:
operationId: getDomains
summary: List domains
description: Returns a paginated list of all domains on your account, including their status, type, and SOA email address.
tags:
- Domains
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Domains retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedDomainList'
'401':
description: Unauthorized - invalid or missing authentication
post:
operationId: createDomain
summary: Create a domain
description: Creates a new domain on your account. The domain can be a master or slave zone type.
tags:
- Domains
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRequest'
responses:
'200':
description: Domain created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
/domains/{domainId}:
get:
operationId: getDomain
summary: Get a domain
description: Returns the details for a single domain on your account.
tags:
- Domains
parameters:
- $ref: '#/components/parameters/domainIdParam'
responses:
'200':
description: Domain retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Domain not found
put:
operationId: updateDomain
summary: Update a domain
description: Updates the configuration for a domain on your account.
tags:
- Domains
parameters:
- $ref: '#/components/parameters/domainIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRequest'
responses:
'200':
description: Domain updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Domain'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Domain not found
delete:
operationId: deleteDomain
summary: Delete a domain
description: Deletes a domain from your account. All associated DNS records will also be deleted.
tags:
- Domains
parameters:
- $ref: '#/components/parameters/domainIdParam'
responses:
'200':
description: Domain deleted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Domain not found
/domains/{domainId}/records:
get:
operationId: getDomainRecords
summary: List domain records
description: Returns a paginated list of all DNS records for a given domain.
tags:
- Domains
parameters:
- $ref: '#/components/parameters/domainIdParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Domain records retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedDomainRecordList'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Domain not found
post:
operationId: createDomainRecord
summary: Create a domain record
description: Creates a new DNS record for the given domain.
tags:
- Domains
parameters:
- $ref: '#/components/parameters/domainIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecordRequest'
responses:
'200':
description: Domain record created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRecord'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Domain not found
components:
schemas:
Domain:
type: object
properties:
id:
type: integer
description: The unique ID of this domain.
domain:
type: string
description: The domain name.
type:
type: string
enum:
- master
- slave
description: Whether this is a master or slave zone.
status:
type: string
enum:
- active
- disabled
- edit_mode
description: The status of this domain.
soa_email:
type: string
format: email
description: The SOA email address for this domain.
description:
type: string
description: A description for this domain.
tags:
type: array
items:
type: string
description: Tags for this domain.
created:
type: string
format: date-time
description: When this domain was created.
updated:
type: string
format: date-time
description: When this domain was last updated.
ttl_sec:
type: integer
description: The default TTL in seconds.
retry_sec:
type: integer
description: The retry interval in seconds.
refresh_sec:
type: integer
description: The refresh interval in seconds.
expire_sec:
type: integer
description: The expiry time in seconds.
PaginatedDomainRecordList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/DomainRecord'
Pagination:
type: object
properties:
page:
type: integer
description: The current page number.
pages:
type: integer
description: The total number of pages.
results:
type: integer
description: The total number of results.
DomainRequest:
type: object
required:
- domain
- type
properties:
domain:
type: string
description: The domain name.
type:
type: string
enum:
- master
- slave
description: Whether this is a master or slave zone.
soa_email:
type: string
format: email
description: The SOA email address.
description:
type: string
description: A description for this domain.
tags:
type: array
items:
type: string
description: Tags for this domain.
PaginatedDomainList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Domain'
DomainRecordRequest:
type: object
required:
- type
properties:
type:
type: string
enum:
- A
- AAAA
- NS
- MX
- CNAME
- TXT
- SRV
- PTR
- CAA
description: The type of DNS record.
name:
type: string
description: The hostname or FQDN.
target:
type: string
description: The target value.
priority:
type: integer
description: The priority for MX and SRV records.
weight:
type: integer
description: The weight for SRV records.
port:
type: integer
description: The port for SRV records.
ttl_sec:
type: integer
description: The TTL in seconds.
DomainRecord:
type: object
properties:
id:
type: integer
description: The unique ID of this domain record.
type:
type: string
enum:
- A
- AAAA
- NS
- MX
- CNAME
- TXT
- SRV
- PTR
- CAA
description: The type of DNS record.
name:
type: string
description: The hostname or FQDN for this record.
target:
type: string
description: The target for this record.
priority:
type: integer
description: The priority for MX and SRV records.
weight:
type: integer
description: The weight for SRV records.
port:
type: integer
description: The port for SRV records.
ttl_sec:
type: integer
description: The TTL in seconds for this record.
tag:
type: string
description: The tag for CAA records.
parameters:
pageParam:
name: page
in: query
schema:
type: integer
minimum: 1
default: 1
description: The page number to return.
pageSizeParam:
name: page_size
in: query
schema:
type: integer
minimum: 25
maximum: 500
default: 100
description: The number of items per page.
domainIdParam:
name: domainId
in: path
required: true
schema:
type: integer
description: The ID of the domain.
securitySchemes:
personalAccessToken:
type: http
scheme: bearer
description: A personal access token generated from the Linode Cloud Manager that grants access to the API based on the token's scopes.
oauth:
type: oauth2
description: OAuth 2.0 authentication for third-party applications.
flows:
authorizationCode:
authorizationUrl: https://login.linode.com/oauth/authorize
tokenUrl: https://login.linode.com/oauth/token
scopes:
account:read_only: Read access to account information
account:read_write: Read and write access to account information
domains:read_only: Read access to domains
domains:read_write: Read and write access to domains
events:read_only: Read access to events
events:read_write: Read and write access to events
firewall:read_only: Read access to firewalls
firewall:read_write: Read and write access to firewalls
images:read_only: Read access to images
images:read_write: Read and write access to images
ips:read_only: Read access to IP addresses
ips:read_write: Read and write access to IP addresses
linodes:read_only: Read access to Linodes
linodes:read_write: Read and write access to Linodes
lke:read_only: Read access to LKE
lke:read_write: Read and write access to LKE
longview:read_only: Read access to Longview
longview:read_write: Read and write access to Longview
nodebalancers:read_only: Read access to NodeBalancers
nodebalancers:read_write: Read and write access to NodeBalancers
object_storage:read_only: Read access to Object Storage
object_storage:read_write: Read and write access to Object Storage
stackscripts:read_only: Read access to StackScripts
stackscripts:read_write: Read and write access to StackScripts
volumes:read_only: Read access to Volumes
volumes:read_write: Read and write access to Volumes
vpc:read_only: Read access to VPCs
vpc:read_write: Read and write access to VPCs
externalDocs:
description: Linode API v4 Documentation
url: https://techdocs.akamai.com/linode-api/reference/api