linode Linode Instances API
Create and manage Linode compute instances, including configuration profiles, disks, backups, networking, migration, resize, and rebuild operations.
Create and manage Linode compute instances, including configuration profiles, disks, backups, networking, migration, resize, and rebuild operations.
openapi: 3.1.0
info:
title: Linode API v4 Account Linode Instances 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: Linode Instances
description: Create and manage Linode compute instances, including configuration profiles, disks, backups, networking, migration, resize, and rebuild operations.
paths:
/linode/instances:
get:
operationId: getLinodeInstances
summary: List Linodes
description: Returns a paginated list of Linode instances on your account, including their status, region, type, and IP addresses.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Linode instances retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedLinodeList'
'401':
description: Unauthorized - invalid or missing authentication
post:
operationId: createLinodeInstance
summary: Create a Linode
description: Creates a new Linode instance. Requires a region, type, and either an image or backup to deploy from. Optionally accepts root password, authorized keys, StackScript, and other configuration options.
tags:
- Linode Instances
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeRequest'
responses:
'200':
description: Linode instance created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
/linode/instances/{linodeId}:
get:
operationId: getLinodeInstance
summary: Get a Linode
description: Returns the details for a single Linode instance, including its status, region, type, IP addresses, and configuration.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
responses:
'200':
description: Linode instance retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
put:
operationId: updateLinodeInstance
summary: Update a Linode
description: Updates a Linode instance, including its label, group, alerts, and watchdog settings.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeUpdateRequest'
responses:
'200':
description: Linode instance updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
delete:
operationId: deleteLinodeInstance
summary: Delete a Linode
description: Deletes a Linode instance. All disks, backups, and IP addresses associated with the instance will be permanently removed.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
responses:
'200':
description: Linode instance deleted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/boot:
post:
operationId: bootLinodeInstance
summary: Boot a Linode
description: Boots a Linode instance. Optionally specify a configuration profile to boot with.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
requestBody:
content:
application/json:
schema:
type: object
properties:
config_id:
type: integer
description: The ID of the configuration profile to boot with.
responses:
'200':
description: Linode instance booted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/reboot:
post:
operationId: rebootLinodeInstance
summary: Reboot a Linode
description: Reboots a Linode instance. Optionally specify a configuration profile to boot with after the reboot.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
requestBody:
content:
application/json:
schema:
type: object
properties:
config_id:
type: integer
description: The ID of the configuration profile to boot with.
responses:
'200':
description: Linode instance rebooted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/shutdown:
post:
operationId: shutdownLinodeInstance
summary: Shut down a Linode
description: Shuts down a running Linode instance. The instance will be placed in an offline state.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
responses:
'200':
description: Linode instance shut down successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/resize:
post:
operationId: resizeLinodeInstance
summary: Resize a Linode
description: Resizes a Linode instance to a new plan type. The instance must be powered off or will be automatically shut down during the resize.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- type
properties:
type:
type: string
description: The Linode type ID to resize to.
allow_auto_disk_resize:
type: boolean
description: Whether to automatically resize the primary disk.
default: true
responses:
'200':
description: Linode instance resize initiated successfully
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/rebuild:
post:
operationId: rebuildLinodeInstance
summary: Rebuild a Linode
description: Rebuilds a Linode instance with a new image. All existing disks will be destroyed and a new root disk will be created.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeRebuildRequest'
responses:
'200':
description: Linode instance rebuild initiated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/clone:
post:
operationId: cloneLinodeInstance
summary: Clone a Linode
description: Clones a Linode instance to a new or existing instance. The clone will include the source instance's disks and configuration profiles.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
region:
type: string
description: The region to clone to.
type:
type: string
description: The Linode type for the new clone.
label:
type: string
description: The label for the new clone.
linode_id:
type: integer
description: An existing Linode ID to clone to.
responses:
'200':
description: Linode instance clone initiated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Linode'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/backups:
get:
operationId: getBackups
summary: List backups
description: Returns the available backups for a Linode instance, including automatic daily and weekly snapshots.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
responses:
'200':
description: Backups retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/BackupResponse'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/disks:
get:
operationId: getLinodeDisks
summary: List disks
description: Returns a paginated list of disks attached to a Linode instance.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Disks retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedDiskList'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/configs:
get:
operationId: getLinodeConfigs
summary: List configuration profiles
description: Returns a paginated list of configuration profiles for a Linode instance.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Configuration profiles retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedConfigList'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/instances/{linodeId}/ips:
get:
operationId: getLinodeIPs
summary: Get networking information
description: Returns networking information for a Linode instance, including its IPv4 and IPv6 addresses.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/linodeIdParam'
responses:
'200':
description: Networking information retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LinodeIPAddresses'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Linode instance not found
/linode/types:
get:
operationId: getLinodeTypes
summary: List types
description: Returns a paginated list of available Linode instance types, including their resources, pricing, and availability.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Linode types retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedLinodeTypeList'
/linode/kernels:
get:
operationId: getKernels
summary: List kernels
description: Returns a paginated list of available kernels that can be used with Linode instances.
tags:
- Linode Instances
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Kernels retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedKernelList'
components:
schemas:
IPv6Address:
type: object
properties:
address:
type: string
description: The IPv6 address.
prefix:
type: integer
description: The network prefix length.
rdns:
type: string
description: The reverse DNS entry.
type:
type: string
description: The type of IPv6 address.
region:
type: string
description: The region for this address.
IPv6Range:
type: object
properties:
range:
type: string
description: The IPv6 range.
prefix:
type: integer
description: The prefix length.
region:
type: string
description: The region for this range.
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.
LinodeRequest:
type: object
required:
- region
- type
properties:
region:
type: string
description: The region where the Linode will be created.
type:
type: string
description: The Linode type to deploy.
image:
type: string
description: The image to deploy with. Required if no backup_id is provided.
label:
type: string
minLength: 3
maxLength: 64
pattern: ^[a-zA-Z]((?!--|__)[a-zA-Z0-9-_])+$
description: The label for the new Linode instance.
root_pass:
type: string
description: The root password for the new Linode instance.
authorized_keys:
type: array
items:
type: string
description: A list of public SSH keys to deploy with.
authorized_users:
type: array
items:
type: string
description: A list of usernames whose SSH keys to deploy.
tags:
type: array
items:
type: string
description: Tags for the new Linode.
stackscript_id:
type: integer
description: A StackScript ID to deploy with.
stackscript_data:
type: object
additionalProperties:
type: string
description: UDF data for the StackScript.
backup_id:
type: integer
description: A backup ID to restore from.
backups_enabled:
type: boolean
description: Whether to enable the backup service.
private_ip:
type: boolean
description: Whether to assign a private IPv4 address.
booted:
type: boolean
default: true
description: Whether the new Linode should be booted after creation.
Linode:
type: object
properties:
id:
type: integer
description: The unique ID of this Linode instance.
label:
type: string
description: The label for this Linode instance.
region:
type: string
description: The region where this Linode is located.
type:
type: string
description: The Linode type ID of this instance.
image:
type: string
description: The image ID used to deploy this Linode.
status:
type: string
enum:
- running
- offline
- booting
- rebooting
- shutting_down
- provisioning
- deleting
- migrating
- rebuilding
- cloning
- restoring
- stopped
description: The current status of the Linode instance.
ipv4:
type: array
items:
type: string
format: ipv4
description: The IPv4 addresses associated with this Linode.
ipv6:
type: string
description: The IPv6 SLAAC address for this Linode.
created:
type: string
format: date-time
description: When this Linode was created.
updated:
type: string
format: date-time
description: When this Linode was last updated.
group:
type: string
description: The display group for this Linode.
deprecated: true
tags:
type: array
items:
type: string
description: Tags applied to this Linode for organizational purposes.
hypervisor:
type: string
description: The hypervisor this Linode is running on.
specs:
type: object
properties:
disk:
type: integer
description: The amount of disk space in MB.
memory:
type: integer
description: The amount of RAM in MB.
vcpus:
type: integer
description: The number of virtual CPUs.
gpus:
type: integer
description: The number of GPUs.
transfer:
type: integer
description: The monthly network transfer quota in GB.
description: The hardware specifications for this Linode type.
alerts:
type: object
properties:
cpu:
type: integer
description: CPU usage alert threshold percentage.
io:
type: integer
description: Disk IO rate alert threshold.
network_in:
type: integer
description: Incoming network traffic alert threshold in Mb/s.
network_out:
type: integer
description: Outgoing network traffic alert threshold in Mb/s.
transfer_quota:
type: integer
description: Transfer quota usage alert threshold percentage.
description: Alert thresholds for this Linode instance.
backups:
type: object
properties:
enabled:
type: boolean
description: Whether the backup service is enabled.
available:
type: boolean
description: Whether any backups are available.
schedule:
type: object
properties:
day:
type: string
description: The day of the week for automatic backups.
window:
type: string
description: The window for automatic backups.
description: Information about this Linode's backup service.
watchdog_enabled:
type: boolean
description: Whether Lassie the watchdog is enabled to restart this Linode if it crashes.
Backup:
type: object
properties:
id:
type: integer
description: The unique ID of this backup.
type:
type: string
enum:
- auto
- snapshot
description: The type of backup.
status:
type: string
enum:
- paused
- pending
- running
- needsPostProcessing
- successful
- failed
- userAborted
description: The status of this backup.
created:
type: string
format: date-time
description: When this backup was created.
updated:
type: string
format: date-time
description: When this backup was last updated.
finished:
type: string
format: date-time
description: When this backup finished.
label:
type: string
description: The label for snapshot backups.
disks:
type: array
items:
type: object
properties:
label:
type: string
size:
type: integer
filesystem:
type: string
description: Disk information for this backup.
BackupResponse:
type: object
properties:
automatic:
type: array
items:
$ref: '#/components/schemas/Backup'
description: Automatic backups.
snapshot:
type: object
properties:
current:
$ref: '#/components/schemas/Backup'
in_progress:
$ref: '#/components/schemas/Backup'
description: Snapshot backups.
IPAddress:
type: object
properties:
address:
type: string
description: The IP address.
gateway:
type: string
description: The default gateway.
subnet_mask:
type: string
description: The subnet mask.
prefix:
type: integer
description: The network prefix length.
type:
type: string
enum:
- ipv4
- ipv6
description: The type of IP address.
public:
type: boolean
description: Whether this is a public IP address.
rdns:
type: string
description: The reverse DNS entry for this address.
linode_id:
type: integer
description: The ID of the Linode this IP is assigned to.
region:
type: string
description: The region for this IP address.
LinodeRebuildRequest:
type: object
required:
- image
- root_pass
properties:
image:
type: string
description: The image to rebuild with.
root_pass:
type: string
description: The root password for the rebuilt instance.
authorized_keys:
type: array
items:
type: string
description: A list of public SSH keys.
authorized_users:
type: array
items:
type: string
description: A list of usernames whose SSH keys to deploy.
stackscript_id:
type: integer
description: A StackScript ID to deploy with.
stackscript_data:
type: object
additionalProperties:
type: string
description: UDF data for the StackScript.
booted:
type: boolean
default: true
description: Whether to boot after rebuild.
PaginatedLinodeTypeList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
label:
type: string
class:
type: string
enum:
- nanode
- standard
- dedicated
- gpu
- highmem
- premium
disk:
type: integer
memory:
type: integer
vcpus:
type: integer
gpus:
type: integer
transfer:
type: integer
network_out:
type: integer
price:
type: object
properties:
hourly:
type: number
monthly:
type: number
PaginatedConfigList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: integer
label:
type: string
kernel:
type: string
run_level:
type: string
enum:
- default
- single
- binbash
virt_mode:
type: string
enum:
- paravirt
- fullvirt
root_device:
type: string
memory_limit:
type: integer
PaginatedDiskList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: integer
label:
type: string
status:
type: string
enum:
- ready
- not ready
- deleting
size:
type: integer
filesystem:
type: string
enum:
- raw
- swap
- ext3
- ext4
- initrd
created:
type: string
format: date-time
updated:
type: string
format: date-time
PaginatedLinodeList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Linode'
PaginatedKernelList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
label:
type: string
version:
type: string
architecture:
type: string
enum:
- x86_64
- i386
LinodeUpdateRequest:
type: object
properties:
label:
type: string
minLength: 3
maxLength: 64
description: The label for the Linode instance.
tags:
type: array
items:
type: string
description: Tags for the Linode.
watchdog_enabled:
type: boolean
description: Whether to enable Lassie the watchdog.
alerts:
type: object
properties:
cpu:
type: integer
io:
type: integer
network_in:
type: integer
network_out:
type: integer
transfer_quota:
type: integer
LinodeIPAddresses:
type: object
properties:
ipv4:
type: object
properties:
public:
type: array
items:
$ref: '#/components/schemas/IPAddress'
description: Public IPv4 addresses.
private:
type: array
items:
$ref: '#/components/schemas/IPAddress'
description: Private IPv4 addresses.
shared:
type: array
items:
$ref: '#/components/schemas/IPAddress'
description: Shared IPv4 addresses.
reserved:
type: array
items:
$ref: '#/components/schemas/IPAddress'
description: Reserved IPv4 addresses.
ipv6:
type: object
properties:
slaac:
$ref: '#/components/schemas/IPv6Address'
link_local:
$ref: '#/components/schemas/IPv6Address'
global:
type: array
items:
$ref: '#/components/schemas/IPv6Range'
parameters:
linodeIdParam:
name: linodeId
in: path
required: true
schema:
type: integer
description: The ID of the Linode instance.
pageSizeParam:
name: page_size
in: query
schema:
type: integer
minimum: 25
maximum: 500
default: 100
description: The number of items per page.
pageParam:
name: page
in: query
schema:
type: integer
minimum: 1
default: 1
description: The page number to return.
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 even
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/linode/refs/heads/main/openapi/linode-linode-instances-api-openapi.yml