integrations.sh
← all integrations

Linode API

OpenAPI apis-guru cloud

Introduction

The Linode API provides the ability to programmatically manage the full range of Linode products and services.

This reference is designed to assist application developers and system administrators. Each endpoint includes descriptions, request syntax, and examples using standard HTTP requests. Response data is returned in JSON format.

This document was generated from our OpenAPI Specification. See the for more information.

.

Changelog

to see release notes on all changes made to our API.

Access and Authentication

Some endpoints are publicly accessible without requiring authentication. All endpoints affecting your Account, however, require either a Personal Access Token or OAuth authentication (when using third-party applications).

Personal Access Token

The easiest way to access the API is with a Personal Access Token (PAT) generated from the or the endpoint.

All scopes for the OAuth security model () apply to this security model as well.

Authentication

Security Scheme Type:HTTP
HTTP Authorization Schemebearer

OAuth

If you only need to access the Linode API for personal use, we recommend that you create a . If you're designing an application that can authenticate with an arbitrary Linode user, then you should use the OAuth 2.0 workflows presented in this section.

For a more detailed example of an OAuth 2.0 implementation, see our guide on .

Before you implement OAuth in your application, you first need to create an OAuth client. You can do this or :

  • When creating the client, you'll supply a label and a redirect_uri (referred to as the Callback URL in the Cloud Manager).
  • The response from this endpoint will give you a client_id and a secret.
  • Clients can be public or private, and are private by default. You can choose to make the client public when it is created.
    • A private client is used with applications which can securely store the client secret (that is, the secret returned to you when you first created the client). For example, an application running on a secured server that only the developer has access to would use a private OAuth client. This is also called a confidential client in some OAuth documentation.
    • A public client is used with applications where the client secret is not guaranteed to be secure. For example, a native app running on a user's computer may not be able to keep the client secret safe, as a user could potentially inspect the source of the application. So, native apps or apps that run in a user's browser should use a public client.
    • Public and private clients follow different workflows, as described below.

OAuth Workflow

The OAuth workflow is a series of exchanges between your third-party app and Linode. The workflow is used to authenticate a user before an application can start making API calls on the user's behalf.

Notes:

  • With respect to the diagram in , login.linode.com (referred to in this section as the login server) is the Resource Owner and the Authorization Server; api.linode.com (referred to here as the api server) is the Resource Server.
  • The OAuth spec refers to the private and public workflows listed below as the and .
PRIVATE WORKFLOWPUBLIC WORKFLOW
1. The user visits the application's website and is directed to login with Linode.1. The user visits the application's website and is directed to login with Linode.
2. Your application then redirects the user to Linode's with the client application's client_id and requested OAuth scope, which should appear in the URL of the login page.2. Your application then redirects the user to Linode's with the client application's client_id and requested OAuth scope, which should appear in the URL of the login page.
3. The user logs into the login server with their username and password.3. The user logs into the login server with their username and password.
4. The login server redirects the user to the specificed redirect URL with a temporary authorization code (exchange code) in the URL.4. The login server redirects the user back to your application with an OAuth access_token embedded in the redirect URL's hash. This is temporary and expires in two hours. No refresh_token is issued. Therefore, once the access_token expires, a new one will need to be issued by having the user log in again.
5. The application issues a POST request (see additional details below) to the login server with the exchange code, client_id, and the client application's client_secret.
6. The login server responds to the client application with a new OAuth access_token and refresh_token. The access_token is set to expire in two hours.
7. The refresh_token can be used by contacting the login server with the client_id, client_secret, grant_type, and refresh_token to get a new OAuth access_token and refresh_token. The new access_token is good for another two hours, and the new refresh_token can be used to extend the session again by this same method (see additional details below).

OAuth Private Workflow - Additional Details

The following information expands on steps 5 through 7 of the private workflow:

Once the user has logged into Linode and you have received an exchange code, you will need to trade that exchange code for an access_token and refresh_token. You do this by making an HTTP POST request to the following address:

https://login.linode.com/oauth/token

Make this request as application/x-www-form-urlencoded or as multipart/form-data and include the following parameters in the POST body:

PARAMETERDESCRIPTION
client_idYour app's client ID.
client_secretYour app's client secret.
codeThe code you just received from the redirect.

You'll get a response like this:

json
{  "scope": "linodes:read_write",  "access_token": "03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c",  "refresh_token": "f2ec9712e616fdb5a2a21aa0e88cfadea7502ebc62cf5bd758dbcd65e1803bad",  "token_type": "bearer",  "expires_in": 7200}

Included in the response is an access_token. With this token, you can proceed to make authenticated HTTP requests to the API by adding this header to each request:

Authorization: Bearer 03d084436a6c91fbafd5c4b20c82e5056a2e9ce1635920c30dc8d81dc7a6665c

This access_token is set to expire in two hours. To refresh access prior to expiration, make another request to the same URL with the following parameters in the POST body:

PARAMETERDESCRIPTION
grant_typeThe grant type you're using. Use "refresh_token" when refreshing access.
client_idYour app's client ID.
client_secretYour app's client secret.
refresh_tokenThe refresh_token received from the previous response.

You'll get another response with an updated access_token and refresh_token, which can then be used to refresh access again.

OAuth Reference

Security Scheme TypeOAuth 2.0
Authorization URL
Token URL
Scopes
  • account:read_only - Allows access to GET information about your Account.
  • account:read_write - Allows access to all endpoints related to your Account.
  • databases:read_only - Allows access to GET Managed Databases on your Account.
  • databases:read_write - Allows access to all endpoints related to your Managed Databases.
  • domains:read_only - Allows access to GET Domains on your Account.
  • domains:read_write - Allows access to all Domain endpoints.
  • events:read_only - Allows access to GET your Events.
  • events:read_write - Allows access to all endpoints related to your Events.
  • firewall:read_only - Allows access to GET information about your Firewalls.
  • firewall:read_write - Allows access to all Firewall endpoints.
  • images:read_only - Allows access to GET your Images.
  • images:read_write - Allows access to all endpoints related to your Images.
  • ips:read_only - Allows access to GET your ips.
  • ips:read_write - Allows access to all endpoints related to your ips.
  • linodes:read_only - Allows access to GET Linodes on your Account.
  • linodes:read_write - Allow access to all endpoints related to your Linodes.
  • lke:read_only - Allows access to GET LKE Clusters on your Account.
  • lke:read_write - Allows access to all endpoints related to LKE Clusters on your Account.
  • longview:read_only - Allows access to GET your Longview Clients.
  • longview:read_write - Allows access to all endpoints related to your Longview Clients.
  • nodebalancers:read_only - Allows access to GET NodeBalancers on your Account.
  • nodebalancers:read_write - Allows access to all NodeBalancer endpoints.
  • object_storage:read_only - Allows access to GET information related to your Object Storage.
  • object_storage:read_write - Allows access to all Object Storage endpoints.
  • stackscripts:read_only - Allows access to GET your StackScripts.
  • stackscripts:read_write - Allows access to all endpoints related to your StackScripts.
  • volumes:read_only - Allows access to GET your Volumes.
  • volumes:read_write - Allows access to all endpoints related to your Volumes.

Requests

Requests must be made over HTTPS to ensure transactions are encrypted. The following Request methods are supported:

METHODUSAGE
GETRetrieves data about collections and individual resources.
POSTFor collections, creates a new resource of that type. Also used to perform actions on action endpoints.
PUTUpdates an existing resource.
DELETEDeletes a resource. This is a destructive action.

Responses

Actions will return one following HTTP response status codes:

STATUSDESCRIPTION
200 OKThe request was successful.
202 AcceptedThe request was successful, but processing has not been completed. The response body includes a "warnings" array containing the details of incomplete processes.
204 No ContentThe server successfully fulfilled the request and there is no additional content to send.
299 DeprecatedThe request was successful, but involved a deprecated endpoint. The response body includes a "warnings" array containing warning messages.
400 Bad RequestYou submitted an invalid request (missing parameters, etc.).
401 UnauthorizedYou failed to authenticate for this resource.
403 ForbiddenYou are authenticated, but don't have permission to do this.
404 Not FoundThe resource you're requesting does not exist.
429 Too Many RequestsYou've hit a rate limit.
500 Internal Server ErrorPlease .

Errors

Success is indicated via . 2xx codes indicate success, 4xx codes indicate a request error, and 5xx errors indicate a server error. A request error might be an invalid input, a required parameter being omitted, or a malformed request. A server error means something went wrong processing your request. If this occurs, please and let us know. Though errors are logged and we work quickly to resolve issues, opening a ticket and providing us with reproducable steps and data is always helpful.

The errors field is an array of the things that went wrong with your request. We will try to include as many of the problems in the response as possible, but it's conceivable that fixing these errors and resubmitting may result in new errors coming back once we are able to get further along in the process of handling your request.

Within each error object, the field parameter will be included if the error pertains to a specific field in the JSON you've submitted. This will be omitted if there is no relevant field. The reason is a human-readable explanation of the error, and will always be included.

Pagination

Resource lists are always paginated. The response will look similar to this:

json
{    "data": [ ... ],    "page": 1,    "pages": 3,    "results": 300}
  • Pages start at 1. You may retrieve a specific page of results by adding ?page=x to your URL (for example, ?page=4). If the value of page exceeds 2^64/page_size, the last possible page will be returned.

  • Page sizes default to 100, and can be set to return between 25 and 500. Page size can be set using ?page_size=x.

Filtering and Sorting

Collections are searchable by fields they include, marked in the spec as x-linode-filterable: true. Filters are passed in the X-Filter header and are formatted as JSON objects. Here is a request call for Linode Types in our "standard" class:

Shell
curl "https://api.linode.com/v4/linode/types" \  -H 'X-Filter: { "class": "standard" }'

The filter object's keys are the keys of the object you're filtering, and the values are accepted values. You can add multiple filters by including more than one key. For example, filtering for "standard" Linode Types that offer one vcpu:

Shell
 curl "https://api.linode.com/v4/linode/types" \  -H 'X-Filter: { "class": "standard", "vcpus": 1 }'

In the above example, both filters are combined with an "and" operation. However, if you wanted either Types with one vcpu or Types in our "standard" class, you can add an operator:

Shell
curl "https://api.linode.com/v4/linode/types" \ -H 'X-Filter: { "+or": [ { "vcpus": 1 }, { "class": "standard" } ] }'

Each filter in the +or array is its own filter object, and all conditions in it are combined with an "and" operation as they were in the previous example.

Other operators are also available. Operators are keys of a Filter JSON object. Their value must be of the appropriate type, and they are evaluated as described below:

OPERATORTYPEDESCRIPTION
+andarrayAll conditions must be true.
+orarrayOne condition must be true.
+gtnumberValue must be greater than number.
+gtenumberValue must be greater than or equal to number.
+ltnumberValue must be less than number.
+ltenumberValue must be less than or equal to number.
+containsstringGiven string must be in the value.
+neqstringDoes not equal the value.
+order_bystringAttribute to order the results by - must be filterable.
+orderstringEither "asc" or "desc". Defaults to "asc". Requires +order_by.

For example, filtering for that offer memory equal to or higher than 61440:

Shell
curl "https://api.linode.com/v4/linode/types" \  -H '    X-Filter: {      "memory": {        "+gte": 61440      }    }'

You can combine and nest operators to construct arbitrarily-complex queries. For example, give me all which are either standard or highmem class, or have between 12 and 20 vcpus:

Shell
curl "https://api.linode.com/v4/linode/types" \  -H '    X-Filter: {      "+or": [        {          "+or": [            {              "class": "standard"            },            {              "class": "highmem"            }          ]        },        {          "+and": [            {              "vcpus": {                "+gte": 12              }            },            {              "vcpus": {                "+lte": 20              }            }          ]        }      ]    }'

Time Values

All times returned by the API are in UTC, regardless of the timezone configured within your user's profile (see timezone property within ).

Rate Limiting

Rate limits on API requests help maintain the health and stability of the Linode API. Accordingly, every endpoint of the Linode API applies a rate limit on a per user basis as determined by OAuth token for authenticated requests or IP address for public endpoints.

Each rate limit consists of a total number of requests and a time window. For example, if an endpoint has a rate limit of 800 requests per minute, then up to 800 requests over a one minute window are permitted. Subsequent requests to an endpoint after hitting a rate limit return a 429 error. You can successfully remake requests to that endpoint after the rate limit window resets.

Linode APIv4 Rate Limits

With the Linode API, you can generally make up to 1,600 general API requests every two minutes. Additionally, all endpoints have a rate limit of 800 requests per minute unless otherwise specified below.

Note: There may be rate limiting applied at other levels outside of the API, for example, at the load balancer.

Creating Linodes has a dedicated rate limit of 10 requests per 30 seconds. That endpoint is:

/stats endpoints have their own dedicated rate limits of 100 requests per minute. These endpoints are:

Object Storage endpoints have a dedicated rate limit of 750 requests per second. The Object Storage endpoints are:

Opening Support Tickets has a dedicated rate limit of 2 requests per minute. That endpoint is:

Accepting Service Transfers has a dedicated rate limit of 2 requests per minute. That endpoint is:

Rate Limit HTTP Response Headers

The Linode API includes the following HTTP response headers which are designed to help you avoid hitting rate limits that might disrupt your applications:

  • X-RateLimit-Limit: The maximum number of permitted requests during the rate limit window for this endpoint.
  • X-RateLimit-Remaining: The remaining number of permitted requests in the current rate limit window.
  • X-RateLimit-Reset: The time when the current rate limit window rests in UTC epoch seconds.
  • Retry-After: The remaining time in seconds until the current rate limit window resets.

There are many ways to access header information for your requests, depending on how you are accessing the Linode API. For example, to view HTTP response headers when making requests with curl, use the -i or --include option as follows:

Shell
curl -i https://api.linode.com/v4/regions

CLI (Command Line Interface)

The allows you to easily work with the API using intuitive and simple syntax. It requires a for authentication, and gives you access to all of the features and functionality of the Linode API that are documented here with CLI examples.

Endpoints that do not have CLI examples are currently unavailable through the CLI, but can be accessed via other methods such as Shell commands and other third-party applications.

Homepage
https://api.apis.guru/v2/specs/linode.com/4.145.0.json
Provider
linode.com
OpenAPI version
3.0.1
Spec (JSON)
https://api.apis.guru/v2/specs/linode.com/4.145.0/openapi.json
Spec (YAML)
https://api.apis.guru/v2/specs/linode.com/4.145.0/openapi.yaml

Tools (352)

Extracted live via the executor SDK.

  • account.acceptEntityTransfer

    DEPRECATED. Please use .

  • account.acceptServiceTransfer

    Accept a Service Transfer for the provided token to receive the services included in the transfer to your account. At this time, only Linodes can be transferred.

    When accepted, email confirmations are sent to the accounts that created and accepted the transfer. A transfer can take up to three hours to complete once accepted. Once a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.

    This command can only be accessed by the unrestricted users of the account that receives the transfer. Users of the same account that created a transfer cannot accept the transfer.

    There are several conditions that must be met in order to accept a transfer request:

    1. Only transfers with a pending status can be accepted.

    2. The account accepting the transfer must have a registered payment method and must not have a past due balance or other account limitations for the services to be transferred.

    3. Both the account that created the transfer and the account that is accepting the transfer must not have any active Terms of Service violations.

    4. The service must still be owned by the account that created the transfer.

    5. Linodes must not:

      • be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.

      • have any attached Block Storage Volumes.

      • have any shared IP addresses.

      • have any assigned /56, /64, or /116 IPv6 ranges.

    Any and all of the above conditions must be cured and maintained by the relevant account prior to the transfer's expiration to allow the transfer to be accepted by the receiving account.

  • account.cancelAccount

    Cancels an active Linode account. This action will cause Linode to attempt to charge the credit card on file for the remaining balance. An error will occur if Linode fails to charge the credit card on file. Restricted users will not be able to cancel an account.

  • account.createClient

    Creates an OAuth Client, which can be used to allow users (using their Linode account) to log in to your own application, and optionally grant your application some amount of access to their Linodes or other entities.

  • account.createCreditCard

    DEPRECATED. Please use Payment Method Add ().

    Adds a credit card Payment Method to your account and sets it as the default method.

  • account.createEntityTransfer

    DEPRECATED. Please use .

  • account.createPayment

    Makes a Payment to your Account.

    • The requested amount is charged to the default Payment Method if no payment_method_id is specified.

    • A payment_submitted event is generated when a payment is successfully submitted.

  • account.createPaymentMethod

    Adds a Payment Method to your Account with the option to set it as the default method.

    • Adding a default Payment Method removes the default status from any other Payment Method.

    • An Account can have up to 6 active Payment Methods.

    • Up to 60 Payment Methods can be added each day.

    • Prior to adding a Payment Method, ensure that your billing address information is up-to-date with a valid zip by using the Account Update () endpoint.

    • A payment_method_add event is generated when a payment is successfully submitted.

  • account.createPayPalPayment

    Note: This endpoint is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See .

  • account.createPromoCredit

    Adds an expiring Promo Credit to your account.

    The following restrictions apply:

    • Your account must be less than 90 days old.
    • There must not be an existing Promo Credit already on your account.
    • The requesting User must be unrestricted. Use the User Update () to change a User's restricted status.
    • The promo_code must be valid and unexpired.
  • account.createServiceTransfer

    Creates a transfer request for the specified services. A request can contain any of the specified service types and any number of each service type. At this time, only Linodes can be transferred.

    When created successfully, a confirmation email is sent to the account that created this transfer containing a transfer token and instructions on completing the transfer.

    When a transfer is , the requested services are moved to the receiving account. Linode services will not experience interruptions due to the transfer process. Backups for Linodes are transferred as well.

    DNS records that are associated with requested services will not be transferred or updated. Please ensure that associated DNS records have been updated or communicated to the recipient prior to the transfer.

    A transfer can take up to three hours to complete once accepted. When a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.

    This command can only be accessed by the unrestricted users of an account.

    There are several conditions that must be met in order to successfully create a transfer request:

    1. The account creating the transfer must not have a past due balance or active Terms of Service violation.

    2. The service must be owned by the account that is creating the transfer.

    3. The service must not be assigned to another Service Transfer that is pending or that has been accepted and is incomplete.

    4. Linodes must not:

      • be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.

      • have any attached Block Storage Volumes.

      • have any shared IP addresses.

      • have any assigned /56, /64, or /116 IPv6 ranges.

  • account.createUser

    Creates a User on your Account. Once created, a confirmation message containing password creation and login instructions is sent to the User's email address.

    This command can only be accessed by the unrestricted users of an account.

    The User's account access is determined by whether or not they are restricted, and what grants they have been given.

  • account.deleteClient

    Deletes an OAuth Client registered with Linode. The Client ID and Client secret will no longer be accepted by , and all tokens issued to this client will be invalidated (meaning that if your application was using a token, it will no longer work).

  • account.deleteEntityTransfer

    DEPRECATED. Please use .

  • account.deletePaymentMethod

    Deactivate the specified Payment Method.

    The default Payment Method can not be deleted. To add a new default Payment Method, access the Payment Method Add () endpoint. To designate an existing Payment Method as the default method, access the Payment Method Make Default () endpoint.

  • account.deleteServiceTransfer

    Cancels the Service Transfer for the provided token. Once cancelled, a transfer cannot be accepted or otherwise acted on in any way. If cancelled in error, the transfer must be again.

    When cancelled, an email notification for the cancellation is sent to the account that created this transfer. Transfers can not be cancelled if they are expired or have been accepted.

    This command can only be accessed by the unrestricted users of the account that created this transfer.

  • account.deleteUser

    Deletes a User. The deleted User will be immediately logged out and may no longer log in or perform any actions. All of the User's Grants will be removed.

    This command can only be accessed by the unrestricted users of an account.

  • account.enableAccountManaged

    Enables Linode Managed for the entire account and sends a welcome email to the account's associated email address. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. See our to learn more.

  • account.eventRead

    Marks a single Event as read.

  • account.eventSeen

    Marks all Events up to and including this Event by ID as seen.

  • account.executePayPalPayment

    Note: This endpoint is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See .

  • account.getAccount

    Returns the contact and billing information related to your Account.

  • account.getAccountLogin

    Returns a Login object that displays information about a successful login. The logins that can be viewed can be for any user on the account, and are not limited to only the logins of the user that is accessing this API endpoint. This command can only be accessed by the unrestricted users of the account.

  • account.getAccountLogins

    Returns a collection of successful logins for all users on the account during the last 90 days. This command can only be accessed by the unrestricted users of an account.

  • account.getAccountSettings

    Returns information related to your Account settings: Managed service subscription, Longview subscription, and network helper.

  • account.getClient

    Returns information about a single OAuth client.

  • account.getClients

    Returns a paginated list of OAuth Clients registered to your Account. OAuth Clients allow users to log into applications you write or host using their Linode Account, and may allow them to grant some level of access to their Linodes or other entities to your application.

  • account.getClientThumbnail

    Returns the thumbnail for this OAuth Client. This is a publicly-viewable endpoint, and can be accessed without authentication.

  • account.getEntityTransfer

    DEPRECATED. Please use .

  • account.getEntityTransfers

    DEPRECATED. Please use .

  • account.getEvent

    Returns a single Event object.

  • account.getEvents

    Returns a collection of Event objects representing actions taken on your Account from the last 90 days. The Events returned depend on your grants.

  • account.getInvoice

    Returns a single Invoice object.

  • account.getInvoiceItems

    Returns a paginated list of Invoice items.

  • account.getInvoices

    Returns a paginated list of Invoices against your Account.

  • account.getMaintenance

    Returns a collection of Maintenance objects for any entity a user has permissions to view. Cancelled Maintenance objects are not returned.

    Currently, Linodes are the only entities available for viewing.

  • account.getNotifications

    Returns a collection of Notification objects representing important, often time-sensitive items related to your Account. You cannot interact directly with Notifications, and a Notification will disappear when the circumstances causing it have been resolved. For example, if you have an important Ticket open, you must respond to the Ticket to dismiss the Notification.

  • account.getPayment

    Returns information about a specific Payment.

  • account.getPaymentMethod

    View the details of the specified Payment Method.

  • account.getPaymentMethods

    Returns a paginated list of Payment Methods for this Account.

  • account.getPayments

    Returns a paginated list of Payments made on this Account.

  • account.getServiceTransfer

    Returns the details of the Service Transfer for the provided token.

    While a transfer is pending, any unrestricted user of any account can access this command. After a transfer has been accepted, it can only be viewed by unrestricted users of the accounts that created and accepted the transfer. If cancelled or expired, only unrestricted users of the account that created the transfer can view it.

  • account.getServiceTransfers

    Returns a collection of all created and accepted Service Transfers for this account, regardless of the user that created or accepted the transfer.

    This command can only be accessed by the unrestricted users of an account.

  • account.getTransfer

    Returns a Transfer object showing your network utilization, in GB, for the current month.

  • account.getUser

    Returns information about a single User on your Account.

    This command can only be accessed by the unrestricted users of an account.

  • account.getUserGrants

    Returns the full grants structure for the specified account User (other than the account owner, see below for details). This includes all entities on the Account alongside the level of access this User has to each of them.

    This command can only be accessed by the unrestricted users of an account.

    The current authenticated User, including the account owner, may view their own grants at the endpoint, but will not see entities that they do not have access to.

  • account.getUsers

    Returns a paginated list of Users on your Account.

    This command can only be accessed by the unrestricted users of an account.

    Users may access all or part of your Account based on their restricted status and grants. An unrestricted User may access everything on the account, whereas restricted User may only access entities or perform actions they've been given specific grants to.

  • account.makePaymentMethodDefault

    Make the specified Payment Method the default method for automatically processing payments.

    Removes the default status from any other Payment Method.

  • account.resetClientSecret

    Resets the OAuth Client secret for a client you own, and returns the OAuth Client with the plaintext secret. This secret is not supposed to be publicly known or disclosed anywhere. This can be used to generate a new secret in case the one you have has been leaked, or to get a new secret if you lost the original. The old secret is expired immediately, and logins to your client with the old secret will fail.

  • account.setClientThumbnail

    Upload a thumbnail for a client you own. You must upload an image file that will be returned when the thumbnail is retrieved. This image will be publicly-viewable.

  • account.updateAccount

    Updates contact and billing information related to your Account.

  • account.updateAccountSettings

    Updates your Account settings.

    To update your Longview subscription plan, send a request to .

  • account.updateClient

    Update information about an OAuth Client on your Account. This can be especially useful to update the redirect_uri of your client in the event that the callback url changed in your application.

  • account.updateUser

    Update information about a User on your Account. This can be used to change the restricted status of a User. When making a User restricted, no grants will be configured by default and you must then set up grants in order for the User to access anything on the Account.

    This command can only be accessed by the unrestricted users of an account.

  • account.updateUserGrants

    Update the grants a User has. This can be used to give a User access to new entities or actions, or take access away. You do not need to include the grant for every entity on the Account in this request; any that are not included will remain unchanged.

    This command can only be accessed by the unrestricted users of an account.

  • databases.deleteDatabaseMongoDbInstanceBackup

    Delete a single backup for an accessible Managed MongoDB Database.

    Requires read_write access to the Database.

    The Database must not be provisioning to perform this command.

    Note: New MongoDB Databases cannot currently be created.

  • databases.deleteDatabaseMySqlInstanceBackup

    Delete a single backup for an accessible Managed MySQL Database.

    Requires read_write access to the Database.

    The Database must not be provisioning to perform this command.

  • databases.deleteDatabasePostgreSqlInstanceBackup

    Delete a single backup for an accessible Managed PostgreSQL Database.

    Requires read_write access to the Database.

    The Database must not be provisioning to perform this command.

  • databases.deleteDatabasesMongoDbInstance

    Remove a Managed MongoDB Database from your Account.

    Requires read_write access to the Database.

    The Database must have an active, failed, or degraded status to perform this command.

    Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.

    Note: New MongoDB Databases cannot currently be created.

  • databases.deleteDatabasesMySqlInstance

    Remove a Managed MySQL Database from your Account.

    Requires read_write access to the Database.

    The Database must have an active, failed, or degraded status to perform this command.

    Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.

  • databases.deleteDatabasesPostgreSqlInstance

    Remove a Managed PostgreSQL Database from your Account.

    Requires read_write access to the Database.

    The Database must have an active, failed, or degraded status to perform this command.

    Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.

  • databases.getDatabasesEngine

    Display information for a single Managed Database engine type and version.

  • databases.getDatabasesEngines

    Display all available Managed Database engine types and versions. Engine IDs are used when creating new Managed Databases.

  • databases.getDatabasesInstances

    Display all Managed Databases that are accessible by your User, regardless of engine type.

    For more detailed information on a particular Database instance, make a request to its instance_uri.

  • databases.getDatabasesMongoDbInstance

    Display information for a single, accessible Managed MongoDB Database.

    Note: New MongoDB Databases cannot currently be created.

  • databases.getDatabasesMongoDbInstanceBackup

    Display information for a single backup for an accessible Managed MongoDB Database.

    The Database must not be provisioning to perform this command.

    Note: New MongoDB Databases cannot currently be created.

  • databases.getDatabasesMongoDbInstanceBackups

    Display all backups for an accessible Managed MongoDB Database.

    The Database must not be provisioning to perform this command.

    Database auto type backups are created every 24 hours at 0:00 UTC. Each auto backup is retained for 7 days.

    Database snapshot type backups are created by accessing the Managed MongoDB Database Backup Snapshot Create () command.

    Note: New MongoDB Databases cannot currently be created.

  • databases.getDatabasesMongoDbInstanceCredentials

    Display the root username and password for an accessible Managed MongoDB Database.

    The Database must have an active status to perform this command.

    Note: New MongoDB Databases cannot currently be created.

  • databases.getDatabasesMongoDbInstances

    Display all accessible Managed MongoDB Databases.

    Note: New MongoDB Databases cannot currently be created.

  • databases.getDatabasesMongoDbInstanceSsl

    Display the SSL CA certificate for an accessible Managed MongoDB Database.

    The Database must have an active status to perform this command.

    Note: New MongoDB Databases cannot currently be created.

  • databases.getDatabasesMySqlInstance

    Display information for a single, accessible Managed MySQL Database.

  • databases.getDatabasesMySqlInstanceBackup

    Display information for a single backup for an accessible Managed MySQL Database.

    The Database must not be provisioning to perform this command.

  • databases.getDatabasesMySqlInstanceBackups

    Display all backups for an accessible Managed MySQL Database.

    The Database must not be provisioning to perform this command.

    Database auto type backups are created every 24 hours at 0:00 UTC. Each auto backup is retained for 7 days.

    Database snapshot type backups are created by accessing the Managed MySQL Database Backup Snapshot Create () command.

  • databases.getDatabasesMySqlInstanceCredentials

    Display the root username and password for an accessible Managed MySQL Database.

    The Database must have an active status to perform this command.

  • databases.getDatabasesMySqlInstances

    Display all accessible Managed MySQL Databases.

  • databases.getDatabasesMySqlInstanceSsl

    Display the SSL CA certificate for an accessible Managed MySQL Database.

    The Database must have an active status to perform this command.

  • databases.getDatabasesPostgreSqlInstance

    Display information for a single, accessible Managed PostgreSQL Database.

  • databases.getDatabasesPostgreSqlInstanceBackup

    Display information for a single backup for an accessible Managed PostgreSQL Database.

    The Database must not be provisioning to perform this command.

  • databases.getDatabasesPostgreSqlInstanceBackups

    Display all backups for an accessible Managed PostgreSQL Database.

    The Database must not be provisioning to perform this command.

    Database auto type backups are created every 24 hours at 0:00 UTC. Each auto backup is retained for 7 days.

    Database snapshot type backups are created by accessing the Managed PostgreSQL Database Backup Snapshot Create () command.

  • databases.getDatabasesPostgreSqlInstanceCredentials

    Display the root username and password for an accessible Managed PostgreSQL Database.

    The Database must have an active status to perform this command.

  • databases.getDatabasesPostgreSqlInstances

    Display all accessible Managed PostgreSQL Databases.

  • databases.getDatabasesPostgreSqlInstanceSsl

    Display the SSL CA certificate for an accessible Managed PostgreSQL Database.

    The Database must have an active status to perform this command.

  • databases.getDatabasesType

    Display the details of a single Managed Database type. The type and number of nodes determine the resources and price of a Managed Database instance.

  • databases.getDatabasesTypes

    Display all Managed Database node types. The type and number of nodes determine the resources and price of a Managed Database instance.

    Each Managed Database can have one node type. In the case of a high availabilty Database, all nodes are provisioned according to the chosen type.

  • databases.postDatabasesMongoDbInstanceBackup

    Creates a snapshot backup of a Managed MongoDB Database.

    Requires read_write access to the Database.

    Up to 3 snapshot backups for each Database can be stored at a time. If 3 snapshots have been created for a Database, one must be deleted before another can be made.

    Backups generated by this command have the type snapshot. Snapshot backups may take several minutes to complete, after which they will be accessible to view or restore.

    The Database must have an active status to perform this command. If another backup is in progress, it must complete before a new backup can be initiated.

    Note: New MongoDB Databases cannot currently be created.

  • databases.postDatabasesMongoDbInstanceBackupRestore

    Restore a backup to a Managed MongoDB Database on your Account.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Note: Restoring from a backup will erase all existing data on the database instance and replace it with backup data.

    Note: Currently, restoring a backup after resetting Managed Database credentials results in a failed cluster. Please contact Customer Support if this occurs.

    Note: New MongoDB Databases cannot currently be created.

  • databases.postDatabasesMongoDbInstanceCredentialsReset

    Reset the root password for a Managed MongoDB Database.

    Requires read_write access to the Database.

    A new root password is randomly generated and accessible with the Managed MongoDB Database Credentials View () command.

    Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.

    Note: Note that it may take several seconds for credentials to reset.

    Note: New MongoDB Databases cannot currently be created.

  • databases.postDatabasesMongoDbInstancePatch

    Apply security patches and updates to the underlying operating system of the Managed MongoDB Database. This function runs during regular maintenance windows, which are configurable with the Managed MongoDB Database Update () command. Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Note:

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance. Consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.

    Note: New MongoDB Databases cannot currently be created.

  • databases.postDatabasesMySqlInstanceBackup

    Creates a snapshot backup of a Managed MySQL Database.

    Requires read_write access to the Database.

    Up to 3 snapshot backups for each Database can be stored at a time. If 3 snapshots have been created for a Database, one must be deleted before another can be made.

    Backups generated by this command have the type snapshot. Snapshot backups may take several minutes to complete, after which they will be accessible to view or restore.

    The Database must have an active status to perform this command. If another backup is in progress, it must complete before a new backup can be initiated.

  • databases.postDatabasesMySqlInstanceBackupRestore

    Restore a backup to a Managed MySQL Database on your Account.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Note: Restoring from a backup will erase all existing data on the database instance and replace it with backup data.

    Note: Currently, restoring a backup after resetting Managed Database credentials results in a failed cluster. Please contact Customer Support if this occurs.

  • databases.postDatabasesMySqlInstanceCredentialsReset

    Reset the root password for a Managed MySQL Database.

    Requires read_write access to the Database.

    A new root password is randomly generated and accessible with the Managed MySQL Database Credentials View () command.

    Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.

    Note: Note that it may take several seconds for credentials to reset.

  • databases.postDatabasesMySqlInstancePatch

    Apply security patches and updates to the underlying operating system of the Managed MySQL Database. This function runs during regular maintenance windows, which are configurable with the Managed MySQL Database Update () command.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Note

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance. Consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then from the original Managed Database cluster to the new one.

  • databases.postDatabasesMySqlInstances

    Provision a Managed MySQL Database.

    Restricted Users must have the add_databases grant to use this command.

    New instances can take approximately 15 to 30 minutes to provision.

    The allow_list is used to control access to the Managed Database.

    • IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.

    • If 0.0.0.0/0 is a value in this list, then all IP addresses can access the Managed Database.

    • Entering an empty array ([]) blocks all connections (both public and private) to the Managed Database.

    All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

    All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MySQL Database during configurable maintenance windows.

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then from the original Managed Database cluster to the new one.

    • To modify update the maintenance window for a Database, use the Managed MySQL Database Update () command.

  • databases.postDatabasesPostgreSqlInstanceBackup

    Creates a snapshot backup of a Managed PostgreSQL Database.

    Requires read_write access to the Database.

    Up to 3 snapshot backups for each Database can be stored at a time. If 3 snapshots have been created for a Database, one must be deleted before another can be made.

    Backups generated by this command have the type snapshot. Snapshot backups may take several minutes to complete, after which they will be accessible to view or restore.

    The Database must have an active status to perform this command. If another backup is in progress, it must complete before a new backup can be initiated.

  • databases.postDatabasesPostgreSqlInstanceBackupRestore

    Restore a backup to a Managed PostgreSQL Database on your Account.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Note: Restoring from a backup will erase all existing data on the database instance and replace it with backup data.

    Note: Currently, restoring a backup after resetting Managed Database credentials results in a failed cluster. Please contact Customer Support if this occurs.

  • databases.postDatabasesPostgreSqlInstanceCredentialsReset

    Reset the root password for a Managed PostgreSQL Database.

    Requires read_write access to the Database.

    A new root password is randomly generated and accessible with the Managed PostgreSQL Database Credentials View () command.

    Only unrestricted Users can access this command, and have access regardless of the acting token's OAuth scopes.

    Note: Note that it may take several seconds for credentials to reset.

  • databases.postDatabasesPostgreSqlInstancePatch

    Apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database. This function runs during regular maintenance windows, which are configurable with the Managed PostgreSQL Database Update () command.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Note

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance. Consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.

  • databases.postDatabasesPostgreSqlInstances

    Provision a Managed PostgreSQL Database.

    Restricted Users must have the add_databases grant to use this command.

    New instances can take approximately 15 to 30 minutes to provision.

    The allow_list is used to control access to the Managed Database.

    • IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.

    • If 0.0.0.0/0 is a value in this list, then all IP addresses can access the Managed Database.

    • Entering an empty array ([]) blocks all connections (both public and private) to the Managed Database.

    All Managed Databases include automatic, daily backups. Up to seven backups are automatically stored for each Managed Database, providing restore points for each day of the past week.

    All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database during configurable maintenance windows.

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.

    • To modify update the maintenance window for a Database, use the Managed PostgreSQL Database Update () command.

  • databases.putDatabasesMongoDbInstance

    Update a Managed MongoDB Database.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Updating addresses in the allow_list overwrites any existing addresses.

    • IP addresses and ranges on this list can access the Managed Database. All other sources are blocked.

    • If 0.0.0.0/0 is a value in this list, then all IP addresses can access the Managed Database.

    • Entering an empty array ([]) blocks all connections (both public and private) to the Managed Database.

    • Note: Updates to the allow_list may take a short period of time to complete, making this command inappropriate for rapid successive updates to this property.

    All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MongoDB Database. The maintenance window for these updates is configured with the Managed Database's updates property.

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.

    Note: New MongoDB Databases cannot currently be created.

  • databases.putDatabasesMySqlInstance

    Update a Managed MySQL Database.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Updating addresses in the allow_list overwrites any existing addresses.

    • IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.

    • If 0.0.0.0/0 is a value in this list, then all IP addresses can access the Managed Database.

    • Entering an empty array ([]) blocks all connections (both public and private) to the Managed Database.

    • Note: Updates to the allow_list may take a short period of time to complete, making this command inappropriate for rapid successive updates to this property.

    All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MySQL Database. The maintenance window for these updates is configured with the Managed Database's updates property.

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then from the original Managed Database cluster to the new one.

  • databases.putDatabasesPostgreSqlInstance

    Update a Managed PostgreSQL Database.

    Requires read_write access to the Database.

    The Database must have an active status to perform this command.

    Updating addresses in the allow_list overwrites any existing addresses.

    • IP addresses and ranges in this list can access the Managed Database. All other sources are blocked.

    • If 0.0.0.0/0 is a value in this list, then all IP addresses can access the Managed Database.

    • Entering an empty array ([]) blocks all connections (both public and private) to the Managed Database.

    • Note: Updates to the allow_list may take a short period of time to complete, making this command inappropriate for rapid successive updates to this property.

    All Managed Databases include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed PostgreSQL Database. The maintenance window for these updates is configured with the Managed Database's updates property.

    • If your database cluster is configured with a single node, you will experience downtime during this maintenance window when any updates occur. It's recommended that you adjust this window to match a time that will be the least disruptive for your application and users. You may also want to consider upgrading to a high availability plan to avoid any downtime due to maintenance.

    • The database software is not updated automatically. To upgrade to a new database engine version, consider deploying a new Managed Database with your preferred version. You can then migrate your databases from the original Managed Database cluster to the new one.

  • domains.cloneDomain

    Clones a Domain and all associated DNS records from a Domain that is registered in Linode's DNS manager.

  • domains.createDomain

    Adds a new Domain to Linode's DNS Manager. Linode is not a registrar, and you must own the domain before adding it here. Be sure to point your registrar to Linode's nameservers so that the records hosted here are used.

  • domains.createDomainRecord

    Adds a new Domain Record to the zonefile this Domain represents.

    Each domain can have up to 12,000 active records.

  • domains.deleteDomain

    Deletes a Domain from Linode's DNS Manager. The Domain will be removed from Linode's nameservers shortly after this operation completes. This also deletes all associated Domain Records.

  • domains.deleteDomainRecord

    Deletes a Record on this Domain.

  • domains.getDomain

    This is a single Domain that you have registered in Linode's DNS Manager. Linode is not a registrar, and in order for this Domain record to work you must own the domain and point your registrar at Linode's nameservers.

  • domains.getDomainRecord

    View a single Record on this Domain.

  • domains.getDomainRecords

    Returns a paginated list of Records configured on a Domain in Linode's DNS Manager.

  • domains.getDomains

    This is a collection of Domains that you have registered in Linode's DNS Manager. Linode is not a registrar, and in order for these to work you must own the domains and point your registrar at Linode's nameservers.

  • domains.getDomainZone

    Returns the zone file for the last rendered zone for the specified domain.

  • domains.importDomain

    Imports a domain zone from a remote nameserver. Your nameserver must allow zone transfers (AXFR) from the following IPs:

    • 96.126.114.97
    • 96.126.114.98
    • 2600:3c00::5e
    • 2600:3c00::5f
  • domains.updateDomain

    Update information about a Domain in Linode's DNS Manager.

  • domains.updateDomainRecord

    Updates a single Record on this Domain.

  • images.createImage

    Captures a private gold-master Image from a Linode Disk.

  • images.deleteImage

    Deletes a private Image you have permission to read_write.

    Deleting an Image is a destructive action and cannot be undone.

  • images.getImage

    Get information about a single Image.

    • Public Images have IDs that begin with "linode/". These distribution images are generally available to all users.

    • Private Images have IDs that begin with "private/". These Images are Account-specific and only accessible to Users with appropriate .

    • To view a public Image, call this endpoint with or without authentication. To view a private Image, call this endpoint with authentication.

  • images.getImages

    Returns a paginated list of Images.

    • Public Images have IDs that begin with "linode/". These distribution images are generally available to all users.

    • Private Images have IDs that begin with "private/". These Images are Account-specific and only accessible to Users with appropriate .

    • To view only public Images, call this endpoint with or without authentication. To view private Images as well, call this endpoint with authentication.

  • images.postImagesUpload

    Initiates an Image upload.

    This endpoint creates a new private Image object and returns it along with the URL to which image data can be uploaded.

    • Image data must be uploaded within 24 hours of creation or the upload will be cancelled and the image deleted.

    • Image uploads should be made as an HTTP PUT request to the URL returned in the upload_to response parameter, with a Content-type: application/octet-stream header included in the request. For example:

      curl -v \  -H "Content-Type: application/octet-stream" \  --upload-file example.img.gz \  $UPLOAD_URL \  --progress-bar \  --output /dev/null
    • Uploaded image data should be compressed in gzip (.gz) format. The uncompressed disk should be in raw disk image (.img) format. A maximum compressed file size of 5GB is supported for upload at this time.

    Note: To initiate and complete an Image upload in a single step, see our guide on how to using Cloud Manager or the Linode CLI image-upload plugin.

  • images.updateImage

    Updates a private Image that you have permission to read_write.

  • linodeInstances.addLinodeConfig

    Adds a new Configuration profile to a Linode.

  • linodeInstances.addLinodeDisk

    Adds a new Disk to a Linode.

    • You can optionally create a Disk from an Image or an Empty Disk if no Image is provided with a request.

    • When creating an Empty Disk, providing a label is required.

    • If no label is provided, an image is required instead.

    • When creating a Disk from an Image, root_pass is required.

    • The default filesystem for new Disks is ext4. If creating a Disk from an Image, the filesystem of the Image is used unless otherwise specified.

    • When deploying a StackScript on a Disk:

      • See StackScripts List () for a list of available StackScripts.
      • Requires a compatible Image to be supplied.
        • See StackScript View () for compatible Images.
      • It is recommended to supply SSH keys for the root User using the authorized_keys field.
      • You may also supply a list of usernames via the authorized_users field.
        • These users must have an SSH Key associated with their Profiles first. See SSH Key Add () for more information.
  • linodeInstances.addLinodeIp

    Allocates a public or private IPv4 address to a Linode. Public IP Addresses, after the one included with each Linode, incur an additional monthly charge. If you need an additional public IP Address you must request one - please . You may not add more than one private IPv4 address to a single Linode.

  • linodeInstances.bootLinodeInstance

    Boots a Linode you have permission to modify. If no parameters are given, a Config profile will be chosen for this boot based on the following criteria:

    • If there is only one Config profile for this Linode, it will be used.
    • If there is more than one Config profile, the last booted config will be used.
    • If there is more than one Config profile and none were the last to be booted (because the Linode was never booted or the last booted config was deleted) an error will be returned.
  • linodeInstances.cancelBackups

    Cancels the Backup service on the given Linode. Deletes all of this Linode's existing backups forever.

  • linodeInstances.cloneLinodeDisk

    Copies a disk, byte-for-byte, into a new Disk belonging to the same Linode. The Linode must have enough storage space available to accept a new Disk of the same size as this one or this operation will fail.

  • linodeInstances.cloneLinodeInstance

    You can clone your Linode's existing Disks or Configuration profiles to another Linode on your Account. In order for this request to complete successfully, your User must have the add_linodes grant. Cloning to a new Linode will incur a charge on your Account.

    If cloning to an existing Linode, any actions currently running or queued must be completed first before you can clone to it.

    Up to five clone operations from any given source Linode can be run concurrently. If more concurrent clones are attempted, an HTTP 400 error will be returned by this endpoint.

    Any existing on the source Linode will be cloned to the target Linode.

  • linodeInstances.createLinodeInstance

    Creates a Linode Instance on your Account. In order for this request to complete successfully, your User must have the add_linodes grant. Creating a new Linode will incur a charge on your Account.

    Linodes can be created using one of the available Types. See Types List () to get more information about each Type's specs and cost.

    Linodes can be created in any one of our available Regions, which are accessible from the Regions List () endpoint.

    In an effort to fight spam, Linode restricts outbound connections on ports 25, 465, and 587 on all Linodes for new accounts created after November 5th, 2019. For more information, see .

    Linodes can be created in a number of ways:

    • Using a Linode Public Image distribution or a Private Image you created based on another Linode.

      • Access the Images List () endpoint with authentication to view all available Images.
      • The Linode will be running after it completes provisioning.
      • A default config with two Disks, one being a 512 swap disk, is created.
        • swap_size can be used to customize the swap disk size.
      • Requires a root_pass be supplied to use for the root User's Account.
      • It is recommended to supply SSH keys for the root User using the authorized_keys field.
      • You may also supply a list of usernames via the authorized_users field.
        • These users must have an SSH Key associated with your Profile first. See SSH Key Add () for more information.
    • Using a StackScript.

      • See StackScripts List () for a list of available StackScripts.
      • The Linode will be running after it completes provisioning.
      • Requires a compatible Image to be supplied.
        • See StackScript View () for compatible Images.
      • Requires a root_pass be supplied to use for the root User's Account.
      • It is recommended to supply SSH keys for the root User using the authorized_keys field.
      • You may also supply a list of usernames via the authorized_users field.
        • These users must have an SSH Key associated with your Profile first. See SSH Key Add () for more information.
    • Using one of your other Linode's backups.

      • You must create a Linode large enough to accommodate the Backup's size.
      • The Disks and Config will match that of the Linode that was backed up.
      • The root_pass will match that of the Linode that was backed up.
    • Attached to a private VLAN.

      • Review the interfaces property of the for details.
      • For more information, see our guide on .
    • Create an empty Linode.

      • The Linode will remain offline and must be manually started.
        • See Linode Boot ().
      • Disks and Configs must be created manually.
      • This is only recommended for advanced use cases.

    Important: You must be an unrestricted User in order to add or modify tags on Linodes. __

  • linodeInstances.createSnapshot

    Creates a snapshot Backup of a Linode.

    Important: If you already have a snapshot of this Linode, this is a destructive action. The previous snapshot will be deleted.

  • linodeInstances.deleteDisk

    Deletes a Disk you have permission to read_write.

    Deleting a Disk is a destructive action and cannot be undone.

  • linodeInstances.deleteLinodeConfig

    Deletes the specified Configuration profile from the specified Linode.

  • linodeInstances.deleteLinodeInstance

    Deletes a Linode you have permission to read_write.

    Deleting a Linode is a destructive action and cannot be undone.

    Additionally, deleting a Linode:

    • Gives up any IP addresses the Linode was assigned.
    • Deletes all Disks, Backups, Configs, etc.
    • Stops billing for the Linode and its associated services. You will be billed for time used within the billing period the Linode was active.

    Linodes that are in the process of or cannot be deleted.

  • linodeInstances.enableBackups

    Enables backups for the specified Linode.

  • linodeInstances.getBackup

    Returns information about a Backup.

  • linodeInstances.getBackups

    Returns information about this Linode's available backups.

  • linodeInstances.getKernel

    Returns information about a single Kernel.

  • linodeInstances.getKernels

    Lists available Kernels.

  • linodeInstances.getLinodeConfig

    Returns information about a specific Configuration profile.

  • linodeInstances.getLinodeConfigs

    Lists Configuration profiles associated with a Linode.

  • linodeInstances.getLinodeDisk

    View Disk information for a Disk associated with this Linode.

  • linodeInstances.getLinodeDisks

    View Disk information for Disks associated with this Linode.

  • linodeInstances.getLinodeFirewalls

    View Firewall information for Firewalls associated with this Linode.

  • linodeInstances.getLinodeInstance

    Get a specific Linode by ID.

  • linodeInstances.getLinodeInstances

    Returns a paginated list of Linodes you have permission to view.

  • linodeInstances.getLinodeIp

    View information about the specified IP address associated with the specified Linode.

  • linodeInstances.getLinodeIPs

    Returns networking information for a single Linode.

  • linodeInstances.getLinodeNodeBalancers

    Returns a list of NodeBalancers that are assigned to this Linode and readable by the requesting User.

    Read permission to a NodeBalancer can be given to a User by accessing the User's Grants Update () endpoint.

  • linodeInstances.getLinodeStats

    Returns CPU, IO, IPv4, and IPv6 statistics for your Linode for the past 24 hours.

  • linodeInstances.getLinodeStatsByYearMonth

    Returns statistics for a specific month. The year/month values must be either a date in the past, or the current month. If the current month, statistics will be retrieved for the past 30 days.

  • linodeInstances.getLinodeTransfer

    Returns a Linode's network transfer pool statistics for the current month.

  • linodeInstances.getLinodeTransferByYearMonth

    Returns a Linode's network transfer statistics for a specific month. The year/month values must be either a date in the past, or the current month.

  • linodeInstances.getLinodeVolumes

    View Block Storage Volumes attached to this Linode.

  • linodeInstances.migrateLinodeInstance

    Initiate a pending host migration that has been scheduled by Linode or initiate a cross data center (DC) migration. A list of pending migrations, if any, can be accessed from . When the migration begins, your Linode will be shutdown if not already off. If the migration initiated the shutdown, it will reboot the Linode when completed.

    To initiate a cross DC migration, you must pass a region parameter to the request body specifying the target data center region. You can view a list of all available regions and their feature capabilities from . If your Linode has a DC migration already queued or you have initiated a previously scheduled migration, you will not be able to initiate a DC migration until it has completed.

    Note: Next Generation Network (NGN) data centers do not support IPv6 /116 pools or IP Failover. If you have these features enabled on your Linode and attempt to migrate to an NGN data center, the migration will not initiate. If a Linode cannot be migrated because of an incompatibility, you will be prompted to select a different data center or contact support.

  • linodeInstances.mutateLinodeInstance

    Linodes created with now-deprecated Types are entitled to a free upgrade to the next generation. A mutating Linode will be allocated any new resources the upgraded Type provides, and will be subsequently restarted if it was currently running. If any actions are currently running or queued, those actions must be completed first before you can initiate a mutate.

  • linodeInstances.rebootLinodeInstance

    Reboots a Linode you have permission to modify. If any actions are currently running or queued, those actions must be completed first before you can initiate a reboot.

  • linodeInstances.rebuildLinodeInstance

    Rebuilds a Linode you have the read_write permission to modify. A rebuild will first shut down the Linode, delete all disks and configs on the Linode, and then deploy a new image to the Linode with the given attributes. Additionally:

    • Requires an image be supplied.
    • Requires a root_pass be supplied to use for the root User's Account.
    • It is recommended to supply SSH keys for the root User using the authorized_keys field.
  • linodeInstances.removeLinodeIp

    Deletes a public or private IPv4 address associated with this Linode. This will fail if it is the Linode's last remaining public IPv4 address.

  • linodeInstances.rescueLinodeInstance

    Rescue Mode is a safe environment for performing many system recovery and disk management tasks. Rescue Mode is based on the Finnix recovery distribution, a self-contained and bootable Linux distribution. You can also use Rescue Mode for tasks other than disaster recovery, such as formatting disks to use different filesystems, copying data between disks, and downloading files from a disk via SSH and SFTP.

    • Note that "sdh" is reserved and unavailable during rescue.
  • linodeInstances.resetDiskPassword

    Resets the password of a Disk you have permission to read_write.

  • linodeInstances.resetLinodePassword

    Resets the root password for this Linode.

    • Your Linode must be for a password reset to complete.
    • If your Linode has more than one disk (not counting its swap disk), use the endpoint to update a specific disk's root password.
    • A password_reset event is generated when a root password reset is successful.
  • linodeInstances.resizeDisk

    Resizes a Disk you have permission to read_write.

    The Disk must not be in use. If the Disk is in use, the request will succeed but the resize will ultimately fail. For a request to succeed, the Linode must be shut down prior to resizing the Disk, or the Disk must not be assigned to the Linode's active Configuration Profile.

    If you are resizing the Disk to a smaller size, it cannot be made smaller than what is required by the total size of the files current on the Disk.

  • linodeInstances.resizeLinodeInstance

    Resizes a Linode you have the read_write permission to a different Type. If any actions are currently running or queued, those actions must be completed first before you can initiate a resize. Additionally, the following criteria must be met in order to resize a Linode:

    • The Linode must not have a pending migration.
    • Your Account cannot have an outstanding balance.
    • The Linode must not have more disk allocation than the new Type allows.
      • In that situation, you must first delete or resize the disk to be smaller.
  • linodeInstances.restoreBackup

    Restores a Linode's Backup to the specified Linode.

  • linodeInstances.shutdownLinodeInstance

    Shuts down a Linode you have permission to modify. If any actions are currently running or queued, those actions must be completed first before you can initiate a shutdown.

  • linodeInstances.updateDisk

    Updates a Disk that you have permission to read_write.

  • linodeInstances.updateLinodeConfig

    Updates a Configuration profile.

  • linodeInstances.updateLinodeInstance

    Updates a Linode that you have permission to read_write.

    Important: You must be an unrestricted User in order to add or modify tags on Linodes.

  • linodeInstances.updateLinodeIp

    Updates a the reverse DNS (RDNS) for a particular IP Address associated with this Linode.

    Setting the RDNS to null for a public IPv4 address, resets it to the default "ip.linodeusercontent.com" RDNS value.

  • linodeKubernetesEngineLke.createLkeCluster

    Creates a Kubernetes cluster. The Kubernetes cluster will be created asynchronously. You can use the events system to determine when the Kubernetes cluster is ready to use. Please note that it often takes 2-5 minutes before the and the for the new cluster are ready.

  • linodeKubernetesEngineLke.deleteLkeCluster

    Deletes a Cluster you have permission to read_write.

    Deleting a Cluster is a destructive action and cannot be undone.

    Deleting a Cluster:

    • Deletes all Linodes in all pools within this Kubernetes cluster
    • Deletes all supporting Kubernetes services for this Kubernetes cluster (API server, etcd, etc)
    • Deletes all NodeBalancers created by this Kubernetes cluster
    • Does not delete any of the volumes created by this Kubernetes cluster
  • linodeKubernetesEngineLke.deleteLkeClusterKubeconfig

    Delete and regenerate the Kubeconfig file for a Cluster.

  • linodeKubernetesEngineLke.deleteLkeClusterNode

    Deletes a specific Node from a Node Pool.

    Deleting a Node is a destructive action and cannot be undone.

    Deleting a Node will reduce the size of the Node Pool it belongs to.

  • linodeKubernetesEngineLke.deleteLkeNodePool

    Delete a specific Node Pool from a Kubernetes cluster.

    Deleting a Node Pool is a destructive action and cannot be undone.

    Deleting a Node Pool will delete all Linodes within that Pool.

  • linodeKubernetesEngineLke.getLkeCluster

    Get a specific Cluster by ID.

  • linodeKubernetesEngineLke.getLkeClusterApiEndpoints

    List the Kubernetes API server endpoints for this cluster. Please note that it often takes 2-5 minutes before the endpoint is ready after first .

  • linodeKubernetesEngineLke.getLkeClusterDashboard

    Get a access URL for this Cluster, which enables performance of administrative tasks through a web interface.

    Dashboards are installed for Clusters by default.

    To access the Cluster Dashboard login prompt, enter the URL in a web browser. Select either Token or Kubeconfig authentication, then select Sign in.

    For additional guidance on using the Cluster Dashboard, see the section of our guide on .

  • linodeKubernetesEngineLke.getLkeClusterKubeconfig

    Get the Kubeconfig file for a Cluster. Please note that it often takes 2-5 minutes before the Kubeconfig file is ready after first .

  • linodeKubernetesEngineLke.getLkeClusterNode

    Returns the values for a specified node object.

  • linodeKubernetesEngineLke.getLkeClusterPools

    Returns all active Node Pools on a Kubernetes cluster.

  • linodeKubernetesEngineLke.getLkeClusters

    Lists current Kubernetes clusters available on your account.

  • linodeKubernetesEngineLke.getLkeNodePool

    Get a specific Node Pool by ID.

  • linodeKubernetesEngineLke.getLkeVersion

    View a Kubernetes version available for deployment to a Kubernetes cluster.

  • linodeKubernetesEngineLke.getLkeVersions

    List the Kubernetes versions available for deployment to a Kubernetes cluster.

  • linodeKubernetesEngineLke.postLkeClusterNodeRecycle

    Recycles an individual Node in the designated Kubernetes Cluster. The Node will be deleted and replaced with a new Linode, which may take a few minutes. Replacement Nodes are installed with the latest available patch for the Cluster's Kubernetes Version.

    Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.

  • linodeKubernetesEngineLke.postLkeClusterPoolRecycle

    Recycles a Node Pool for the designated Kubernetes Cluster. All Linodes within the Node Pool will be deleted and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are installed with the latest available patch for the Cluster's Kubernetes Version.

    Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.

  • linodeKubernetesEngineLke.postLkeClusterPools

    Creates a new Node Pool for the designated Kubernetes cluster.

  • linodeKubernetesEngineLke.postLkeClusterRecycle

    Recycles all nodes in all pools of a designated Kubernetes Cluster. All Linodes within the Cluster will be deleted and replaced with new Linodes on a rolling basis, which may take several minutes. Replacement Nodes are installed with the latest available for the Cluster's current Kubernetes minor release.

    Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.

  • linodeKubernetesEngineLke.postLkeClusterRegenerate

    Regenerate the Kubeconfig file and/or the service account token for a Cluster.

    This is a helper command that allows performing both the and the actions with a single request.

    When using this command, at least one of kubeconfig or servicetoken is required.

    Note: When regenerating a service account token, the Cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High Availability Clusters should not experience any disruption, while standard Clusters may experience brief control plane downtime while components are restarted.

  • linodeKubernetesEngineLke.postLkecServiceTokenDelete

    Delete and regenerate the service account token for a Cluster.

    Note: When regenerating a service account token, the Cluster's control plane components and Linode CSI drivers are also restarted and configured with the new token. High Availability Clusters should not experience any disruption, while standard Clusters may experience brief control plane downtime while components are restarted.

  • linodeKubernetesEngineLke.putLkeCluster

    Updates a Kubernetes cluster.

  • linodeKubernetesEngineLke.putLkeNodePool

    Updates a Node Pool's count and autoscaler configuration.

    Linodes will be created or deleted to match changes to the Node Pool's count.

    Any local storage on deleted Linodes (such as "hostPath" and "emptyDir" volumes, or "local" PersistentVolumes) will be erased.

  • linodeTypes.getLinodeType

    Returns information about a specific Linode Type, including pricing and specifications. This is used when or Linodes.

  • linodeTypes.getLinodeTypes

    Returns collection of Linode Types, including pricing and specifications for each Type. These are used when or Linodes.

  • longview.createLongviewClient

    Creates a Longview Client. This Client will not begin monitoring the status of your server until you configure the Longview Client application on your Linode using the returning install_code and api_key.

  • longview.deleteLongviewClient

    Deletes a Longview Client from your Account.

    All information stored for this client will be lost.

    This does not uninstall the Longview Client application for your Linode - you must do that manually.

  • longview.getLongviewClient

    Returns a single Longview Client you can access.

  • longview.getLongviewClients

    Returns a paginated list of Longview Clients you have access to. Longview Client is used to monitor stats on your Linode with the help of the Longview Client application.

  • longview.getLongviewPlan

    Get the details of your current Longview plan. This returns a LongviewSubscription object for your current Longview Pro plan, or an empty set {} if your current plan is Longview Free.

    You must have at least one of the following global in order to access this endpoint:

    • "account_access": read_write
    • "account_access": read_only
    • "longview_subscription": true
    • "add_longview": true

    To update your subscription plan, send a request to .

  • longview.getLongviewSubscription

    Get the Longview plan details as a single LongviewSubscription object for the provided subscription ID. This is a public endpoint and requires no authentication.

  • longview.getLongviewSubscriptions

    Returns a paginated list of available Longview Subscriptions. This is a public endpoint and requires no authentication.

  • longview.updateLongviewClient

    Updates a Longview Client. This cannot update how it monitors your server; use the Longview Client application on your Linode for monitoring configuration.

  • longview.updateLongviewPlan

    Update your Longview plan to that of the given subcription ID. This returns a LongviewSubscription object for the updated Longview Pro plan, or an empty set {} if the updated plan is Longview Free.

    You must have "longview_subscription": true configured as a global in order to access this endpoint.

    You can send a request to the endpoint to receive the details, including id's, of each plan.

  • managed.createManagedContact

    Creates a Managed Contact. A Managed Contact is someone Linode special forces can contact in the course of attempting to resolve an issue with a Managed Service.

    This command can only be accessed by the unrestricted users of an account.

  • managed.createManagedCredential

    Creates a Managed Credential. A Managed Credential is stored securely to allow Linode special forces to access your Managed Services and resolve issues.

    This command can only be accessed by the unrestricted users of an account.

  • managed.createManagedService

    Creates a Managed Service. Linode Managed will begin monitoring this service and reporting and attempting to resolve any Issues.

    This command can only be accessed by the unrestricted users of an account.

  • managed.deleteManagedContact

    Deletes a Managed Contact.

    This command can only be accessed by the unrestricted users of an account.

  • managed.deleteManagedCredential

    Deletes a Managed Credential. Linode special forces will no longer have access to this Credential when attempting to resolve issues.

    This command can only be accessed by the unrestricted users of an account.

  • managed.deleteManagedService

    Deletes a Managed Service. This service will no longer be monitored by Linode Managed.

    This command can only be accessed by the unrestricted users of an account.

  • managed.disableManagedService

    Temporarily disables monitoring of a Managed Service.

    This command can only be accessed by the unrestricted users of an account.

  • managed.enableManagedService

    Enables monitoring of a Managed Service.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedContact

    Returns a single Managed Contact.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedContacts

    Returns a paginated list of Managed Contacts on your Account.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedCredential

    Returns a single Managed Credential.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedCredentials

    Returns a paginated list of Managed Credentials on your Account.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedIssue

    Returns a single Issue that is impacting or did impact one of your Managed Services.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedIssues

    Returns a paginated list of recent and ongoing issues detected on your Managed Services.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedLinodeSetting

    Returns a single Linode's Managed settings.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedLinodeSettings

    Returns a paginated list of Managed Settings for your Linodes. There will be one entry per Linode on your Account.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedService

    Returns information about a single Managed Service on your Account.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedServices

    Returns a paginated list of Managed Services on your Account. These are the services Linode Managed is monitoring and will report and attempt to resolve issues with.

    This command can only be accessed by the unrestricted users of an account.

  • managed.getManagedStats

    Returns a list of Managed Stats on your Account in the form of x and y data points. You can use these data points to plot your own graph visualizations. These stats reflect the last 24 hours of combined usage across all managed Linodes on your account giving you a high-level snapshot of data for the following:

    • cpu
    • disk
    • swap
    • network in
    • network out

    This command can only be accessed by the unrestricted users of an account.

  • managed.updateManagedContact

    Updates information about a Managed Contact. This command can only be accessed by the unrestricted users of an account.

  • managed.updateManagedCredential

    Updates the label of a Managed Credential. This endpoint does not update the username and password for a Managed Credential. To do this, use the Managed Credential Username and Password Update () endpoint instead. This command can only be accessed by the unrestricted users of an account.

  • managed.updateManagedCredentialUsernamePassword

    Updates the username and password for a Managed Credential.

    This command can only be accessed by the unrestricted users of an account.

  • managed.updateManagedLinodeSetting

    Updates a single Linode's Managed settings. This command can only be accessed by the unrestricted users of an account.

  • managed.updateManagedService

    Updates information about a Managed Service.

    This command can only be accessed by the unrestricted users of an account.

  • managed.viewManagedSshKey

    Returns the unique SSH public key assigned to your Linode account's Managed service. If you to a Linode on your account, Linode special forces will be able to log in to the Linode with this key when attempting to resolve issues.

    This command can only be accessed by the unrestricted users of an account.

  • networking.allocateIp

    Allocates a new IPv4 Address on your Account. The Linode must be configured to support additional addresses - please requesting additional addresses before attempting allocation.

  • networking.assignIPs

    Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows swapping, shuffling, or otherwise reorganizing IPs to your Linodes.

    The following restrictions apply:

    • All Linodes involved must have at least one public IPv4 address after assignment.
    • Linodes may have no more than one assigned private IPv4 address.
    • Linodes may have no more than one assigned IPv6 range.

    to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.

    Note: Removing an IP address that has been set as a Managed Linode's ssh.ip causes the Managed Linode's SSH access settings to reset to their default values. To view and configure Managed Linode SSH settings, use the following commands:

    • Linode's Managed Settings View ()
    • Linode's Managed Settings Update ()
  • networking.assignIPv4s

    This command is equivalent to IP Addresses Assign ().

    Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows swapping, shuffling, or otherwise reorganizing IPs to your Linodes.

    The following restrictions apply:

    • All Linodes involved must have at least one public IPv4 address after assignment.
    • Linodes may have no more than one assigned private IPv4 address.
    • Linodes may have no more than one assigned IPv6 range.

    to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.

    Note: Removing an IP address that has been set as a Managed Linode's ssh.ip causes the Managed Linode's SSH access settings to reset to their default values. To view and configure Managed Linode SSH settings, use the following commands:

    • Linode's Managed Settings View ()
    • Linode's Managed Settings Update ()
  • networking.createFirewallDevice

    Creates a Firewall Device, which assigns a Firewall to a service (referred to as the Device's entity) and applies the Firewall's Rules to the device.

    • Currently, only Devices with an entity of type linode are accepted.

    • A Firewall can be assigned to multiple Linode instances at a time.

    • A Linode instance can have one active, assigned Firewall at a time. Additional disabled Firewalls can be assigned to a service, but they cannot be enabled if another active Firewall is already assigned to the same service.

    • A firewall_device_add Event is generated when the Firewall Device is added successfully.

  • networking.createFirewalls

    Creates a Firewall to filter network traffic.

    • Use the rules property to create inbound and outbound access rules.

    • Use the devices property to assign the Firewall to a service and apply its Rules to the device. Requires read_write to the device. Currently, Firewalls can only be assigned to Linode instances.

    • A Firewall can be assigned to multiple Linode instances at a time.

    • A Linode instance can have one active, assigned Firewall at a time. Additional disabled Firewalls can be assigned to a service, but they cannot be enabled if another active Firewall is already assigned to the same service.

    • A firewall_create Event is generated when this endpoint returns successfully.

  • networking.deleteFirewall

    Delete a Firewall resource by its ID. This will remove all of the Firewall's Rules from any Linode services that the Firewall was assigned to.

    A firewall_delete Event is generated when this endpoint returns successfully.

  • networking.deleteFirewallDevice

    Removes a Firewall Device, which removes a Firewall from the Linode service it was assigned to by the Device. This will remove all of the Firewall's Rules from the Linode service. If any other Firewalls have been assigned to the Linode service, then those Rules will remain in effect.

    A firewall_device_remove Event is generated when the Firewall Device is removed successfully.

  • networking.deleteIPv6Range

    Removes this IPv6 range from your account and disconnects the range from any assigned Linodes.

    Note: Shared IPv6 ranges cannot be deleted at this time. Please contact Customer Support for assistance.

  • networking.getFirewall

    Get a specific Firewall resource by its ID. The Firewall's Devices will not be returned in the response. Instead, use the endpoint to review them.

  • networking.getFirewallDevice

    Returns information for a Firewall Device, which assigns a Firewall to a Linode service (referred to as the Device's entity). Currently, only Devices with an entity of type linode are accepted.

  • networking.getFirewallDevices

    Returns a paginated list of a Firewall's Devices. A Firewall Device assigns a Firewall to a Linode service (referred to as the Device's entity). Currently, only Devices with an entity of type linode are accepted.

  • networking.getFirewallRules

    Returns the inbound and outbound Rules for a Firewall.

  • networking.getFirewalls

    Returns a paginated list of accessible Firewalls.

  • networking.getIp

    Returns information about a single IP Address on your Account.

  • networking.getIPs

    Returns a paginated list of IP Addresses on your Account, excluding private addresses.

  • networking.getIPv6Pools

    Displays the IPv6 pools on your Account. A pool of IPv6 addresses are routed to all of your Linodes in a single . Any Linode on your Account may bring up any address in this pool at any time, with no external configuration required.

  • networking.getIPv6Range

    View IPv6 range information.

  • networking.getIPv6Ranges

    Displays the IPv6 ranges on your Account.

    • An IPv6 range is a /64 or /54 block of IPv6 addresses routed to a single Linode in a given .

    • Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.

    • Access the IPv6 Range Create () endpoint to add a /64 or /56 block of IPv6 addresses to your account.

  • networking.getVlaNs

    Returns a list of all Virtual Local Area Networks (VLANs) on your Account. VLANs provide a mechanism for secure communication between two or more Linodes that are assigned to the same VLAN and are both within the same Layer 2 broadcast domain.

    VLANs are created and attached to Linodes by using the interfaces property for the following endpoints:

    • Linode Create ()
    • Configuration Profile Create ()
    • Configuration Profile Update ()

    There are several ways to detach a VLAN from a Linode:

    • the active Configuration Profile to remove the VLAN interface, then the Linode.
    • a new Configuration Profile without the VLAN interface, then the Linode into the new Configuration Profile.
    • the Linode.

    Note: Only Next Generation Network (NGN) data centers support VLANs. Use the Regions () endpoint to view the capabilities of data center regions. If a VLAN is attached to your Linode and you attempt to migrate or clone it to a non-NGN data center, the migration or cloning will not initiate. If a Linode cannot be migrated because of an incompatibility, you will be prompted to select a different data center or contact support.

    Note: See the to view additional specifications and limitations.

  • networking.postIPv6Range

    Creates an IPv6 Range and assigns it based on the provided Linode or route target IPv6 SLAAC address. See the ipv6 property when accessing the Linode View () endpoint to view a Linode's IPv6 SLAAC address.

    • Either linode_id or route_target is required in a request.
    • linode_id and route_target are mutually exclusive. Submitting values for both properties in a request results in an error.
    • Upon a successful request, an IPv6 range is created in the that corresponds to the provided linode_id or route_target.
    • Your Linode is responsible for routing individual addresses in the range, or handling traffic for all the addresses in the range.
    • Access the IP Addresses Assign () endpoint to re-assign IPv6 Ranges to your Linodes.

    Note: The following restrictions apply:

    • A Linode can only have one IPv6 range targeting its SLAAC address.
    • An account can only have one IPv6 range in each .
    • to request expansion of these restrictions.
  • networking.shareIPs

    Configure shared IPs.

    IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be automatically rerouted to secondary Linodes at the configured shared IP addresses.

    IP failover requires configuration of a failover service (such as ) within the internal system of the primary Linode.

  • networking.shareIPv4s

    This command is equivalent to IP Addresses Share ().

    Configure shared IPs.

    IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if the primary Linode becomes unresponsive. This means that requests to the primary Linode's IP address can be automatically rerouted to secondary Linodes at the configured shared IP addresses.

    IP failover requires configuration of a failover service (such as ) within the internal system of the primary Linode.

  • networking.updateFirewall

    Updates information for a Firewall. Some parts of a Firewall's configuration cannot be manipulated by this endpoint:

    • A Firewall's Devices cannot be set with this endpoint. Instead, use the and endpoints to assign and remove this Firewall from Linode services.

    • A Firewall's Rules cannot be changed with this endpoint. Instead, use the endpoint to update your Rules.

    • A Firewall's status can be set to enabled or disabled by this endpoint, but it cannot be set to deleted. Instead, use the endpoint to delete a Firewall.

    If a Firewall's status is changed with this endpoint, a corresponding firewall_enable or firewall_disable Event will be generated.

  • networking.updateFirewallRules

    Updates the inbound and outbound Rules for a Firewall.

    Note: This command replaces all of a Firewall's inbound and/or outbound rulesets with the values specified in your request.

  • networking.updateIp

    Sets RDNS on an IP Address. Forward DNS must already be set up for reverse DNS to be applied. If you set the RDNS to null for public IPv4 addresses, it will be reset to the default ip.linodeusercontent.com RDNS value.

  • nodeBalancers.createNodeBalancer

    Creates a NodeBalancer in the requested Region.

    NodeBalancers require a port Config with at least one backend Node to start serving requests.

    When using the Linode CLI to create a NodeBalancer, first create a NodeBalancer without any Configs. Then, create Configs and Nodes for that NodeBalancer with the respective and commands.

  • nodeBalancers.createNodeBalancerConfig

    Creates a NodeBalancer Config, which allows the NodeBalancer to accept traffic on a new port. You will need to add NodeBalancer Nodes to the new Config before it can actually serve requests.

  • nodeBalancers.createNodeBalancerNode

    Creates a NodeBalancer Node, a backend that can accept traffic for this NodeBalancer Config. Nodes are routed requests on the configured port based on their status.

  • nodeBalancers.deleteNodeBalancer

    Deletes a NodeBalancer.

    This is a destructive action and cannot be undone.

    Deleting a NodeBalancer will also delete all associated Configs and Nodes, although the backend servers represented by the Nodes will not be changed or removed. Deleting a NodeBalancer will cause you to lose access to the IP Addresses assigned to this NodeBalancer.

  • nodeBalancers.deleteNodeBalancerConfig

    Deletes the Config for a port of this NodeBalancer.

    This cannot be undone.

    Once completed, this NodeBalancer will no longer respond to requests on the given port. This also deletes all associated NodeBalancerNodes, but the Linodes they were routing traffic to will be unchanged and will not be removed.

  • nodeBalancers.deleteNodeBalancerConfigNode

    Deletes a Node from this Config. This backend will no longer receive traffic for the configured port of this NodeBalancer.

    This does not change or remove the Linode whose address was used in the creation of this Node.

  • nodeBalancers.getNodeBalancer

    Returns a single NodeBalancer you can access.

  • nodeBalancers.getNodeBalancerConfig

    Returns configuration information for a single port of this NodeBalancer.

  • nodeBalancers.getNodeBalancerConfigNodes

    Returns a paginated list of NodeBalancer nodes associated with this Config. These are the backends that will be sent traffic for this port.

  • nodeBalancers.getNodeBalancerConfigs

    Returns a paginated list of NodeBalancer Configs associated with this NodeBalancer. NodeBalancer Configs represent individual ports that this NodeBalancer will accept traffic on, one Config per port.

    For example, if you wanted to accept standard HTTP traffic, you would need a Config listening on port 80.

  • nodeBalancers.getNodeBalancerNode

    Returns information about a single Node, a backend for this NodeBalancer's configured port.

  • nodeBalancers.getNodeBalancers

    Returns a paginated list of NodeBalancers you have access to.

  • nodeBalancers.getNodebalancersNodeBalancerIdStats

    Returns detailed statistics about the requested NodeBalancer.

  • nodeBalancers.rebuildNodeBalancerConfig

    Rebuilds a NodeBalancer Config and its Nodes that you have permission to modify.

    Use this command to update a NodeBalancer's Config and Nodes with a single request.

  • nodeBalancers.updateNodeBalancer

    Updates information about a NodeBalancer you can access.

  • nodeBalancers.updateNodeBalancerConfig

    Updates the configuration for a single port on a NodeBalancer.

  • nodeBalancers.updateNodeBalancerNode

    Updates information about a Node, a backend for this NodeBalancer's configured port.

  • objectStorage.cancelObjectStorage

    Cancel Object Storage on an Account.

    Warning: Removes all buckets and their contents from your Account. This data is irretrievable once removed.

  • objectStorage.createObjectStorageBucket

    Creates an Object Storage Bucket in the specified cluster.

    Accounts with negative balances cannot access this command.

    If the bucket already exists and is owned by you, this endpoint returns a 200 response with that bucket as if it had just been created.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.createObjectStorageKeys

    Provisions a new Object Storage Key on your account.

    Accounts with negative balances cannot access this command.

    • To create a Limited Access Key with specific permissions, send a bucket_access array.

    • To create a Limited Access Key without access to any buckets, send an empty bucket_access array.

    • To create an Access Key with unlimited access to all clusters and all buckets, omit the bucket_access array.

  • objectStorage.createObjectStorageObjectUrl

    Creates a pre-signed URL to access a single Object in a bucket. This can be used to share objects, and also to create/delete objects by using the appropriate HTTP method in your request body's method parameter.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.createObjectStorageSsl

    Upload a TLS/SSL certificate and private key to be served when you visit your Object Storage bucket via HTTPS. Your TLS/SSL certificate and private key are stored encrypted at rest.

    To replace an expired certificate, and upload a new one.

  • objectStorage.deleteObjectStorageBucket

    Removes a single bucket.

    Bucket objects must be removed prior to removing the bucket. While buckets containing objects may be deleted using the , such operations can fail if the bucket contains too many objects. The recommended way to empty large buckets is to use the that remove all objects, then delete the bucket.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.deleteObjectStorageKey

    Revokes an Object Storage Key. This keypair will no longer be usable by third-party clients.

  • objectStorage.deleteObjectStorageSsl

    Deletes this Object Storage bucket's user uploaded TLS/SSL certificate and private key.

  • objectStorage.getObjectStorageBucket

    Returns a single Object Storage Bucket.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.getObjectStorageBucketContent

    Returns the contents of a bucket. The contents are paginated using a marker, which is the name of the last object on the previous page. Objects may be filtered by prefix and delimiter as well; see Query Parameters for more information.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.getObjectStorageBucketinCluster

    Returns a list of Buckets in this cluster belonging to this Account.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.getObjectStorageBuckets

    Returns a paginated list of all Object Storage Buckets that you own.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.getObjectStorageCluster

    Returns a single Object Storage Cluster.

  • objectStorage.getObjectStorageClusters

    Returns a paginated list of Object Storage Clusters that are available for use. Users can connect to the clusters with third party clients to create buckets and upload objects.

  • objectStorage.getObjectStorageKey

    Returns a single Object Storage Key provisioned for your account.

  • objectStorage.getObjectStorageKeys

    Returns a paginated list of Object Storage Keys for authenticating to the Object Storage S3 API.

  • objectStorage.getObjectStorageSsl

    Returns a boolean value indicating if this bucket has a corresponding TLS/SSL certificate that was uploaded by an Account user.

  • objectStorage.getObjectStorageTransfer

    The amount of outbound data transfer used by your account's Object Storage buckets. Object Storage adds 1 terabyte of outbound data transfer to your data transfer pool. See the guide for details on Object Storage transfer quotas.

  • objectStorage.modifyObjectStorageBucketAccess

    Allows changing basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings. Only allows enabling/disabling CORS for all origins, and/or setting canned ACLs.

    For more fine-grained control of both systems, please use the more directly.

  • objectStorage.updateObjectStorageBucketAccess

    Allows changing basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings. Only allows enabling/disabling CORS for all origins, and/or setting canned ACLs.

    For more fine-grained control of both systems, please use the more directly.

  • objectStorage.updateObjectStorageBucketAcl

    Update an Object's configured Access Control List (ACL) in this Object Storage bucket. ACLs define who can access your buckets and objects and specify the level of access granted to those users.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • objectStorage.updateObjectStorageKey

    Updates an Object Storage Key on your account.

  • objectStorage.viewObjectStorageBucketAcl

    View an Object's configured Access Control List (ACL) in this Object Storage bucket. ACLs define who can access your buckets and objects and specify the level of access granted to those users.

    This endpoint is available for convenience. It is recommended that instead you use the more directly.

  • profile.addSshKey

    Adds an SSH Key to your Account profile.

  • profile.createPersonalAccessToken

    Creates a Personal Access Token for your User. The raw token will be returned in the response, but will never be returned again afterward so be sure to take note of it. You may create a token with at most the scopes of your current token. The created token will be able to access your Account until the given expiry, or until it is revoked.

  • profile.deletePersonalAccessToken

    Revokes a Personal Access Token. The token will be invalidated immediately, and requests using that token will fail with a 401. It is possible to revoke access to the token making the request to revoke a token, but keep in mind that doing so could lose you access to the api and require you to create a new token through some other means.

  • profile.deleteProfileApp

    Expires this app token. This token may no longer be used to access your Account.

  • profile.deleteProfilePhoneNumber

    Delete the verified phone number for the User making this request.

    Use this command to opt out of SMS messages for the requesting User after a phone number has been verified with the Phone Number Verify () command.

  • profile.deleteSshKey

    Deletes an SSH Key you have access to.

    Note: deleting an SSH Key will not remove it from any Linode or Disk that was deployed with authorized_keys. In those cases, the keys must be manually deleted on the Linode or Disk. This endpoint will only delete the key's association from your Profile.

  • profile.getDevices

    Returns a paginated list of active TrustedDevices for your User. Browsers with an active Remember Me Session are logged into your account until the session expires or is revoked.

  • profile.getPersonalAccessToken

    Returns a single Personal Access Token.

  • profile.getPersonalAccessTokens

    Returns a paginated list of Personal Access Tokens currently active for your User.

  • profile.getProfile

    Returns information about the current User. This can be used to see who is acting in applications where more than one token is managed. For example, in third-party OAuth applications.

    This endpoint is always accessible, no matter what OAuth scopes the acting token has.

  • profile.getProfileApp

    Returns information about a single app you've authorized to access your Account.

  • profile.getProfileApps

    This is a collection of OAuth apps that you've given access to your Account, and includes the level of access granted.

  • profile.getProfileGrants

    This returns a GrantsResponse describing what the acting User has been granted access to. For unrestricted users, this will return a 204 and no body because unrestricted users have access to everything without grants. This will not return information about entities you do not have access to. This endpoint is useful when writing third-party OAuth applications to see what options you should present to the acting User.

    For example, if they do not have global.add_linodes, you might not display a button to deploy a new Linode.

    Any client may access this endpoint; no OAuth scopes are required.

  • profile.getProfileLogin

    Returns a login object displaying information about a successful account login from this user.

  • profile.getProfileLogins

    Returns a collection of successful account logins from this user during the last 90 days.

  • profile.getSecurityQuestions

    Returns a collection of security questions and their responses, if any, for your User Profile.

  • profile.getSshKey

    Returns a single SSH Key object identified by id that you have access to view.

  • profile.getSshKeys

    Returns a collection of SSH Keys you've added to your Profile.

  • profile.getTrustedDevice

    Returns a single active TrustedDevice for your User.

  • profile.getUserPreferences

    View a list of user preferences tied to the OAuth client that generated the token making the request. The user preferences endpoints allow consumers of the API to store arbitrary JSON data, such as a user's font size preference or preferred display name. User preferences are available for each OAuth client registered to your account, and as such an account can have multiple user preferences.

  • profile.postProfilePhoneNumber

    Send a one-time verification code via SMS message to the submitted phone number. Providing your phone number helps ensure you can securely access your Account in case other ways to connect are lost. Your phone number is only used to verify your identity by sending an SMS message. Standard carrier messaging fees may apply.

    • By accessing this command you are opting in to receive SMS messages. You can opt out of SMS messages by using the Phone Number Delete () command after your phone number is verified.

    • Verification codes are valid for 10 minutes after they are sent.

    • Subsequent requests made prior to code expiration result in sending the same code.

    Once a verification code is received, verify your phone number with the Phone Number Verify () command.

  • profile.postProfilePhoneNumberVerify

    Verify a phone number by confirming the one-time code received via SMS message after accessing the Phone Verification Code Send () command.

    • Verification codes are valid for 10 minutes after they are sent.

    • Only the same User that made the verification code request can use that code with this command.

    Once completed, the verified phone number is assigned to the User making the request. To change the verified phone number for a User, first use the Phone Number Delete () command, then begin the verification process again with the Phone Verification Code Send () command.

  • profile.postSecurityQuestions

    Adds security question responses for your User.

    Requires exactly three unique questions.

    Previous responses are overwritten if answered or reset to null if unanswered.

    Note: Security questions must be answered for your User prior to accessing the Two Factor Secret Create () command.

  • profile.revokeTrustedDevice

    Revoke an active TrustedDevice for your User. Once a TrustedDevice is revoked, this device will have to log in again before accessing your Linode account.

  • profile.tfaConfirm

    Confirms that you can successfully generate Two Factor codes and enables TFA on your Account. Once this is complete, login attempts from untrusted computers will be required to provide a Two Factor code before they are successful.

  • profile.tfaDisable

    Disables Two Factor Authentication for your User. Once successful, login attempts from untrusted computers will only require a password before being successful. This is less secure, and is discouraged.

  • profile.tfaEnable

    Generates a Two Factor secret for your User. To enable TFA for your User, enter the secret obtained from this command with the Two Factor Authentication Confirm/Enable () command. Once enabled, logins from untrusted computers are required to provide a TFA code before they are successful.

    Note: Before you can enable TFA, security questions must be answered for your User by accessing the Security Questions Answer () command.

  • profile.updatePersonalAccessToken

    Updates a Personal Access Token.

  • profile.updateProfile

    Update information in your Profile. This endpoint requires the "account:read_write" OAuth Scope.

  • profile.updateSshKey

    Updates an SSH Key that you have permission to read_write.

    Only SSH key labels can be updated.

  • profile.updateUserPreferences

    Updates a user's preferences. These preferences are tied to the OAuth client that generated the token making the request. The user preferences endpoints allow consumers of the API to store arbitrary JSON data, such as a user's font size preference or preferred display name. An account may have multiple preferences. Preferences, and the pertaining request body, may contain any arbitrary JSON data that the user would like to store.

  • regions.getRegion

    Returns a single Region.

  • regions.getRegions

    Lists the Regions available for Linode services. Not all services are guaranteed to be available in all Regions.

  • stackScripts.addStackScript

    Creates a StackScript in your Account.

  • stackScripts.deleteStackScript

    Deletes a private StackScript you have permission to read_write. You cannot delete a public StackScript.

  • stackScripts.getStackScript

    Returns all of the information about a specified StackScript, including the contents of the script.

  • stackScripts.getStackScripts

    If the request is not authenticated, only public StackScripts are returned.

    For more information on StackScripts, please read our .

  • stackScripts.updateStackScript

    Updates a StackScript.

    Once a StackScript is made public, it cannot be made private.

  • support.closeTicket

    Closes a Support Ticket you have access to modify.

  • support.createTicket

    Open a Support Ticket. Only one of the ID attributes (linode_id, domain_id, etc.) can be set on a single Support Ticket.

  • support.createTicketAttachment

    Adds a file attachment to an existing Support Ticket on your Account. File attachments are used to assist our Support team in resolving your Ticket. Examples of attachments are screen shots and text files that provide additional information.

    The file attachment is submitted in the request as multipart/form-data.

    Note: Accepted file extensions include: .gif, .jpg, .jpeg, .pjpg, .pjpeg, .tif, .tiff, .png, .pdf, or .txt.

  • support.createTicketReply

    Adds a reply to an existing Support Ticket.

  • support.getTicket

    Returns a Support Ticket under your Account.

  • support.getTicketReplies

    Returns a collection of replies to a Support Ticket on your Account.

  • support.getTickets

    Returns a collection of Support Tickets on your Account. Support Tickets can be both tickets you open with Linode for support, as well as tickets generated by Linode regarding your Account. This collection includes all Support Tickets generated on your Account, with open tickets returned first.

  • tags.createTag

    Creates a new Tag and optionally tags requested objects with it immediately.

    Important: You must be an unrestricted User in order to add or modify Tags.

  • tags.deleteTag

    Remove a Tag from all objects and delete it.

    Important: You must be an unrestricted User in order to add or modify Tags.

  • tags.getTaggedObjects

    Returns a paginated list of all objects you've tagged with the requested Tag. This is a mixed collection of all object types.

  • tags.getTags

    Tags are User-defined labels attached to objects in your Account, such as Linodes. They are used for specifying and grouping attributes of objects that are relevant to the User.

    This endpoint returns a paginated list of Tags on your account.

  • volumes.attachVolume

    Attaches a Volume on your Account to an existing Linode on your Account. In order for this request to complete successfully, your User must have read_only or read_write permission to the Volume and read_write permission to the Linode. Additionally, the Volume and Linode must be located in the same Region.

  • volumes.cloneVolume

    Creates a Volume on your Account. In order for this request to complete successfully, your User must have the add_volumes grant. The new Volume will have the same size and data as the source Volume. Creating a new Volume will incur a charge on your Account.

    • Only Volumes with a status of "active" can be cloned.
  • volumes.createVolume

    Creates a Volume on your Account. In order for this to complete successfully, your User must have the add_volumes grant. Creating a new Volume will start accruing additional charges on your account.

  • volumes.deleteVolume

    Deletes a Volume you have permission to read_write.

    • Deleting a Volume is a destructive action and cannot be undone.

    • Deleting stops billing for the Volume. You will be billed for time used within the billing period the Volume was active.

    • Volumes that are migrating cannot be deleted until the migration is finished.

  • volumes.detachVolume

    Detaches a Volume on your Account from a Linode on your Account. In order for this request to complete successfully, your User must have read_write access to the Volume and read_write access to the Linode.

  • volumes.getVolume

    Get information about a single Volume.

  • volumes.getVolumes

    Returns a paginated list of Volumes you have permission to view.

  • volumes.resizeVolume

    Resize an existing Volume on your Account. In order for this request to complete successfully, your User must have the read_write permissions to the Volume.

    • Volumes can only be resized up.
    • Only Volumes with a status of "active" can be resized.
  • volumes.updateVolume

    Updates a Volume that you have permission to read_write.

  • openapi.previewSpec

    Preview an OpenAPI document before adding it as a source

  • openapi.addSource

    Add an OpenAPI source and register its operations as tools