Linode API - Release Notes

Programmatic access to the Linode platform, allowing you to automate tasks through a fully-documented REST API.

API v4.141.0

4.141.0,

Changed

  • User Preferences Update ( PUT /profile/preferences)

    • The total length of the preferences JSON can not exceed 65,535 characters.
  • SSH Key Add ( POST /profile/sshkeys)

    • This command now accepts the ssh_key format sk-ecdsa-sha2-nistp256 (Akamai-specific).

API v4.140.0

4.140.0,

Changed

  • Linode Instances and their Backups now include the “available” read-only property which indicates whether a Linode’s Backups are available for restoration. Backups that are undergoing maintenance are not available for restoration.

Fixed

  • Fixed a bug that caused a Volume’s linode_label to return as null in the response for Volume Resize ( POST /volumes/{volumeId}/resize) and for all Volumes beyond the first when attached to the same Linode for Volumes List ( GET /volumes). Now, linode_label always displays the correct value in responses for these commands.

  • Fixed a bug that caused extra Configs to persist after accessing the Linode Boot into Rescue Mode ( POST /linode/instances/{linodeId}/rescue) command. Now, only the most recent rescue Config persists after booting into rescue mode.

API v4.139.0

4.139.0,

Added

  • Linode Compute Instances now include the read-only host_uuid property. This UUID identifies the host machine of a compute instance, enabling potential failure point identification for applications running on multiple instances.

Changed

Fixed

  • StackScripts are now filterable by rev_note in accordance to the documentation.

API v4.138.0

4.138.0,

Changed

Fixed

  • Image Create ( POST /images)

    • Fixed a bug that allowed successful requests for disks of deleted Linodes, which would lead to failed Image creation. Now, requests for disks of deleted Linodes result in a 404 response.
  • Linode Assign IPs ( POST /networking/ips/assign)

    • Fixed a bug that allowed IP assignment requests with empty address values. Requests must now include IP addresses.
  • Tagged Objects List ( GET/tags/{label})

    • Fixed a bug that produced incorrect Linode statuses in responses.

API v4.137.0

4.137.0,

Changed

  • Domain Create ( POST /domains)

    Domain Update ( PUT /domains/{domainId})

    • axfr_ips and master_ips each now have a total combined length limit of 1000 characters for data within their respective arrays.

Fixed

API v4.136.0

4.136.0,

Changed

Fixed

Removed

  • Managed MongoDB Database Create (POST /databases/mongodb/instances)
    • New MongoDB Databases cannot currently be created.

API v4.135.0

4.135.0,

Changed

API v4.134.0

4.134.0,

Fixed

  • Fixed a bug that caused all Disks on a Linode to return a “not ready” status if one of the disks was not ready.

  • Fixed a bug that caused an error when attempting a Linode Clone while below the limit of 5 concurrent clones. Now, the error only returns when attempting more than 5 concurrent clones of a Linode.

  • Linodes that are in the process of backup restoration can no longer be deleted.

  • Previously, assigning an IP address off of a Managed Linode automatically set the Managed Setting “ssh.access” property to false. Now, assignment of a Managed Linode’s IP Address does not affect its “ssh.access” setting.

API v4.133.0

4.133.0,

Changed

  • Account View ( GET /account)
    • The billing_source property has been added to this command’s response, which specifies whether the Account has an Akamai-specific relationship.

Fixed

  • Fixed a bug that allowed requests to create Managed Databases with an invalid number of nodes. Managed Databases can only be created with 1 or 3 nodes.

API v4.132.0

4.132.0,

Changed

Fixed

  • Fixed a bug regarding removal of VLAN interfaces from Linodes, which prevented certain functions such as migrating Linodes to regions that do not support VLANs.

  • Fixed a bug where removing a Linode IP address failed to update any Managed Linode access settings that involved that IP address. Now, a Managed Linode’s ssh properties are reset to their default values in this case. To view and configure Managed Linode SSH settings, use the Linode’s Managed Settings View ( GET /managed/linode-settings/{linodeId}) and Linode’s Managed Settings Update ( PUT /managed/linode-settings/{linodeId}) commands.

API v4.130.0

4.130.0,

Changed

  • Internal updates only.

API v4.129.0

4.129.0,

Added

You can now manage adding a verified phone number to your User Profile with the following new commands:

You can now manage security questions for your User Profile with the following new commands:

  • Security Questions List ( GET /profile/security-questions)
    • Returns a collection of security questions and their responses, if any, for your User Profile.
  • Security Questions Answer ( POST /profile/security-questions)
    • Adds security question responses for your User, allowing an additional method of authenticating your account.

Changed

API v4.128.0

4.128.0,

Changed

  • Account Update ( PUT /account)
    • The tax_id maximum length is now 25 (previously 100).

Fixed

  • Account Update ( PUT /account)
    • When updating an Account’s country to “US”, an error is now returned if the Account’s zip is an invalid US zip code.

API v4.127.0

4.127.0,

Added

  • Managed MongoDB and PostgreSQL Databases are now available! Commands for utilizing these new engines can be found in our Managed Databases documentation.

Fixed

  • Managed Databases now report an updating status, rather than active, while processing updates to a Database’s allow_list.

API v4.127.1

4.127.1,

Fixed

API v4.126.2

4.126.2,

Changed

  • Internal updates only.

API v4.126.0

4.126.0,

Added

Changed

  • Managed MySQL Database Create ( POST /databases/mysql/instances)

    • The add_databases User grant is now required for unrestricted Users accessing this command.
  • Invoices List ( GET /account/invoices)

    • Invoice data now includes tax summary information, breaking down the total tax amount into subtotals such as state and city taxes.

API v4.126.1

4.126.1,

Changed

  • Internal updates only.

API v4.125.0

4.125.0,

Changed

  • Internal updates only.

API v4.124.0

4.124.0,

Changed

  • Internal updates only.

API v4.123.1

4.123.1,

Changed

  • Internal updates only.

API v4.123.0

4.123.0,

Changed

API v4.122.0

4.122.0,

Changed

  • The beta period for Managed Databases is complete! All Managed Databases endpoints are now generally available.

API v4.121.0

4.121.0,

Changed

API v4.120.0

4.120.0,

Added

Changed

Fixed

API v4.120.1

4.120.1,

Changed

  • Internal updates only.

API v4.119.4

4.119.4,

Changed

  • Internal updates only.

API v4.119.2

4.119.2,

Changed

  • Linode Create ( POST /linode/instances)
    • This command now has a dedicated limit of 10 requests per 30 seconds per user.

API v4.119.3

4.119.3,

Changed

  • Internal updates only.

API v4.119.1

4.119.1,

Changed

  • Internal updates only.

API v4.119.0

4.119.0,

Added

Fixed

  • Kubernetes Cluster Create ( POST /lke/clusters)
    • Fixed a bug that allowed creation of Clusters with invalid autoscaler values.

API v4.118.4

4.118.4,

Changed

  • Internal updates only.

API v4.118.5

4.118.5,

Changed

API v4.118.3

4.118.3,

Changed

API v4.118.1

4.118.1,

Changed

  • Internal updates only.

API v4.118.2

4.118.2,

Changed

  • Internal updates only.

API v4.118.0

4.118.0,

Changed

API v4.117.1

4.117.1,

Added

Changed

API v4.117.0

4.117.0,

Fixed

API v4.116.0

4.116.0,

Changed

  • Internal updates only.

API v4.115.0

4.115.0,

Fixed

  • IP Addresses Share ( POST /networking/ips/share).
    • Fixed a bug that caused a 500 error to be returned when making requests for an inaccessible linode_id.

API v4.114.0

4.114.0,

Changed

  • Internal updates only.

API v4.113.0

4.113.0,

Changed

  • High Availability (HA) Control Plane for Linode Kubernetes Engine (LKE) is now generally available! Enabling LKE HA creates additional replicas of a cluster’s control plane components, and includes a 99.99% uptime SLA. Additional information is available in the following command’s updated request body schema:

API v4.112.3

4.112.3,

Changed

  • Internal updates only.

API v4.112.0

4.112.0,

Added

API v4.111.0

4.111.0,

Changed

Deprecated

API v4.110.0

4.110.0,

Changed

  • Internal updates only.

API v4.109.1

4.109.1,

Changed

API v4.109.0

4.109.0,

Added

Fixed

API v4.108.1

4.108.1,

Changed

API v4.108.0

4.108.0,

Changed

  • Support Ticket Open ( POST /support/tickets):
    • You can now reference a relevant Kubernetes cluster when opening a support ticket with the new lkecluster_id request body property.

API v4.107.0

4.107.0,

Changed

  • Account View ( GET /account):
    • uninvoiced_balance now includes the costs of Custom Images and Linode Kubernetes Engine ( LKE) services (only the free LKE Standard Availability service is currently available).

API v4.106.1

4.106.1,

Fixed

  • Fixed a bug affecting the Network Utilization View ( GET /account/transfer) endpoint for Restricted Users.
  • Fixed a bug that prevented the Linode CLI image-upload plugin from working, including re-enabling the images upload command.

API v4.106.0

4.106.0,

Changed

API v4.105.0

4.105.0,

Changed

Fixed

API v4.104.0

4.104.0,

Added

  • Specify a Payment Method when accessing the Payment Make ( POST /account/payments) endpoint by utilizing the new payment_method_id property.

Fixed

  • Previously, the specification erroneously stated that google_pay type Payment Methods could be added with the Payment Method Add ( POST /account/payment-methods) endpoint. At this time, non-credit_card type Payment Methods can only be added using Linode Cloud Manager. The google_pay type has been removed from the endpoint’s Request Body Schema accordingly.

  • A bug was fixed that uploaded the SSH keys of deleted Users that were included in the authorized_users array when accessing the following endpoints:

API v4.102.0

4.102.0,

Added

Changed

  • Cloud Firewalls are now available in every data center Region! Accordingly, limited availability language has been removed from all Cloud Firewall endpoint descriptions in the specification.

  • You can now add up to 6 active Payment Methods when accessing the Payment Method Add ( POST /account/payment-methods) endpoint. Previously, only one credit_card type and one google_pay type Payment Method was allowed.

Fixed

  • Previously, Restricted Users did not have access to the Cloud Firewalls they created. Now, when a Restricted User creates a Cloud Firewall, that user has read/write access to that Firewall after it is created.

API v4.101.0

4.101.0,

Added

  • You can now deactivate Payment Methods by accessing the Payment Method Delete ( DELETE /account/payment-methods/{paymentMethodId}) endpoint.

  • Linode APIv4 now supports adding an autoscaler configuration for Node Pools using the Linode Kubernetes Engine (LKE) endpoints listed below. Note: While adding an autoscaler config is supported by the Linode APIv4, issuing requests to these endpoints will not yet take any effect on your Node Pools. The cluster-autoscaler will be available in a subsequent Linode Kubernetes Engine release. Please refer to the LKE Changelog to learn when adding an autoscaler config for Node Pools is released.

API v4.100.1

4.100.1,

Added

API v4.99.0

4.99.0,

Added

Changed

  • The id property is now returned for Payment Method Objects when accessing the Payment Methods List ( GET /account/payment-methods) endpoint.

API v4.98.0

4.98.0,

Added

API v4.97.2

4.97.2,

Changed

  • The Maintenance List ( GET /account/maintenance) beta endpoint’s “status” property has been updated as follows:
    • Maintenance objects that were formerly returned as ready are now returned as pending.
    • completed Maintenance objects are no longer returned at this endpoint.

API v4.97.1

4.97.1,

Fixed

  • A bug in the API spec that prevented developers.linode.com from building was fixed.

API v4.97.0

4.97.0,

Added

Changed

API v4.96.0

4.96.0,

Changed

API v4.95.0

4.95.0,

Changed

  • Linode Disks can now be created from Account-specific (“private/”) Images that a user has read_only or read_write access to with the Linode Create ( POST /linode/instances) or Disk Create ( POST/linode/instances/{linodeId}/disks) endpoints. Previously, only users with read_write access to an Account Image could create disks from that Image.

Fixed

API v4.94.0

4.94.0,

Added

  • The Payment Methods List ( GET /account/payment-methods) beta endpoint is now available. Access this endpoint to view a list of the available payment methods for your account. At this time, only the primary credit card for your account is returned from this endpoint; additional payment methods will be listed as they become available.

Fixed

  • The response body for the Image Upload ( POST /images/upload) beta endpoint has been corrected to state that the upload_to property is returned. Previously, the specification stated that the upload_url property was returned.

  • When deploying a new Linode from an Image using the Linode Create ( POST /linode/instances) endpoint, the Image Disk is now created with the maximum allowed disk space (minus the size of the Swap Disk). Previously, the Image Disk was created with the minimum allowed size based on the Image, and required resizing to use the maximum available space.

  • When creating a new Disk from an Image with the Disk Create ( POST /linode/instances/{linodeId}/disks) endpoint, the filesystem for the Image is now used unless otherwise specified. Previously, the ext4 default filesystem was used unless otherwise specified.

  • The “v4” server path has been enabled for the VLANs List ( GET /networking/vlans) endpoint.

  • The description for the Linode “interfaces” property has been updated to clarify that public IP addresses are still assigned but not usable without manual configuration when no public interface is configured.

API v4.93.0

4.93.0,

Added

  • StackScripts now have the mine boolean read-only property, which indicates whether the StackScript is owned by the account of the user making the request. This property can be used to easily filter responses so that only your account’s StackScripts are returned when using the StackScripts List ( GET /stackscripts) endpoint.

  • The Domain Zone File View ( GET /domains/{domainId}/zone-file) has been added. Access this endpoint to view an array containing the lines of the zone file for the last rendered zone of the specified domain.

  • Restricted users can now access Images they created using the Image Upload ( POST /images/upload) beta endpoint.

Changed

  • The responses for the Linodes List ( GET /linode/instances) and NodeBalancers List ( GET /nodebalancers) endpoints are now filterable by their respective ipv4 properties.

  • The response for the Images List ( GET /images) endpoint is now filterable by the type property.

Fixed

  • The read_only property of the Disk Create ( POST /linode/instances/{linodeId}/disks) endpoint’s request body schema was nonfunctional and has been removed from the specification.

  • A bug was fixed that caused the Firewall Update ( PUT /networking/firewalls/{firewallId}) endpoint to incorrectly return a “too many active Firewalls” error. The error incorrectly appeared when a Firewall’s status was set from disabled to enabled after attached Linodes were deleted.

API v4.92.0

4.92.0,

Changed

API v4.91.0

4.91.0,

Changed

  • The Linode VLANs feature has completed beta testing! All beta notices have been removed for endpoints involving VLANs, and VLANS List ( GET /networking/vlans) requests are now accessible at /v4 instead of /v4beta.

  • The descriptions for the following Images endpoints were updated to improve accuracy and clarity:

Fixed

  • A bug was fixed that caused 500 errors to return when empty request bodies or strings were submitted to the Firewall Rules Update ( PUT /networking/firewalls/{firewallId}/rules) beta endpoint. An error is now returned instead.

API v4.90.3

4.90.3,

Added

  • The Image Upload ( POST /images/upload) beta endpoint has been added. This endpoint can be used to initiate a Machine Image upload by creating a new private Image object and returning it, along with the URL the image data can be uploaded to.

API v4.90.0

4.90.0,

Added

  • Support Tickets for VLANs can now be opened. Accordingly, the following properties were added to the Support Ticket Open ( POST /support/tickets) endpoint:
    • vlan: The label of the VLAN this ticket is regarding, if relevant. Requires a specified region to identify the VLAN.
    • region: The Region ID for the associated VLAN this ticket is regarding. This property is only allowed when opening a VLAN ticket.

Fixed

  • Previously, submitting ssl_cert or ssl_key values with improper formatting resulted in a 500 error when using the NodeBalancers Config Update ( /nodebalancers/{nodeBalancerId}/configs/{configId}) endpoint. Now, an error message is returned if improperly formattedssl_cert or ssl_key values are submitted with a request to this endpoint.

API v4.89.1

4.89.1,

Changed

  • The VLANs List ( GET /networking/vlans) beta endpoint description has been updated with the following:
    • Clearer instructions on how to detach a Linode from a VLAN.
    • A note that VLANs cannot be renamed.
    • A note that VLANs cannot be manually deleted. VLANs that are not attached to any Linodes are automatically deleted within a short timeframe.

Fixed

API v4.89.0

4.89.0,

Added

Changed

  • The Account Update ( PUT /account) endpoint zip property has been updated with new restrictions. Previously, the zip only had a 16 character limit. Now, zip may only consist of letters, numbers, spaces, and hyphens, and must not contain more than 9 letter or number characters. These conditions must also be satisfied when accessing the Credit Card Add/Edit ( POST /account/credit-card) endpoint.

Fixed

  • Previously, users without read-write access to Longview Clients could still access their api_key and install_code when accessing the Longview Clients List ( GET /longview/clients) and Longview Client View ( GET /longview/clients/{clientId}) endpoints. Now, [REDACTED] is returned for these properties for users without read-write access to the associated Longview Clients.

  • Previously, the label property for the Linode Create ( POST /linode/instances) request body schema lacked a type specification and restriction. The endpoint’s request body schema has been refactored to include the string type specification and the restriction that Linode labels must end with an alphanumeric character.

API v4.87.0

4.87.0,

Changed

  • The Account View ( GET /account) endpoint response schema has been updated to include the active_promotions.service_type property which specifies the services to which a promotion applies.

Fixed

  • The Service Transfer Create ( POST /account/service-transfers) endpoint description incorrectly stated that Backups for transferred Linodes were not included in a transfer, and associated data would be removed/cancelled. This has been corrected to state that Backups are transferred with Linodes as well.

  • Previously, the IPv6 SLAAC addresses for Linodes were incorrectly returned with /64 prefixes for endpoints such as Linode View ( GET /linode/instances/{linodeId}). This has been fixed so that Linode IPv6 SLAAC addresses are accurately returned with /128 prefixes.

API v4.86.1

4.86.1,

Fixed

  • The Config Rebuild ( POST /nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild) endpoint has been updated as follows:
    • An error was fixed that prevented the linode-cli nodebalancers config-rebuild command from working.
    • Previously, the request body schema incorrectly stated only a configs array is passed to this endpoint. This has been corrected to fully state the request body schema object and properties.
    • The CLI request sample has been updated to include examples of nodes arguments for the linode-cli nodebalancers config-rebuild command.

API v4.86.0

4.86.0,

Added

Changed

  • The following endpoints have been deprecated:

  • The Firewall Create ( POST /networking/firewalls) beta endpoint has been updated with the following:

    • The required rules.inbound_policy and rules.outbound_policy properties were added to allow controlling default behavior for inbound and outbound traffic, respectively.
    • The rules.inbound.action and rules.outbound.action properties were added to control traffic for individual rules. These properties are required for inbound and outbound rules and override the rules.inbound_policy and rules.outbound_policy properties, respectively.
    • Previously, rules.inbound was required. It is now optional.
    • The rules.inbound.label, rules.inbound.description, rules.outbound.label, and rules.outbound.description properties were added for organization and display purposes.
    • Previously, up to five active Firewalls could be assigned to a single Linode service. Now, only one active Firewall can be assigned to a single Linode service.

Fixed

  • A bug has been fixed that prevented correct filtering for the Service Transfers List ( GET /account/service-transfers) endpoint is_sender property.

  • The Volume Attach ( POST /volumes/{volumeId}/attach) endpoint erroneously marked the linode_id property as nullable and required. This has been corrected to state that the property is optional and only accepts an integer.

API v4.85.0

4.85.0,

Fixed

  • The Maintenance List ( GET /account/maintenance) beta endpoint previously returned information for inactive Linodes. This has been fixed to exclude information for inactive Linodes.

  • The Domain Update ( PUT /domains/{domainId}) endpoint request body schema erroneously stated that the domain and type properties were required. The spec has been updated to mark these properties as optional.

  • The Domain Create ( POST /domains) endpoint and Domain Update ( PUT /domains/{domainId}) endpoint SHELL request samples incorrectly stated a display_group property and excluded the tags property. The samples have been updated to state the group and tags properties.

  • The following Domain schema properties have been updated to include the following missing value traits:

    • domain: minimum 1 and maximum 255 characters
    • status: a default value of active
    • refresh_sec: a valid, default value of 0, which is equivalent to 14400
    • retry_sec: a valid, default value of 0, which is equivalent to 14400
    • expire_sec: a valid, default value of 0, which is equivalent to 1209600
  • The Account View ( GET /account) endpoint response body balance_uninvoiced description inaccurately stated that “Bandwidth charges are not included in the estimate.” This has been corrected to state that “Transfer charges are not included in the estimate.”

API v4.84.1

4.84.1,

Changed

  • The Entity Transfer Create ( POST /account/entity-transfers) endpoint description has been updated to include warnings regarding Linode Backups and associated DNS records.

Fixed

API v4.84.0

4.84.0,

Added

Changed

  • The request body schema for the Domain Record Create ( POST /domains/{domainId}/records) endpoint has been updated to include details regarding the different functions of the name and target properties for all record types. Previously, only minor details for the A and AAAA record types were provided.

  • The request body schema for the Firewalls Create ( POST /networking/firewalls) beta endpoint has been updated to specify that the label property is now required and must be unique.

Fixed

  • The shell request sample for the Volume Attach ( POST /volumes/{volumeId}/attach) endpoint erroneously stated a PUT request. It has been corrected to state a POST request.

API v4.83.2

4.83.2,

Changed

  • The limit of Firewalls per Linode service has been increased from 3 to 5. Descriptions for Firewall ( /networking) beta endpoints were updated to reflect this increase.

  • The description for the User Create ( POST /account/users) endpoint has been updated to include details for the email confirmation that is sent to newly-created Users.

  • The description for the Kubernetes Cluster Recycle ( POST /lke/clusters/{clusterId}/recycle) endpoint has been updated to include more descriptive language regarding recycling all Nodes within an LKE Cluster.

Fixed

  • Descriptions for Object Storage ( /object-storage) endpoints contained broken links to S3 API documentation. These links have been fixed.

API v4.83.1

4.83.1,

Fixed

  • Corrected typos found in the API Specification.

API v4.83.0

4.83.0,

Added

Changed

  • The LKE Kubernetes Cluster Update ( PUT /lke/clusters/{clusterId}) endpoint now includes the k8s_version property in its request body schema. This property can be used to upgrade a Kubernetes cluster to the next minor version. New and recycled Nodes in this cluster will be deployed using the latest supported patch of this version.

API v4.82.0

4.82.0,

Fixed

API v4.81.0

4.81.0,

Fixed

  • A bug was fixed to allow preservation of URL parameters for service monitor addresses set at the following endpoints:

  • OAuth Reference has been updated to include Firewall, Maintenance, and Object Storage security scopes.

  • The x-linode-grant for the Event Mark as Seen ( POST /account/events/{eventId}/seen) endpoint has been corrected to read_only. Previously, it was stated as read_write.

  • The OAuth scope for the Firewalls List ( GET /networking/firewalls) endpoint has been correct to firewall:read_only. Previously, it was stated as firewalls:read_only.

API v4.80.0

4.80.0,

Changed

API v4.79.0

4.79.0,

Added

Fixed

API v4.78.3

4.78.3,

Changed

API v4.78.0

4.78.0,

Changed

API v4.77.0

4.77.0,

Added

  • Added the message field to the Event schema object. The message field provides additional information about the event. Additional information may include, but is not limited to, a more detailed representation of events which can help diagnose non-obvious failures. This new field is available on the following Account Event endpoints:

  • Added the deprecated field to the Kernel schema object. If this Kernel is marked as deprecated, this field has a value of true; otherwise, this field is false. This new field is available on the Linode Instances Kernel endpoints:

Changed

  • Updated the endpoint names to follow the convention noun followed by verb. For example, View Account is now named Account View.

  • Updated the description for the Object Storage Key Create ( POST /object-storage/keys) endpoint with information on the available Access Key and Limited Access Key creation options.

  • Updated the bucket_access field description in the ObjectStorageKey schema object with a note about the results of omitting this field when creating a limited access Object Storage Key.

Fixed

  • The User’s Grants View ( GET /account/users/{username}/grants) endpoint was updated to have a less restrictive authorization of account:read_only instead of account:read_write. This fixes the discrepancy between specification and endpoint behavior.

API v4.76.1

4.76.1,

Added

API v4.76.0

4.76.0,

Added

  • When you have active Domains on your Account, but no active Linodes, your domains are not served. The List Notifications ( GET /account/notifications) endpoint now returns a notification to alert you when your Account falls under this case.

  • The NodeBalancers endpoints error messages were improved to include information about a field’s valid values.

Fixed

API v4.75.0

4.75.0,

Added

Linode Cloud Firewall is now available in the Sydney data center as part our Linode Green Light Beta Program. Cloud Firewall is a free service used to create, configure, and add stateful network-based firewalls to Linode services using the Linode Cloud Manager and the Linode APIv4. A Cloud Firewall is independent of the service it is attached to, so you can apply a single Firewall to multiple Linode services. Currently, a Cloud Firewall can only be applied to Linode instances.

API v4.74.0

4.74.0,

Added

API v4.73.0

4.73.0,

Added

  • Added the BETA List Maintenance ( GET /account/maintenance) endpoint. This new beta endpoint allows you to view a collection of maintenance objects for any entity you have permissions to view. Currently, Linodes are the only entities available for viewing.

Fixed

  • A bug was fixed that would result in a 500 error when filtering domain records by a non-existent tag. This will now return a 200 response with an empty pagination result.
  • Previously, NS and CNAME records could be created for each other, resulting in errors when the zone file is rendered. If this is attempted now, the record creation will fail with a “Record conflict” message.
  • Changes were made to the ( GET /linode/instances) endpoint to improve response time.

API v4.72.0

4.72.0,

Added

  • The IPv4 and IPv6 addresses of the DNS resolvers for a region are now accessible at the View Region ( GET /regions/{regionId}) endpoint.

Changed

  • Changing your Longview subscription is no longer available at the Update Account Settings ( PUT /account/settings) endpoint. Accordingly, the longview_subscription property has been removed from the Update Account Settings request body. To update your Longview plan, please use the Update Longview Plan ( PUT /longview/plan) endpoint.

  • Updated the description and response for the View Longview Plan ( GET /longview/plan) endpoint:

    • The previous description stated that this endpoint returns a longview_subscription ID. This has been corrected to state that the response consists of a LongviewSubscription object for your current Longview Pro plan, or an empty set {} if your current plan is Longview Free.
    • The response body and sample have been updated to include the details of the returned LongviewSubscription object for your current Longview plan.
  • Accessing the View Longview Plan ( GET /longview/plan) endpoint now requires one of the following global User Grants:

    • "account_access": read_write
    • "account_access": read_only
    • "longview_subscription": true
    • "add_longview": true
  • Updated the description, request, and response for the Update Longview Plan ( PUT /longview/plan) endpoint:

    • The previous description stated that this endpoint returns a longview_subscription ID. The description has been corrected to state that the response consists of a LongviewSubscription object for the updated Longview Pro plan, or an empty set {} if the updated plan is Longview Free.
    • Accessing this endpoint now requires "longview_subscription": true as a global User Grant.
    • The required OAuth scope has been changed from account:read_write to longview:read_write.
    • The request body schema has been updated to specify possible values for the longview_subscription field and to reflect that it is nullable, with a null value corresponding to Longview Free.
    • The response body and sample have been updated to include the details of the returned LongviewSubscription object.
  • Updated the response for the List Longview Subscriptions ( GET /longview/subscription) and View Longview Subscription ( GET /longview/subscriptions/{subscriptionID}) endpoint:

    • The response id property has been revised to specify possible values.
  • Updated the Object Storage Bucket response schema to include the size property in the List Object Storage Buckets ( GET /object-storage/buckets), Create Object Storage Bucket ( POST /object-storage/buckets), View Object Storage Bucket ( GET /object-storage/buckets/{clusterId}/{bucket}), and List Object Storage Buckets in Cluster ( GET /object-storage/buckets/{clusterId}) endpoints.

Fixed

  • A bug that prevented the Update Longview Plan ( PUT /longview/plan) endpoint from functioning has been fixed. The endpoint will now update your account’s Longview plan as expected.

API v4.70.0

4.70.0,

Added

Changed

Fixed

  • Fixed a bug with domain validation where some multi-level domains were being flagged as invalid.

  • Fixed a bug in CNAME record validation. It now checks all incoming CNAME records against all existing records (CNAME and otherwise) in this domain to make sure there are no conflicts. Relevant endpoints:

  • Updated the OAuth Workflow section to include grant_type as a required parameter when using a refresh token.

  • Switched the order of the name for the Initiate Pending Host Migration/DC Migration endpoint to Initiate DC Migration/Pending Host Migration to clear up any confusion about which part the word Pending applies. Pending refers only to the host migration and not to the data center migration. The POST /linode/instances/{linodeId}/migrate endpoint itself remains unchanged.

API v4.69.0

4.69.0,

Added

Changed

Fixed

API v4.68.0

4.68.0,

Added

  • Added two new endpoints to the Longview collection that are dedicated to viewing and updating an account’s Longview plan:

    • View Longview Plan ( GET /longview-plan): returns the current Longview subscription plan for an account. Can be accessed by users with the longview:read_only grant.

    • Update Longview Plan ( GET /longview-plan): updates the Longview subscription plan for an account. Can be accessed by users with the account:read_write grant.

    Previously, these actions were only possible through the GET /account/settings and PUT /account/settings endpoints.

  • Added two new endpoints to the Account collection that allow unrestricted users to see successful logins that are associated with any user on the account.

    • List All User Logins ( GET /account/logins): returns a collection of successful logins for all users on the account during the last 90 days.

    • View Login ( GET /account/logins/{loginId}): 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.

    Previously, each user (including unrestricted users) could only view logins for their own user (via the GET /profile/logins and GET /profile/logins/{loginId} endpoints).

Changed

  • Previously, the secondary_entity property of nodebalancer_config_create, nodebalancer_config_update, and nodebalancer_config_delete events was not populated. It is now set to the relevant NodeBalancer Config.

  • The address field for Create Managed Service ( POST/managed/services) and Update Managed Service ( PUT /managed/services/{serviceId}) now accepts additional special characters for a service that is monitored by URL ("service_type" : "url").

Fixed

  • The Domains ( /domains) collection previously accepted values up to 255 for the weight property of a Record, while 65535 was the intended maximum. Values up to 65535 are now considered valid.

  • The Domains ( /domains) collection previously returned a generic syntax error whenever a TXT Record was submitted with non-ASCII characters. It will now return a more specific validation error.

  • A bug was fixed that was preventing restricted users with the appropriate access permissions for specific Linode services from adding Tags to those services.

API v4.67.0

4.67.0,

Fixed

  • A bug was fixed that prevented the re-creation of Managed Service labels that had previously been deleted.
  • A bug was fixed that prevented domain updates ( PUT /v4/domains/{domainID}) for pre-existing domains without specifying master_ips.

API v4.66.0

4.66.0,

Changed

  • 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. This is not a new change; however, this note now appears on the Create Linode ( POST /linode/instances) endpoint.

  • The upper limit for page_size can now be set to 500; the default remains 100. Refer to the Pagination section of the Linode API for details on advanced query options.

  • A Linode’s CPU alert value defaults to 90% multiplied by its number of cores. This is not a new change; however, a note has been added to the Linode Instances group of endpoints.

API v4.65.0

4.65.0,

Added

  • The managed_issue field was added to the Open Support Ticket endpoint ( POST /support/tickets).
    • This field designates if the Support ticket is in reference to a Managed Service.
    • You must have a Managed Service enabled to use this designation.
    • No ID attributes (i.e. linode_id, domain_id, etc.) should be provided with this request.

Fixed

  • A bug was fixed that was preventing initiation of scheduled, cross data center migrations.

  • If your Cloud Manager profile’s authentication type is set to a Third-Party Authentication (TPA) method, password_keys can no longer be used as your lish_auth_method when updating your profile ( PUT /profile).

    • To view your Cloud Manager profile’s authentication_type field, send a request to the View Profile endpoint.
  • Capital letters are now accepted for the check_path value when creating ( POST /nodebalancers/{nodeBalancerId}/configs) and updating ( PUT /nodebalancers/{nodeBalancerId}/configs/{configId}) your NodeBalancer Configs.

API v4.64.0

4.64.0,

Added

  • When attempting to stage a PayPal payment ( POST /account/payments/paypal/execute) on an account that has been flagged for no charge, you will receive the following error message, This account cannot be charged.

  • The Profile collection’s authentication_type field can now return a value of github when GitHub Third Party Authentication is enabled for your Profile.

    • Authentication types are chosen through Cloud Manager and authorized when logging into your account.

    Note this functionality is not yet available in Cloud Manager. See the Cloud Manager Changelog for the latest updates.

  • Added the View Network Transfer (year/month) ( GET /linode/instances/{linodeId}/transfer/{year}/{month}) endpoint.

    • This endpoint returns a Linode’s inbound, outbound, and total public network transfer statistics for the specified year and month.

Fixed

  • A bug was fixed that was preventing Block Storage Volumes from successfully attaching to Linodes running Debian 10.

  • Previously, uninvoiced balances were being calculated as slightly lower than their actual amount. This bug was fixed to correctly calculate uninvoiced balances.

    • You can view your account’s uninvoiced balance using the View Account endpoint ( GET /account).
  • Additional logic was added to the Kubernetes collection to ensure that Linode Kubernetes Engine (LKE) service account usernames are less likely to be non-unique.

API v4.63.1

4.63.1,

Added

  • Added List Logins ( GET /profile/logins) endpoint. You may now return a 90 day history of successful account logins for the user making the request.

  • Added the View Login ( GET /profile/logins/{loginId}) endpoint, providing the ability to gain additional information on individual logins from user.

  • New Logins object which contains historical information pertaining to a user login.

Fixed

  • A bug existed which caused shared IP addresses to persist following Linode deletion. This bug has been fixed.

API v4.63.0

4.63.0,

Changed

Fixed

  • A bug was causing LKE nodes in the process of being deleted to still appear as part of an LKE node pool. This bug has been fixed.

API v4.62.0

4.62.0,

Added

  • The following Linode Kubernetes Engine (LKE) Beta Endpoints were added:

Changed

Fixed

  • An LKE cluster’s label, k8s_version, and region properties were incorrectly labeled as being filterable. These properties have been updated in the Linode API v4 schema to no longer display the filterable label.

  • The id property of a Node in an LKE Node Pool was incorrectly documented as being of type number. This has been corrected and the property is now documented as being of type string.

API v4.61.0

4.61.0,

Added

  • You can now add tags when creating an LKE cluster ( POST /lke/clusters). While the tags property existed before, the implementation logic has now been added to support adding tags to an LKE cluster.

  • A tags property was added to the Update Kubernetes Cluster ( PUT /lke/clusters/{clusterId}) endpoint. You can now update or remove existing tags on your LKE clusters. The tags property accepts an array of tags to be applied to your LKE cluster for organizational purposes.

  • The Images collection now contains the updated property. This property returns the date that the current Image was last updated.

Changed

Fixed

  • Validation has been included to prevent users from adding a credit card expiration year greater than 25 years from the current year. A user will now receive an Expiry too far in the future error message when this occurs. This bug fix affects the POST /account/credit-card expiry_year property.

API v4.60.1

4.60.1,

Changed

API v4.60.0

4.60.0,

Added

Fixed

  • Corrected the field for unit price in the List Invoice Items ( GET /account/invoices/{invoiceId}/items) endpoint. Previously, this field was listed as unitprice with type number. It is now correctly listed as unit_price with type string.

  • When a Linode that was deployed from a StackScript is deleted, that StackScript’s deployments_active value should decrease. This property’s value was incorrectly reporting the number of active deployments for a StackScript. While this bug was addressed in a previous API release, additional work was completed to improve the previous fix.

  • Changes were made to improve the performance of the List Networking Information ( GET /linode/instances/{linodeId}/ips) endpoint.

API v4.59.2

4.59.2,

Version Change Notes

The previous API release was assigned version number 4.14.1, while this release is tagged 4.59.2. This is an intentional change to align with internal version numbering. Subsequent releases will continue following the semantic versioning specification.

Added

Changed

  • When a Linode goes into maintenance mode its status field will now display stopped.
  • When creating ( POST /linode/instances) or updating ( PUT /linode/instances) a Linode, its root_pass field must now also meet a password strength score requirement that is calculated internally by the API. If the strength requirement is not met, you will receive a Password does not meet strength requirement error.

Fixed

  • Previously, when creating a Linode ( POST /linode/instances) with a root password of 6 characters a `Password must be between 6 and 128 characters` error was returned. This bug has been fixed and the root_pass field will now accept a password of 6 characters.
  • A bug has been fixed that was causing some Linode disk clones to fail ( POST /linode/instances/{linodeId}/disks/{diskId}/clone).
  • Previously, a bug allowed customers with an account balance of $0 to make a payment ( POST /account/payments) or stage a PayPal payment ( POST /account/payments/paypal) of less than $5 USD. This bug has been fixed. Now, a minimum payment of $5 USD is required for any account with a balance of $0 USD.

API v4.14.1

4.14.1,

Fixed

  • Previously, when restoring from a backup ( POST /linode/instances/{linodeId}/backups/{backupId}/restore) to a Linode that was smaller than the Linode that the backup was created for, disk space could be over allocated. A 400 error message was added to inform the user if they are attempting to restore a backup to a Linode that does not have enough unallocated space available, and over allocation caused by this bug is no longer possible.

API v4.14.0

4.14.0,

Added

Changed

Fixed

  • Previously, View Network Utilization ( GET /account/transfer/) did not include Object Storage outgoing network transfer in its network utilization for the current month. If you have the Linode Object Storage service enabled on your account, View Network Utilization will now include Object Storage’s outgoing network transfer in its total returned amount.
  • When a Linode that was deployed from a StackScript is deleted, that StackScript’s deployments_active value should decrease. This property’s value was incorrectly reporting the number of active deployments for a StackScript. This has been corrected.
  • Previously, after booting a Linode into rescue mode ( POST /linode/instances/{linodeId}/rescue), when attempting to reboot your Linode ( POST /linode/instances/{linodeId}/reboot), you would receive an error message, No bootable config found. This bug has been fixed and the Linode will reboot into the latest configuration profile that isn’t a rescue mode configuration profile.
  • Restoring a Linode ( POST /linode/instances/{linodeId}/backups/{backupId}/restore) from a backup that was still in its post-processing phase returned the error message “backup is not valid”. The error message has been updated to be more descriptive. Now, when you attempt to restore a Linode from a backup that is still post processing, the returned error message is “Backup is currently post-processing”.
  • Iterated on a bug fix with migrations, clones, and host information. If the migration is a disk or a clone, the from_host is the disk. Users can see migration job information in the Event endpoints:
  • Fixed the url in the Close Support Ticket ( POST /support/tickets/{ticketId}/close) endpoint’s Request Sample shell curl example.

API v4.13.0

4.13.0,

Changed

  • Updated OAuth section with detailed private and public workflows.
  • Updated Create Kubernetes Cluster ( POST /lke/clusters) endpoint to include multiple node pools in the CLI code example.
    • Argument order is imperative. The arguments must be in sequential order --node_pools.type [type] followed by --node_pools.count [count] for each node pool.
    • You may add one or more node pool to each cluster.

Fixed

  • Fixed a bug with migrations and host information. If the migration is a disk, the from_host is the disk, if it’s a clone, the from_host is the Linode. Users can see migration job information in the event endpoints:
  • +and, +or, and +order_by filters for tags are now working.
  • Longview will now retain more than 12 hours of statistics for users with the Pro plan.
  • The List Networking Information ( GET /linode/instances/{linodeId}/ips) endpoint has been updated to only output IPv6 addresses for the specified Linode instead of all the IPv6 addresses for the customer.

API v4.12.0

4.12.0,

Changed

  • Removed edit_mode as an option for a Domain’s status property.
    • Use the /domains collection to review your account’s domains.
  • Object Storage is out of Beta. All Object Storage endpoints now point to the /v4 server instead of the /v4beta server.

Fixed

  • When a restricted user with the add_longview grant creates a Longview client, that user should have read_write permissions on the new client.
    • The API correctly grants this permission, and so a user could make successful Update Longview Client ( PUT /longview/clients/{clientId}) endpoint requests for the new client.
    • However, the API would incorrectly report that the user had read_only permissions for that Longview client when viewed with the View User’s Grants ( GET /account/users/{username}/grants) endpoint.
    • This has been corrected, and this endpoint will now report read_write permissions for the new client.
  • Fixed an issue where the duration of an Event with a status of failed would indefinitely increase.
  • Fixed an issue where Isle of Man’s country code was rejected by the Update Account ( PUT /account) endpoint.
  • Updates to Domains:
    • Resolved an issue when importing domains which caused server errors for the API.
    • Previously, the API would only check if a CNAME for a Domain was unique among all of that Domain’s CNAME records. The API will now check to make sure that a CNAME has a name that is unique among all of a Domain’s records.
    • Use the /domains collection to review your account’s domains. Use the Import Domain ( POST /domains/import) to import domains with the API.
  • Previously, the last_successful property of a Linode’s backups property was documented as returning None if no backup had been completed for that Linode. The API actually returns null under this circumstance, and the documentation has been updated to reflect this.
  • Updates to Invoices and InvoiceItems:
    • The API was inappropriately rounding the unitprice on InvoiceItems for certain Linode products. For example, the API would report .01 for the unitprice of an InvoiceItem for a Nanode, while the hourly cost of a Nanode is .0075. This issue did not affect the actual amount billed to a customer.
    • The unitprice, amount, tax, and total properties of an InvoiceItem and the subtotal, tax, and total properties of an Invoice were previously documented as having the type integer, but the API accepted and returned numbers with decimal points. The documentation for these types now list these properties as having the type number.
    • Removed prepay as an option for the type of an InvoiceItem in the API documentation. Prepaid billing reached end of life in March of 2019.
    • Use the List Invoices ( GET /account/invoices), View Invoice ( GET /account/invoices/{invoiceId}), and List Invoice Items ( GET /account/invoices/{invoiceId}/items) endpoints to review your Invoices and InvoiceItems.

API v4.11.0

4.11.0,

Added

API v4.10.0

4.10.0,

Added

  • Added the status property to List Regions ( GET /regions) and View Region ( GET /regions/{regionId}). The status property returns a region’s current operational status.

  • A linode_config_create, linode_config_delete, linode_config_update, disk_create, disk_update Event action can now generate a secondary_entity object. A secondary_entity object displays information about an additional entity that is related to the Event.

  • When creating or updating a Domain Record of type SRV, the target field now accepts a value of .. By setting the target of an SRV record to ., you can indicate that a particular service is not supported at a particular domain. See RFC 6186, section 3.4 for details on this usage.

Fixed

  • You can now use the +order_by operator to filter by region when Listing Linodes ( GET /linode/instances). Previously, this would result in an unable to apply filter error.

API v4.9.0

4.9.0,

Added

Note: These endpoints are prepended with /v4beta instead of /v4.

Changed

Fixed

  • Users will now receive a 200 response when using the Open Support Ticket ( POST /support/tickets) endpoint even if the domain associated with it has the status has_errors.

  • The List Notifications ( GET /account/notifications) endpoint now returns the correct data for the when property for scheduled maintenance/migration notifications.

  • Fixed an issue where users could not enable backups on newly resized Linodes.

API v4.8.0

4.8.0,

Added

  • Added the Cancel Object Storage ( POST /object-storage/cancel) endpoint.
    • This endpoint allows you to remove Object Storage from an Account. All buckets must be empty in order to use this endpoint.
  • Added the duration property to Events, which represents the total duration in seconds that it takes for an Event to complete. Use the List Events ( GET /account/events) and View Event ( GET /account/events/{eventId}) endpoints to review your Account’s Events.
  • The View Account Settings ( GET /account/settings) endpoint has been updated to include the status of an Account’s Object Storage service. The possible values for this status are disabled, suspended, and active.

Changed

  • China UnionPay credit card numbers are now accepted as valid by the Add/Edit Credit Card ( POST /account/credit-card) endpoint.
  • When a Support Ticket is updated, email notifications are sent to customers for those updates. Previously, an email was sent for every Ticket update, including any submitted by the customer. Now, only Ticket updates from Linode Support will prompt an email.

Fixed

  • Calls to the Update User Preferences ( GET /profile/preferences) endpoint were returning an HTTP 500 error. This error has been resolved, and user preferences will now be saved as expected.
  • Domains under the .rio.br second-level domain are now accepted as valid. Domains can be entered with the Create Domain ( POST /domains), Update Domain ( PUT /domains/{domainId}), or Import Domain ( POST /domains/import) endpoints.
  • Fixed an issue where a restricted User with read-only permissions on an Account’s private StackScript could view that StackScript but could not deploy a Linode with it. The restricted User will now be able to deploy the StackScript.

API v4.7.0

4.7.0,

Added

  • Added the tfa_enabled property to the /account/users endpoint collection. This property returns a boolean value indicating if the User has Two Factor Authentication (TFA) enabled. See the Create Two Factor Secret ( POST /profile/tfa-enable) endpoint to enable TFA.
  • Added the upgrade property to the Initiate Pending Host Migration/DC Migration ( POST /linode/instances/{linodeId}/migrate) endpoint
  • The secondary_entity property of a disk_delete Event will now be populated with the disk that has been deleted. This property was not previously assigned a value. The primary entity property for a disk_delete Event is associated with the Linode that the disk was deleted from.

Changed

  • Changed how Notifications for promotional credits are generated:
    • For expiring promotional credits, a Notification was only generated when the promotion was within 7 days of expiring and when 90% of the credit had been used. This Notification would be of type promotion.
    • Now, two different Notifications are generated:
      • A Notification of type promo_expiration will be generated when the promotion is within 7 days of its expiration date.
      • A Notification of type promo_credit_limit will be generated when 90% or more of the promotion’s credit has been used.
    • Notifications of type promotion will no longer be generated.
    • Refer to the List Notifications ( GET /account/notifications) endpoint to view your account’s notifications. Refer to the active_promotions property in the response from the View Account ( GET /account) endpoint for details of your current promotions.

Fixed

  • Improved the error response messages of the Initiate Pending Host Migration/DC Migration ( POST /linode/instances/{linodeId}/migrate) endpoint:
    • This endpoint will return an error when called when both of these conditions are true:
      • The Linode has a /116 IPv6 pool, or IP Sharing is enabled.
      • An NGN data center was specified for the region property.
    • Previously, the error message returned when a /116 pool caused the migration to fail would state that IP Sharing was enabled, which may not have been the case.
    • The endpoint will now return a different error message when a /116 IPv6 pool is present.
  • Support Tickets returned by the List Support Tickets ( GET /support/tickets) endpoint can now be sorted by the closed, opened, and updated properties of a Ticket. This was the intended behavior, but specifying a sorting was not previously honored in the response.
  • In rare circumstances, a Linode may exist without an Invoice Item that corresponds to it. If the Initiate Pending Host Migration/DC Migration ( POST /linode/instances/{linodeId}/migrate) endpoint was called on a Linode under these circumstances, the endpoint would return an error. This error will no longer appear, and the migration will proceed normally (or fail for any other reasons listed in the endpoint’s documentation).
  • The Import Domain ( POST /domains/import) endpoint would sometimes return a 400 error code when a server error had occurred. A 500 error code will now be returned instead, which is in line with our API’s guidance on error codes.

API v4.6.0

4.6.0,

Breaking

Added

  • A linode_reboot Event action can now generate a secondary_entity object. A secondary_entity object displays information about an additional entity that is related to the Event.

  • The List Managed Stats endpoint GET managed/stats 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 cpu, disk, swap, network in, and network out.

Fixed

  • Fixed a formatting error that prevented the filtering and sorting examples within the API documentation from correctly working as presented.

  • Fixed an issue that allowed Linodes with IPv6 /116 pools to attempt to migrate to Next Generation Network (NGN) enabled data centers like Toronto and Mumbai. IPv6 /116 pools are not supported by NGN data centers, so these migrations would never actually progress. A Linode with IPv6 /116 pools will now be prevented from initiating a migration to an NGN data center, and the user will be prompted to contact support.

API v4.5.0

4.5.0,

Added

  • Added the Enable Linode Managed ( POST /account/settings/managed-enable) endpoint to Account.
    • This endpoint enables Linode Managed for the entire account and sends a welcome email to the account’s associated email address.
    • Linode Managed is an incident response service that can monitor any software stack or service reachable over TCP or HTTP.

Changed

  • The List Notifications endpoint ( GET /account/notifications) now provides more detailed information when a pending host migration or DC migration ( POST /linode/instances/{linodeId}/migrate) for a Linode is initiated. This information includes:

    • How many Linodes are in the queue ahead of your Linode. The Linode’s position is dynamically generated, so if the notification is retrieved at an interval, it is always up-to-date.
  • The convenience endpoint List Object Storage Bucket Contents ([GET /object-storage/buckets/{clusterId}/{bucket}/object-list] (/docs/api/object-storage/#object-storage-bucket-contents-list)) now returns two new parameters to help with pagination:

    • is_truncated, a boolean which is true if there is another page of objects and
    • next_marker, a string value to pass to the marker query parameter to get the next page of objects.

Fixed

  • Previously, when restoring a Linode from a backup ( POST /linode/instances/{linodeId}/backups/{backupId}/restore) with overwrite:true, some disks on the Linode were not properly deleted. This bug has been fixed. Additionally, the check to determine if the Linode has enough free disk space during a backup restore has been improved.

  • The List Support Tickets endpoint ( GET /support/tickets) will now properly honor the order_by and x-filter query parameters.

API v4.4.0

4.4.0,

Added

Changed

  • The group property of the Managed Contacts ( /managed/contacts) resource is no longer deprecated.
  • The consultation_group property of the Managed Services ( /managed/services) resource is no longer deprecated.

Fixed

  • Previously, you could initiate a cross data center (DC) migration ( POST /linode/instances/{linodeId}/migrate) even if the Linode already had a pending migration in the queue. Now, if your Linode has a pending migration already queued, you will not be able to initiate a DC migration until it has completed and you will receive an error response, “Linode has a pending migration.” A list of pending migrations, if any, can be accessed from GET /account/notifications.

  • Validation to ensure a running Linode is powered down prior to initiating a cross data center (DC) migration ( POST /linode/instances/{linodeId}/migrate) was removed. This validation is unnecessary because a Linode is automatically powered off, migrated, and then restored to its previous boot state when any Linode migration is initiated.

  • The group property of a managed contacts resource can now be updated ( PUT /managed/contacts/{contactId}) with a null value. Previous PUT validation generated an error when the group property was updated with a null value.

  • When updating ( PUT /linode/stackscripts/{stackscriptId}) a StackScripts resource, the images property no longer accepts an empty array. Previously, there was no validation in place to prevent an empty images property array. This caused a StackScript to no longer be deployable.

  • When listing Managed Services ( GET /managed/services) on a managed account, removed services no longer appear in the response data.

  • A Managed Credential now correctly maps to a Managed Service. Previously, when you created ( POST /managed/services) or updated ( PUT /managed/services/{serviceId}) a Managed Service with a credentials parameter, its Managed Credential Ids did not appropriately map to the service. This resulted in an empty credentials array when listing ( GET /managed/services) or viewing ( GET /managed/services/{serviceId}) a Managed Service.

API v4.3.2

4.3.2,

Added

Changed

  • The maximum credit card payment that can be made with the Make Payment ( POST /account/payments) endpoint is $50,000. This value has not changed, but previously this endpoint would return an HTTP 500 error for payments over this amount. If a payment is attempted with this endpoint that exceeds this limit, an HTTP 400 error with a descriptive error message will now be returned.

  • The number of concurrent clone operations for any given Linode is now limited to five clones. If a call to the Clone Linode ( POST /linode/instances/{linodeId}/clone) endpoint would result in a sixth concurrent clone of a Linode, then the endpoint will return an HTTP 400 error with a descriptive error message.

Fixed

  • Previously, the access boolean of the ssh property of a Linode’s Managed Settings would display true whenever Managed SSH access was disabled for the Linode, and false when it was enabled, contrary to the naming of the property. This property is returned by the List Managed Linode Settings ( GET /managed/linode-settings) and View Linode’s Managed Settings ( GET /managed/linode-settings/{linodeId}) endpoints. This property will now correctly display true when Managed SSH access is enabled and false when Managed SSH access is disabled.

    Similarly, setting this property to true via the Update Linode’s Managed Settings ( PUT /managed/linode-settings/{linodeId}) endpoint would result in Managed SSH access for the Linode being disabled, and setting it to false would result in Managed SSH access being enabled. This behavior is now reversed to align with the naming of the property.

API v4.3.1

4.3.1,

Added

  • Added the active_promotions property to Accounts, as returned by the View Account ( GET /account)) endpoint. This property lists all active promotions on your account.

    Promotions generally offer a set amount of credit that can be used toward your Linode services, and the promotion expires after a specified date. Simply put, a monthly cap on the promotional offer is set. In other words, a promotion offers a certain amount of credit every month, until either the expiration date is passed, or until the total promotional credit is used, whichever comes first.

  • Added promotion to the types of Notifications that can be returned by the List Notifications ( GET /account/notifications) endpoint.

API v4.3.0

4.3.0,

Added

  • Added a new View Managed SSH Key ( GET /managed/credentials/sshkey) endpoint. This endpoint returns the unique SSH public key assigned to your Linode account’s Managed service. If you add this public key 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.

  • Added additional filtering for Events. Events returned by the List Events ( GET /account/events) endpoint can be filtered by an Event entity’s id and type.

    There are a few edge cases when filtering Events by entity ID:

    • Some Event entities do not have IDs associated with them, so they will not be returned when filtering by ID. These include the various account and profile Events.

    • Entities for some Events are assigned the ID of the Linode they correspond to. When filtering by ID for these Events, use the corresponding Linode’s ID. These include the disk and backups Events.

    • Tag Events use a tag’s name for the entity ID field. When filtering by ID for tag Events, supply the name of the tag.

Changed

  • Domain labels can no longer exceed 63 characters. The regular expression that validates new labels has been updated to conform to RFC1035.

  • Default CPU alert thresholds for the Create Linode ( POST /linode/instances) endpoint have been updated. Previously, the default threshold was always set to 90%, regardless of which plan was chosen. This default has been increased to 90% multiplied by the number of cores for a Linode’s plan.

    This increase was made because a Linode’s total CPU capacity is represented as 100%, multiplied by its number of cores. For example, a two core Linode’s CPU capacity is represented as 200%. Therefore, an alert that triggers at 90% of a two core Linode’s CPU capacity should be set to 180%.

Fixed

  • Complex filtering for region labels was not returning expected results, and this has been fixed.

API v4.2.4

4.2.4,

Added

Fixed

  • The Execute Staged/Approved PayPal Payment ( POST /account/payments/paypal/execute) endpoint will return a more helpful error message whenever PayPal’s services are temporarily unavailable.

  • The entity field for an ipaddress_update event is now populated; it was previously null. Events are returned by the List Events ( GET /account/events) and View Event ( GET /account/events/:event_id) endpoints.

  • The entity field for an account_update event is now populated; it was previously null. Events are returned by the List Events ( GET /account/events) and View Event ( GET /account/events/:event_id) endpoints.

  • Calling the Update Profile endpoint ( PUT /profile) without specifying an email in your request could previously trigger a notification email. This notification’s message stated that your email address had been updated, even though it was not changed. This will no longer occur.

  • Previously, if the Create Disk ( POST /linode/instances/:linode_id/disks) or Create Linode ( POST /linode/instances) endpoints were called with a custom image and with a list for the authorized_users field, then those authorized users’ keys were not configured for the root user of the new disk or Linode. Those keys will now be properly configured on the provisioned disk.

API v4.2.3

4.2.3,

Added

Changed

  • Changed behavior of the configs parameter for the POST /linode/instances/{linodeId}/clone endpoint. When an empty array is passed to the configs parameter, no configuration profiles will be cloned from the source Linode.

    Previously, all configuration profiles would be cloned. All behaviors of the disks and configs parameters for this endpoint are now more extensively documented in the API reference.

Fixed

  • When updating the email of an account ( PUT /account) or of a user ( PUT /profile), Linode will now send an email notification to the previous email address that describes this change.

  • Fixed an issue where a user could not set permissions on a domain that contained errors.

  • Fixed a malformed URL in the response for the Enable Managed Service endpoint ( POST /managed/services/{serviceId}/enable).

  • Fixed an issue in which SRV records could only be assigned a port number below 32767. Any port number is now accepted.

  • Fixed a login error that could appear after a user’s session had expired, if the user also had two-factor authentication enabled.

  • Reduced response time for the GET /support/tickets endpoint.

API v4.2.2

4.2.2,

Added

Fixed

  • Fixed an issue that caused backup windows to display improperly.

API v4.2.0

4.2.0,

Added

API v4.1.0

4.1.0,

Added

Fixed

  • Fixed failing validation for Internationalized Domain Names (IDN).
  • When using the View Linode endpoint ( GET /linode/instances/{linodeId}) Linodes that have not been assigned an IPv6 address will have their JSON correctly display null.

API v4.0.25

4.0.25,

Added

API v4.0.24

4.0.24,

Added

Fixed

API v4.0.23

4.0.23,

Added

Changed

  • Changed validation criteria when updating (PUT /linode/instances/{linodeId}/configs/{configId}) the devices property for a Linode’s configuration profile.

    • An empty devices object or a devices object with empty values for device slots is allowed on PUT only if an empty device map already exits. An error will result if a non-empty device map exists for the Linode’s configuration profile.
    • If no devices are specified, booting from this configuration will hold waiting for a device to exist before being able to boot.
    • Previous validation produced an error in all cases when an empty device object or a devices object with empty values for device slots was passed on PUT.
  • Changed validation criteria and behavior when creating (POST /linode/instances/{linodeId}/configs) and updating (PUT /linode/instances/{linodeId}/configs/{configId})the root_device property for a Linode’s configuration profile.

    • If no value or an invalid value is provided, root_device will default to /dev/sda.
    • Previous validation for PUT would result in an error when no value was provided for root_device and an empty device map existed for the Linode’s configuration profile.
    • If the device specified at the root device location is not mounted, the Linode will not boot until a device is mounted.

Fixed

  • page query string parameter no longer errors on large page number values. If the value of page exceeds 2^64/page_size, the last possible page will be returned.
  • swap_size property no longer enforces a max limit when creating a Linode (POST /linode/instances).
  • account:read_only scope is now enforced when listing Account notifications (GET /account/notifications).
  • Fix pagination metadata when listing Volumes (GET /volumes) for accounts that have 100+ Volumes.

API v4.0.22

4.0.22,

Fixed

  • Added validation on the root_device property when creating (POST /linode/instances/{linodeId}/configs) or updating (PUT /linode/instances/{linodeId}/configs/{configId}) a Linode’s configuration profile.
  • Creating an SRV domain record (POST /domains/{domainId}/records) no longer adds an additional extension to the name property.
  • A cloned (POST /domains/{domainId}/clone) MX or SRV Domain record no longer return an incorrect value for the target property (GET /domains/123/records) when the record contains a subdomain.
  • Deprecated data centers are no longer returned from the regions endpoint (GET /regions).
    • Deprecated data centers include Tokyo1 ("id": "ap-northeast-1a", "country": "jp").
  • Viewing (GET /account) and updating your account (PUT /account) now returns a consistent value for the credit_card object’s expiry property.
  • More explicit error messages are returned when creating a NodeBalancer (POST /nodebalancers), creating a NodeBalancer node (POST /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes), updating a NodeBalancer node (PUT /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId}) and an invalid node IP address is provided.

API v4.0.21

4.0.21,

Added

  • Added taxes to invoices and invoice items.
    • Added the subtotal and tax properties to invoices (GET /account/invoices/{invoiceId})
    • The total property of an invoice now represents the total of the invoice after taxes.
    • Added the tax and total properties to invoice items (GET /account/invoices/{invoiceId}/items).
    • An invoice item’s total is the item’s amount plus the taxes levied on the item.
  • The Events endpoints (GET /account/events, GET /account/events/{eventId}) will now include Lassie reboots and reboots of a Linode’s host.

Fixed

  • Reverted ability to filter StackScripts by image (introduced in release 4.0.19).
  • Resizing (POST /linode/instances/{linodeId}/resize) or upgrading (POST /linode/instances/{linodeId}/mutate) a Linode will now throw an error if there is no availability in the Linode’s data center.
  • The backups_enabled property of a Linode will now return true if a Linode’s backups are temporarily paused by the Linode Support Team.
  • Assigning a new credit card to an account (POST /account/credit-card) when the account has an expired credit card on file will no longer return an error.

API v4.0.20

4.0.20,

Added

  • Added a “reserved” section to the GET /linodes/instances/:id/ips endpoint that lists reserved IPs.
  • Added sequence and logo_url to StackScripts.

Fixed

  • Correctly resize disks created with a private image.

API v4.0.19

4.0.19,

Added:

  • Add filtering for StackScripts by image.
    • /stackscripts now accepts X-Filter for images.
  • Increased PayPal max payments amount to $500 USD or credit card limit; whichever value is higher.
    • POST /account/payments/paypal enforces max amount for usd field.

Fixed:

  • Allow filtering on region by slug and slug alias.
    • /instances accepts X-Filter for region using data center slug or slug alias.
  • Support ticket description and replies cannot contain only whitespace or newlines.
    • POST /support/tickets and /support/tickets/:id/replies disallow description field to contain only whitespace or new lines.

API v4.0.18

4.0.18,

Added:

  • Updated POST /account/payments/paypal
    • adds checkout_token to the response
  • Updated GET /profile
    • adds active_since date
    • adds balance_uninvoiced amount

Fixed:

  • GET profile/apps no longer returns internal client tokens

API v4.0.17

4.0.17,

Added:

  • Adds Region Features:
    • Adds features to the Region object. features is a list of strings describing what a region supports.
  • Adds events for the following actions:
    • Domain update, domain record update
    • Image update
    • Linode update, disk update
    • StackScript update
    • Longview client update
    • NodeBalancer update, NodeBalancer config update
    • ssh key update
    • Volume update
    • Linode config create, update, delete

Changed:

  • Tag Validation expanded to 50 characters to accommodate display groups.

API v4.0.16

4.0.16,

Changed:

  • Host API docs from within developers.linode.com to unify navigation/header.
  • Replace external Markdown links in the API spec with anchor tags.

API v4.0.15

4.0.15,

Added:

  • Allow up to 50 characters for Tag labels
  • Removed restriction preventing resize across plan generations
  • Add filtering for entity type and id on Events
    • /account/events now accepts X-Filter for entity.type and entity.id
    • If filtering by entity.id, entity.type is also required
    • Allowed types are: linode, nodebalancer, domain, volume

Fixed:

  • Allow issuing console tokens for IPv6 clients

API v4.0.14

4.0.14,

Added:

  • Documentation for Dedicated CPU class (“dedicated”) in Linode Types

API v4.0.12

4.0.12,

Added:

  • Trusted Devices
    • Lists devices with active Remember Me sessions on the account for the past 30 days, device name and browser used.

API v4.0.13

4.0.13,

Fixed:

  • Mismatched labels/descriptions for fields in API schemas

API v4.0.11

4.0.11,

Added

  • community_like Event type
  • Include prefix_length in ipv6 global pools response

Fixed

  • Consistent ordering of Linode IPv4s
    • Public addresses come before private addresses, order is always the same
  • New Users are assigned a referral code

API v4.0.10

4.0.10,

Added:

  • Added ’tags’ to NodeBalancers
    • The NodeBalancer object now includes “tags”, an array of string
    • POST /nodebalancers now accepts “tags”, an array of strings
    • GET /tags/:tag now returns tagged NodeBalancers in addition to other types

API v4.0.9

4.0.9,

Added

  • Updates tag endpoints to accept and return Volumes
    • GET /tags
    • POST /tags
  • Added tags to Volumes

Fixed

  • Fixed validating RDNS when set via /networking endpoint

API v4.0.8

4.0.8,

Added:

  • Added ’tags’ to Domains
    • The Domain object now includes “tags”, an array of strings
    • POST /domains now accepts “tags”, an array of strings
    • GET /tags/:tag now returns tagged Domains in addition to Linodes

API v4.0.7

4.0.7,

Added:

  • Added “migration_imminent” notification for Linodes that will migrate soon
  • POST /linode/instances/:id/migrate can now initiate scheduled migrations

Fixed:

  • Fixed bad interaction between clone and global backups_enabled that resulted in failed clone

API v4.0.6

4.0.6,

Added

  • Added closeable support tickets via /support/tickets/:id/close
    • Only applies to tickets that are allowed to be closed

API v4.0.5

4.0.5,

Added

  • Added backups-enabled to /account/settings to automatically add backups service for new Linodes.
  • Added tags for Linodes
  • Added linode/types-legacy collection, returning all Linode types that cannot be deployed.
  • Added successor field to Linode Type object.

Fixed

  • Fixed issue with backup windows when a window could not be determined.
  • Fixed bug related to reattaching volumes to another Linode when the original Linode is deleted.

API v4.0.4

4.0.4,

Added

  • Added User SSH Keys
    • Allows storage and deployment of public SSH Keys
    • Added GET /profile/sshkeys
    • Added POST /profile/sshkeys
    • Added GET /profile/sshkeys/{ssh_key_id}
    • Added PUT /profile/sshkeys/{ssh_key_id}
    • Added DELETE /profile/sshkeys/{ssh_key_id}
    • Added SSH Key labels to User object
  • Allow deploying Linodes with stored SSH Keys
    • Added authorized\_users to POST /linodes/instances/
  • Allow rebuilding Linodes with stored SSH Keys
    • Added authorized\_users to POST /linodes/instances/{linode_id}/rebuild
  • Allow deploying Disks with stored SSH Keys
    • Added authorized\_users to POST /linodes/instances/{linode_id}/disks
  • NodeBalancer config rebuild
    • Allows fast track config/node rebuilding
    • POST nodebalancers/{nodebalancerId}/configs/{configId}/rebuild
  • Add expires to Image map for automatic Images

Fixed

  • Removed duplicate event for StackScript creation
  • Fixed typo in DNS error message
  • Added ‘field’ to StackScript errors

API v4.0.3

4.0.3,

Added

  • Added POST /linode/instances/{linodeId}/migrate
    • In some circumstances, a Linode may have pending migrations scheduled that you can initiate when convenient.
    • This endpoint initiates the scheduled migration, which will shut the Linode down, migrate it, and then bring it back to its original state.
  • Added POST /domains/import
    • Imports a domain zone from a remote nameserver that allows zone transfers (AXFR).
  • Added ability to create a Linode with private networking enabled.
    • POST /linode/instances now accepts a boolean “private_ip”.
    • If true, the created Linode will have private networking enabled when created.
  • Added optional “config_id” to POST /linode/instances/{linodeId}/reboot

Fixed

  • Fixed example response for POST /volumes/{volumeId}/attach

API v4.0.2

4.0.2,

Added

  • Added fast-track NodeBalancer creation
    • POST /nodebalancers now accepts “configs”, details of configs to create
    • Each config in “configs” must have at least one node in “nodes”
  • Added X-Spec-Version header to API responses
  • Added persistent ordering to all collections
    • All collections are now returned in a predictable, consistent order
  • Added watchdog_enabled to Linode object
  • Added X-Spec-Version header to all responses
    • This header describes the version of our OpenAPI spec that describes this API

Fixed

  • Require shutting down before resetting root password for a disk
  • Fixed url for Community events

API v4.0.1

4.0.1,

Added

Added missing “resizing” Linode status.

Fixed

  • Fixed bug where Linodes got stuck in rescue mode.
  • Fixed bug when attaching a Volume to a Linode with no configs.
  • API now returns 500 when an IP Address cannot be allocated.
    • Previously, this incorrectly returned a 400.
  • Fixed 500 on POST /domains/:id/records with service.
    • Bug occurred when service was sent into this endpoint without "type": "SRV".
  • Fixed errors caused by illegal characters in URL errors.

API v4.0.0

4.0.0,

Added

  • Added fields to Notification object
    • Added “label” - a brief description of the notification
    • Added “severity” - one of “minor”, “major”, or “critical”
    • Added “until” - a datetime or null
    • Added “notice” to possible values for “type”
  • Added POST /linode/instances/:id/disks/:id/clone
    • This used to be at POST /linode/instances/:id/disks/:id
  • GET /linode/instances is now filterable on “id”
  • GET /account/events is now filterable on “id”

Changed

  • Unify IPv4, IPv6 GET/POST; use “type”: “public”
  • Moved /managed/linode_settings to /managed/linode-settings
    • /managed/linode_settings/:id moved to /managed/linode-settings/:id
    • This was to keep our convention of using dashes in URLs instead of underscores
  • Password no longer accepted in POST /account/users
    • You may no longer provide a password when creating a new user
    • New users will immediately receive a password reset email to set their password
  • Changed returned Region IDs
    • Slugs such as “us-east-1a” are now returned as “us-east”
    • These values had previously been accepted as input.
    • “us-south” was renamed “us-central”
    • Old values are still accepted (and translated) in requests
  • Moved GET/PUT for range/pool v6 addresses to /networking/ips
    • GET /networking/ipv6/:address moved to GET /networking/ips/:address
    • PUT /networking/ipv6/:address moved to GET /networking/ips/:address
  • /linode/instances/$id/rebuild returns a Linode
  • Fixed inconsistent responses for action endpoints
    • POST /linode/instances/:id/backups-enable now returns {} on success
    • POST /linode/instances/:id/backups-disable now returns {} on success
  • Creating a payment now returns the new payment
    • POST /account/payments now returns a Payment object
    • POST /account/payments/paypal/execute now returns a Payment object
  • Moved ipv4-specific networking endpoints
    • POST /networking/ip-assign moved to POST /networking/ipv4/assign
    • POST /networking/ip-sharing moved to POST /networking/ipv4/share
    • POST /networking/ipv4/assign now returns {} on success

Removed:

  • Removed “addresses” from GET /linode/instances/:id/ips response
    • These addresses are now returned in GET /networking/ips
  • Removed the ability to change another user’s email address
    • PUT /account/users/:username no longer accepts “email”
    • PUT /profile can still be used to change your own email address

API 2018-03-14

Added

  • Added support for refresh tokens
    • Apps with an active refresh token are returned in GET /profile/apps
    • Revoking an app’s access to your account expires any refresh tokens it has

Changed

  • Removed the ability to change passwords
    • Removed POST /profile/password
    • Removed POST /account/users/:username/password
    • To reset your password, use manager.linode.com

Fixed

  • Fix output for ipv6 RDNS endpoints
    • PUT /networking/ips/:address now returns the modified v6 address
    • PUT /linode/instances/:id/ips/:address now returns the modified v6 address
  • Nothing has changed for these endpoints when :address is a v4 address
  • Fixed bug setting RDNS for v6 addresses
  • Fixed bug making it impossible to provide authorized_keys when rebuilding a Linode

API 2018-02-26

Added

  • Added GET /networking/ips
    • Returns all ipv4 and ipv6 addresses on your account
  • Added support for short region slugs
    • Omitting the suffix of a region slug picks a default
    • For example, “us-east” is treated as “us-east-1a”
  • Support tickets ordered by status, update date

Changed

  • Unified IPv4 and IPv6 Objects
    • Removed “range” from IPv6 object
    • Added “linode_id” to IPv6 object
    • Added “region” to IPv6 object
  • Removed GET /networking/ipv4
  • Separated /networking/ipv6 into /pools and /ranges
    • Added GET /networking/ipv6/pools
    • Added GET /networking/ipv6/ranges
    • Removed GET /networking/ipv6
  • Changed GET /linode/instances/:id/ips response
    • ipv6.link_local is now a full IPAddress object
  • Improved response for unrestricted user’s grants
    • Changed GET /profile/grants and GET /account/users/:username/grants
    • Now returns a 204 with no content when getting grants for unrestricted users
  • Moved /linode/instances/:id/ips/sharing to /networking/ip-sharing
    • linode_id must now be passed in, along with existing IPs list
  • Removed deprecated “distribution” fields and endpoints
    • Removed GET /linode/distributions
    • Removed GET /linode/distributions/:id
    • These fields or endpoints had been deprecated since 2017-12-11
  • Changed POST /managed/contacts
    • “phone” is an object containing primary and secondary numbers
    • phone_primary -> phone.primary
    • phone_secondary -> phone.secondary
  • Changed account/notifications
    • Removed XSA notification type
    • Renamed balance_outstanding to payment_due
  • Changed error response
    • “field” changed to represent nesting with x.x
  • Changed GET/PUT /account
    • Renamed “vat_number” to “tax_id”
  • Removed managed_issue from POST /support/tickets

Fixed

  • Cloned linodes now copy original Linode’s image
  • Fixed bug parsing OAuth Scopes when creating token

API 2018-01-24

Added

  • Added POST /images to create an image from a disk
  • Added “message” to Notification object
    • Described the notification in a human-readable manner
  • Added ability to enroll in Managed
    • POST /account/settings/managed-enable
  • Added uid to Profile response
  • Added ssl to PUT /nodebalancers/$id/configs/$id

Changed

  • Removed “token” Authorization scheme
    • The same value is accepted as “Bearer”
    • No longer accepted: “Authorization: token $TOKEN”
    • Please send as: “Authorization: Bearer $TOKEN”
  • Changed POST support/tickets
    • Now accepts “managed_issue” (boolean) instead of “managed_issue_type”
  • Reworked backups response
    • Removed “daily” and “weekly”
    • Added “automatic”
    • Removed “availability” from Backup object
    • Removed “service” object
  • Removed /linode/instance/:id/disk/:id/imagize
    • Functionality moved to POST /images
  • Reworked /account/settings into two endpoints
    • Changed /account/settings endpoint to /account
    • network_helper and longview_subscription remain in /account/settings
  • Removed ‘max’ from /account/transfer
  • Removed /nodebalancers/$id/configs/$id/ssl
  • Removed zonefile object from Domain
  • Changed Notification types
    • scheduled_migration -> migration_scheduled
    • pending_migration -> migration_pending
    • scheduled_reboot -> reboot_scheduled
    • outstanding_balance -> balance_outstanding
    • important_ticket -> ticket_important
    • abuse_ticket -> ticket_abuse

Fixed

  • Fix Transfer Pool return values
  • Stopped returning default backups window for Linodes
    • This impacted Linodes that were still scheduling backups only
  • Don’t set cancel_account grant when it’s not requested
  • Suppresses shutdown event notification for rebuild
  • Send emails for TFA to the acting user

API 2018-01-08

Added

  • Added enable, disable managed service endpoints
    • Added POST /managed/services/:id/enable
    • Added POST /managed/services/:id/disable
    • Added status to managed service JSON response object
  • Added GET /managed/stats endpoint
  • Added PUT /managed/linode_settings
  • Added PUT endpoints to managed service
  • Add managed_issue_type to support/tickets/
    • GET /support/tickets returns new managed_issue_type key
    • POST /support/tickets now accepts this key if the account has Managed Services enabled
  • Added GET /managed/issues and GET /managed/issues/:id
    • GET /managed/issues returns all issues, including relevant history
    • GET /managed/issues/:id returns a single issue
    • Since managed issues are backed by support tickets, uses the ticket ID
  • Added vat_number to /account/settings
    • Can be viewed and updated
  • Sends emails when enabling/disabling TFA
  • Rendered zone file returned in Domain object
  • Added DELETE /managed/services/:id endpoint
  • Added DELETE /managed/contacts/:id

Changed

  • Update /linode/distributions and /image responses
    • remove status key
    • remove filesystem key
    • remove last_used key
    • rename creator -> created_by (string)
    • rename min_deploy_size -> size (int)

Fixed

  • Allow filtering of GET /images

API 2017-12-11

Added

  • Added POST account/payments/paypal
    • Stages a PayPal payment and returns the payment_id
  • Added POST account/payments/paypal/execute
    • Execute a PayPal payment that has been authorized in PayPal
    • This is required for Linode to capture funds and credit your account
  • Added POST /domains/$id/clone
    • New endpoint can be reached at POST domains/:domain_id/clone
    • Requires a new domain be provided in the post body

Changed

  • Unify Distributions and Images
    • Removes Distribution.architecture
    • Renames Distribution.updated to last_used (Datetime)
    • Renames Distribution.disk_minimum to min_deploy_size (Integer)
    • Adds Distribution.filesystem (String)
    • Adds Distribution.created (Datetime)
    • Adds Distribution.description (String)
    • Adds Distribution.status (String)
    • Adds Distribution.type (String)
    • Adds Distribution.is_public (Boolean)
    • Adds Distribution.creator (String)
    • Adds Image.deprecated (Boolean)
  • Renamed “distribution” to “image”
    • POST /linode/instances takes “image” instead of “distribution”
    • POST /linode/instances/:id/disks takes “image” instead of “distribution”
    • POST /linode/instances/:id/rebuild takes “image” instead of “distribution”
    • Linode object returns “image” instead of “distribution”
    • StackScript object returns “images” instead of “distributions”
  • Change Image IDs to Slugs
    • slugs match the format private/:image_id
  • Moved volumes to top level
    • Changed all references from /linode/volumes to /volumes

Fixed

  • Ensure POST domain/records accepts and honors ttl_sec
  • Fixed Linode create from a StackScript using UDFs

API 2017-11-20

Changed

  • Reworked UserGrant system
    • Three Grant levels are now enforced: No grants, “read_only”, and “read_write”
    • “read_only” allows access to GET endpoints
    • “read_write” is equivalent to legacy “all” grant
    • Legacy “all” or “access” grants are treated as “read_write”
  • Changed GET /account/users/:username/grants
    • Grants response objects now always include “id”, “label” and “permissions”
    • “permissions” can be null or an enum of either “read_only” or “read_write”
  • Changed PUT /account/users/:username/grants
    • Grants now accepted in the new format detailed above
  • Changed GET /profile/grants
    • Grants returned in new format detailed above
  • Added support for CAA Domain records
  • Changed POST /linode/instances/:id/disks
    • Now accepts “image” - an image ID to deploy from

API 2017-10-23

Changed

  • Changed POST /account/payments
    • Now accepts usd as a string representing a dollar amount, including cents
    • Valid values include “0.10”, “10.00”, “100.20”, and “$1.00”
    • Invalid values include 10, 10.01, “10”, “10.001”, and “10.0”
  • Added GET /account/notifications
    • Read-only collection of Notification objects
    • Returns important information about your account that may require action
  • Added GET /images
    • Lists images on your account
  • Added GET /images/:id
    • View a single image on your account
  • Added PUT /images/:id
    • Update an image on your account
  • Added DELETE /images/:id
    • Deleted an image you own
  • Added POST /linode/instances/:id/disks/:id/imagize
    • Creates a new image from a disk you own
  • Added GET /longview/clients
    • Returns a list of Longview clients on your account
  • Added POST /longview/clients
    • Creates a new Longview client on your account
  • Added GET /longview/clients/:id
    • Returns information on a single Longview client
  • Added PUT /longview/clients/:id
    • Update a single Longview client
  • Added DELETE /longview/clients/:id
    • Removes a Longview client from your account
  • Added GET /longview/subscriptions
    • Returns all available Longview subscription tiers
  • Added GET /longview/subscriptions/:id
    • Returns information one Longview subscription tier
  • Changed GET /account/settings
    • Added “longview_subscription” - the tier at which you are subscribed to longview
  • Changed PUT /account/settings
    • Sending in “null” or an id to “longview_subscription” changes your Longview subscription tier.
  • Change POST /linode/instances
    • Now accepts image - the ID of an image to deploy the Linode with
    • Only one source attribute may be provided
  • Changed POST /linode/instances/:id/rebuild
    • Now accepts image - the ID of an image to rebuild the Linode with
    • Only one source attribute may be provided
  • Added events for enabling/disabling TFA
  • Added Longview and Image grants to GET /users/:id/grants and GET /profile/grants
    • Response now includes longview attribute whose value is an array of grants your user has that relate to Longview clients
    • Response now includes an “images” attribute whose value is an array of grants your user has that relate to images
    • Only applies to restricted users
  • Event objects may now have Longview clients or Images as their entities

API 2017-10-04

Changed

  • EventType has changed from “blockstorage_” to “volume_
  • Changed POST linode/instances/:id/configs
    • Removed root_device_ro
    • Now accepts “helpers”, a dict accepting any/all of “updatedb_disabled”, “distro”, “modules_dep”, “network”, and “devtmpfs_automount”
    • Removed devtmpfs_automount (now in helpers envelope)
  • Changed POST linode/instances/:id/disks
    • root_ssh_key changed to “authorized_keys”, now accepts a list of keys instead of a single string key
  • Changed POST linode/instances
    • root_ssh_key changed to “authorized_keys”, now accepts a list of keys instead of a single string key
  • Changed POST linode/instances/:id/rebuild
    • root_ssh_key changed to “authorized_keys”, now accepts a list of keys instead of a single string key
  • Changed POST linode/instances/:id/rescue
    • disks changed to “devices”, now accepts device mappings in the same format as POST linode/instances/:id/configs
  • Changed Linode object
    • Moved disk, memory, storage, transfer_total, and vcpus into a “specs” envelope
    • transfer_total => transfer in Linode specs
    • transfer_in => network_in
    • transfer_out => network_out
  • Changed LinodeConfig object
    • Removed root_device_ro
  • Changed LinodeType object
    • Moved backups_option.price_hourly to addons.backups.price.hourly
    • Moved backups_option.price_monthly to addons.backups.price.monthly
    • Moved price_hourly to price.hourly
    • Moved price_monthly to price.monthly
  • Changed OAuthToken
    • Removed client envelope
    • Removed type
  • Changed account/tokens
    • Endpoint moved to profile/tokens
    • GET now only returns Personal Access Tokens
  • Changed account/clients
    • Endpoint moved to account/oauth-clients
    • Collection now allows access to all clients for all users on your account if you are an unrestricted user
  • Added profile/apps
    • Collection of authorized third-party applications
  • OAuthClient now has a “public” attribute
    • “public” is an optional argument to POST account/clients that defaults to False
  • Added POST account/credit-card
    • Updates current payment method on file
  • Added GET account/payments
    • Returns a list of all payments made for your account
  • Added GET account/payments/:id
    • Returns information about a single payment made for your account
  • Added POST linode/volumes/:id/clone
  • Changed Disk Status
    • Now always one of “ready”, “not ready”, or “deleting”

API 2017-09-18

Changed

  • Pagination envelope has changed
    • total_pages => pages
    • total_results => results
    • endpoint-specific key is now always “data”
  • Region, Distribution, Type, and Kernel objects are now returned as slugs
    • Previously, entire object was returned as part of other responses
  • POST linode/instances and POST linode/rebuild automatically issue a boot job
    • This behavior can be suppressed by sending “boot”: false in the request
  • Changed POST linode/instances
    • with_backups => backups_enabled
    • Now accepts “booted” - defaults to true if distribution is provided
  • Changed POST linode/instances/:id/clone
    • with_backups => backups_enabled
  • Changed POST linode/instances/:id/rebuild
    • Now accepts “booted” - defaults to true
  • Changed LinodeNetworkingResponse
    • region is now a slug instead of a nested object
  • Changed IPv6 object
    • region is now a slug instead of a nested object
  • Changed Invoice object
    • Removed “paid”
    • Removed “overdue”
  • Changed Region object
    • Removed “label”
  • Changed Backup object
    • regions is now a slug instead of a nested object
  • Changed Distribution object
    • Removed “created”
    • Added “updated”
    • minimum_storage_size => disk_minimum
    • x64 => architecture. architecture is an enum returning either “x86_64” or “i386”
  • Changed IPAddress object
    • region is now a slug instead of a nested object
  • Changed Kernel object
    • x64 => architecture. architecture is an enum returning either “x86_64” or “i386”
  • Changed Linode object
    • storage => disk
    • total_transfer => transfer_total
    • distribution is now a slug instead of a nested object
    • region is now a slug instead of a nested object
    • nested alert objects have been streamlined
    • “enabled” and “threshold” have been removed
    • a value of 0 now represents “disabled”, any other value is “enabled” with that threshold
  • Changed LinodeConfig object
    • disable_updatedb => updatedb_disabled
    • enable_distro_helper => distro
    • enable_modules_dep_helper => modules_dep
    • enable_network_helper => network
    • ram_limit => memory_limit
    • devtmpfs_autocommit moved into “helpers” envelope
  • Changed NodeBalancer object
    • region is now a slug instead of a nested object
  • Changed Type object
    • hourly_price => price_hourly
    • monthly_price => price_monthly
    • ram => memory
    • storage => disk
    • mbits_out => network_out
    • backups_price is now a nested object containing “price_hourly” and “price_monthly”
  • Changed StackScript object
    • Removed “customer_id”
    • distributions is now a list of slugs instead of a list of nested objects
    • Removed “user_id”
    • Added “username”
    • Added “user_gravatar_id”
  • Changed Volume object
    • “status” can no longer contain “contact_support” - will return “offline” in that case
    • region is now a slug instead of a nested object
  • Changes SupportTicket
    • Removed “closed_by”
  • IP Whitelist may not be enabled in PUT profile if it is already disabled
  • Default page size increased to 100
    • Any page size between 25 and 100 may be requested in the url with ?page_size=
  • Linode configs now accept deprecated kernels
  • Linode configs now default kernel to latest, no longer required on POST
  • Added /profile/whitelist
    • GET - list all IPs on user’s whitelist
    • POST - add IP to user’s whitelist
    • Endpoint return a 400 if IP Whitelist is disabled
  • Added /profile/whitelist/:id
    • GET - return one entry on whitelist
    • DELETE - remove address from whitelist
    • Endpoints return a 400 if IP Whitelist if disabled
  • Disk filesystems now default to ext4, no longer required on POST

This page was originally published on


Your Feedback Is Important

Let us know if this guide was helpful to you.