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 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