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).
- This command now accepts the
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 asnull
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
Managed Service Create ( POST /managed/services)
Managed Service Update ( PUT /managed/services/{serviceId})
- The
address
property for Managed Services now has a limit of up to 100 characters.
- The
Linodes Assign IPv4s ( POST /networking/ipv4/assign)
- This command is now equivalent to IP Addresses Assign ( POST /networking/ipv4/assign).
Fixed
- StackScripts are now filterable by
rev_note
in accordance to the documentation.
API v4.138.0
4.138.0,Changed
Domain Record Create ( POST /domains/{domainId}/records)
Domain Record Update ( PUT /domains/{domainId}/records/{recordId})
- Requests for CAA records now require valid
target
values depending on the record’stag
. - Requests for PTR records now require a
target
attribute.
- Requests for CAA records now require valid
IPv4 Sharing Configure ( POST /networking/ipv4/share)
- This command is now equivalent to IP Addresses Share ( POST /networking/ips/share).
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.
- Fixed a bug that allowed IP assignment requests with empty
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
andmaster_ips
each now have a total combined length limit of 1000 characters for data within their respective arrays.
Fixed
Linodes Assign IPv4s ( POST /networking/ipv4/assign)
- Fixed a bug that prevented successful swapping of private IPv4 addresses.
NodeBalancer Config Create ( POST /nodebalancers/{nodeBalancerId}/configs)
NodeBalancer Config Update ( PUT /nodebalancers/{nodeBalancerId}/configs/{configId})
- Previously, NodeBalancer Configs were created with default values of 2 for
check_interval
and 30 forcheck_timeout
. This violated the requirement thatcheck_timeout
be greater thancheck_interval
, causing Config Update requests to fail if these values were not updated. Now, the default value forcheck_interval
is 31 when creating NodeBalancer Configs.
- Previously, NodeBalancer Configs were created with default values of 2 for
Promo Credit Add ( POST /account/promo-codes)
- Fixed a bug that caused an incorrect
expire_dt
value in responses.
- Fixed a bug that caused an incorrect
API v4.136.0
4.136.0,Changed
Firewall Create ( POST /networking/firewalls)
Firewall Rules Update ( PUT /networking/firewalls/{firewallId}/rules)
- Firewalls can now be created and updated with rules that allow network traffic for the
IPENCAP
protocol.
- Firewalls can now be created and updated with rules that allow network traffic for the
Fixed
Linodes Assign IPs ( POST /networking/ips/assign)
Linodes Assign IPv4s ( POST /networking/ipv4/assign)
- Fixed a bug that prevented IP assignments involving Linodes with multiple private IP addresses.
Removed
- Managed MongoDB Database Create (POST /databases/mongodb/instances)
- New MongoDB Databases cannot currently be created.
API v4.135.0
4.135.0,Changed
- IPv4 Address Delete (
DELETE /linode/instances/{linodeId}/ips/{address})
- This command can now be used to delete a Linode’s private IPv4 address. Previously, only public IPv4 addresses could be deleted with this command.
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.
- The
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
StackScript Create ( POST /linode/stackscripts)
StackScript Update ( PUT /linode/stackscripts/{stackscriptId})
- StackScripts are now configurable to accept any and all available Image distributions by using the
any/all
value for a StackScript’s “images”.
- StackScripts are now configurable to accept any and all available Image distributions by using the
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.129.0
4.129.0,Added
You can now manage adding a verified phone number to your User Profile with the following new commands:
- Phone Verification Code Send (
POST /profile/phone-number)
- Send a verification code to your phone number.
- Phone Number Verify (
POST /profile/phone-number/verify)
- Use the code to verify your phone number and add it to your User Profile.
- Phone Number Delete (
DELETE /profile/phone-number)
- Remove the verified phone number from your User Profile.
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
Profile View ( PUT /account)
- The
verified_phone_number
property is now included in responses for this command.
- The
Two Factor Authentication Confirm/Enable ( POST /profile/tfa-enable-confirm)
- Prior to accessing this command, security questions must now be answered for your User with the Security Questions Answer ( POST /profile/security-questions) command.
API v4.128.0
4.128.0,Changed
- Account Update (
PUT /account)
- The
tax_id
maximum length is now 25 (previously 100).
- The
Fixed
- Account Update (
PUT /account)
- When updating an Account’s
country
to “US”, an error is now returned if the Account’szip
is an invalid US zip code.
- When updating an Account’s
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 thanactive
, while processing updates to a Database’sallow_list
.
API v4.127.1
4.127.1,Fixed
- Managed MongoDB Database Create (
POST /databases/mongodb/instances)
- The MMAPV1 storage engine now requires MongoDB version < 4.0.
API v4.126.0
4.126.0,Added
- Managed MySQL Database Backup Delete (
DELETE /databases/mysql/instances/{instanceId}/backups/{backupId})
- Individual Database backups can now be deleted using this command.
Changed
Managed MySQL Database Create ( POST /databases/mysql/instances)
- The
add_databases
User grant is now required for unrestricted Users accessing this command.
- The
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.123.0
4.123.0,Changed
- Proper Managed Databases OAuth scopes are now required when accessing the following commands:
- Managed Databases List ( GET /databases/instances)
- Managed MySQL Databases List ( GET /databases/mysql/instances)
- Managed MySQL Database Create ( POST /databases/mysql/instances)
- Managed MySQL Database Delete ( DELETE /databases/mysql/instances/{instanceId})
- Managed MySQL Database View ( GET /databases/mysql/instances/{instanceId})
- Managed MySQL Database Update ( PUT /databases/mysql/instances/{instanceId})
- Managed MySQL Database Backups List ( GET /databases/mysql/instances/{instanceId}/backups)
- Managed MySQL Database Backup Snapshot Create ( POST /databases/mysql/instances/{instanceId}/backups)
- Managed MySQL Database Backup View ( GET /databases/mysql/instances/{instanceId}/backups/{backupId})
- Managed MySQL Database Backup Restore ( POST /databases/mysql/instances/{instanceId}/backups/{backupId}/restore)
- Managed MySQL Database Credentials View ( GET /databases/mysql/instances/{instanceId}/credentials)
- Managed MySQL Database Credentials Reset ( POST /databases/mysql/instances/{instanceId}/credentials/reset)
- Managed MySQL Database Patch ( POST /databases/mysql/instances/{instanceId}/patch)
- Managed MySQL Database SSL Certificate View ( GET /databases/mysql/instances/{instanceId}/ssl)
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
Managed MySQL Database Delete ( DELETE /databases/mysql/instances/{instanceId})
- This command can now be performed on Databases in
failed
anddegraded
states, in addition to those inactive
states.
- This command can now be performed on Databases in
Managed Database Types List ( GET /databases/types)
Managed Database Type View ( GET /databases/types/{typeId})
- The response bodies for these commands have been updated to include engine type in its pricing data.
API v4.120.0
4.120.0,Added
Managed MySQL Database Backup Snapshot Create ( POST /databases/mysql/instances/{instanceId}/backups)
- You can now create Database snapshot backups with this new beta command.
Managed MySQL Database Patch ( POST /databases/mysql/instances/{instanceId}/patch)
- Update the underlying operating system of a Managed MySQL Database with this new beta command.
Changed
Managed MySQL Database Create ( POST /databases/mysql/instances)
- Managed MySQL Databases now include automatic patch updates, which apply security patches and updates to the underlying operating system of the Managed MySQL Database during configurable maintenance windows. These maintenance windows can be updated with the Managed MySQL Database Update ( PUT /databases/mysql/instances/{instanceId}) beta command.
IP Addresses Share ( POST /networking/ips/share)
- This beta command has been re-enabled.
PayPal Payment Stage ( POST /account/payments/paypal) Staged/Approved PayPal Payment Execute ( POST /account/payments/paypal/execute)
- These endpoints have been disabled. PayPal can instead be designated as a Payment Method for automated payments using Cloud Manager.
Fixed
- Managed MySQL Database View (
GET /databases/mysql/instances/{instanceId})
- Fixed a bug preventing this command from executing for provisioning Databases.
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.0
4.119.0,Added
- Kubernetes Cluster Dashboard URL View (
GET /lke/clusters/{clusterId}/dashboard)
- LKE Clusters now include Kubernetes Dashboard! Use this command to view a Cluster Dashboard access URL, which enables performance of administrative tasks through a web interface.
Fixed
- Kubernetes Cluster Create (
POST /lke/clusters)
- Fixed a bug that allowed creation of Clusters with invalid autoscaler values.
API v4.118.5
4.118.5,Changed
- The following Managed Database commands now require that the Database is not provisioning in order to perform:
- Managed MySQL Database Backups List ( GET /databases/mysql/instances/{instanceId}/backups)
- Managed MySQL Database Backup View ( GET /databases/mysql/instances/{instanceId}/backups/{backupId})
API v4.118.3
4.118.3,Changed
- Managed Databases is now in open beta! The following endpoints are now accessible to all customers for testing:
- Managed Database Engines List ( GET /databases/engines)
- Managed Database Engine View ( GET /databases/engines/{engineId})
- Managed Databases List ( GET /databases/instances)
- Managed MySQL Databases List ( GET /databases/mysql/instances)
- Managed MySQL Database Create ( POST /databases/mysql/instances)
- Managed MySQL Database Delete ( DELETE /databases/mysql/instances/{instanceId})
- Managed MySQL Database View ( GET /databases/mysql/instances/{instanceId})
- Managed MySQL Database Update ( PUT /databases/mysql/instances/{instanceId})
- Managed MySQL Database Backups List ( GET /databases/mysql/instances/{instanceId}/backups)
- Managed MySQL Database Backup View ( GET /databases/mysql/instances/{instanceId}/backups/{backupId})
- Managed MySQL Database Backup Restore ( POST /databases/mysql/instances/{instanceId}/backups/{backupId}/restore)
- Managed MySQL Database Credentials View ( GET /databases/mysql/instances/{instanceId}/credentials)
- Managed MySQL Database Credentials Reset ( POST /databases/mysql/instances/{instanceId}/credentials/reset)
- Managed MySQL Database SSL Certificate View ( GET /databases/mysql/instances/{instanceId}/ssl)
- Managed Database Types List ( GET /databases/types)
- Managed Database Type View ( GET /databases/types/{typeId})
API v4.118.0
4.118.0,Changed
- Managed MySQL Database SSL Certificate View (
GET /databases/mysql/instances/{instanceId}/ssl) (beta):
- This command now requires that the Database has an
active
status.
- This command now requires that the Database has an
API v4.117.1
4.117.1,Added
- Managed Databases is now in closed beta! The following endpoints have been added:
- Managed Database Engines List ( GET /databases/engines)
- Managed Database Engine View ( GET /databases/engines/{engineId})
- Managed Databases List ( GET /databases/instances)
- Managed MySQL Databases List ( GET /databases/mysql/instances)
- Managed MySQL Database Create ( POST /databases/mysql/instances)
- Managed MySQL Database Delete ( DELETE /databases/mysql/instances/{instanceId})
- Managed MySQL Database View ( GET /databases/mysql/instances/{instanceId})
- Managed MySQL Database Update ( PUT /databases/mysql/instances/{instanceId})
- Managed MySQL Database Backups List ( GET /databases/mysql/instances/{instanceId}/backups)
- Managed MySQL Database Backup View ( GET /databases/mysql/instances/{instanceId}/backups/{backupId})
- Managed MySQL Database Backup Restore ( POST /databases/mysql/instances/{instanceId}/backups/{backupId}/restore)
- Managed MySQL Database Credentials View ( GET /databases/mysql/instances/{instanceId}/credentials)
- Managed MySQL Database Credentials Reset ( POST /databases/mysql/instances/{instanceId}/credentials/reset)
- Managed MySQL Database SSL Certificate View ( GET /databases/mysql/instances/{instanceId}/ssl)
- Managed Database Types List ( GET /databases/types)
- Managed Database Type View ( GET /databases/types/{typeId})
Changed
- IP Addresses Share (
POST /networking/ips/share):
- This beta command has been disabled. Please use IPv4 Sharing Configure ( POST /networking/ipv4/share) to configure IP sharing.
API v4.117.0
4.117.0,Fixed
Linode Instances: Networking Information List ( GET /linode/instances/{linodeId}/ips/{address})
- Fixed a bug that returned any shared /56 or /64 IPv6 ranges, regardless of which Linodes the ranges were shared with.
Service Transfer Create ( POST /account/service-transfers)
- Service Transfer Accept ( POST /account/service-transfers/{token}/accept)
- Fixed a bug that allowed creating and accepting Service Transfers that included Linodes with shared IPv6 ranges.
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
.
- Fixed a bug that caused a 500 error to be returned when making requests for an inaccessible
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:
- Kubernetes Cluster Update ( PUT /lke/clusters/{clusterId})
API v4.112.0
4.112.0,Added
IP Addresses Share ( POST /networking/ips/share)
- Configure IP address sharing to enabled IP failover between your Linodes.
- Includes limited support for IPv6 pool sharing.
IPv6 Range View ( GET /networking/ipv6/ranges/{range})
- View information for a specific IPv6 range.
API v4.111.0
4.111.0,Changed
The maximum length for a Linode’s
label
has been increased from 32 to 64. This change affects the following endpoints:- Linode Create ( POST /linode/instances)
- Linode Update ( PUT /linode/instances/{linodeId})
- Linode Clone ( POST /linode/instances/{linodeId}/clone)
Object Storage Cancel ( POST /object-storage/cancel):
- This command now automatically removes all buckets and their contents from your account.
- Warning: This data is irretrievable once removed, so please exercise caution when accessing this command.
Deprecated
- The following PayPal-related commands have been deprecated and may be removed in a future release. PayPal can now be designated as a Payment Method for automated payments using
Cloud Manager.
- PayPal Payment Stage ( POST /account/payments/paypal)
- Staged/Approved PayPal Payment Execute ( POST /account/payments/paypal/execute)
API v4.109.1
4.109.1,Changed
- PayPal is now available as a recurring Payment Method. To add a PayPal Payment Method to your Account, please use Linode Cloud Manager. See our guide on
Managing Billing in the Cloud Manager for instructions. Responses for the following commands have been updated:
- Payment Methods List ( GET /account/payment-methods)
- Payment Method View ( GET /account/payment-methods/{paymentMethodId})
API v4.109.0
4.109.0,Added
Linode Assign IPs ( POST /networking/ips/assign):
- Manage both IPv4 address and IPv6 range assignments to your Linodes with this command.
- This command was formerly located at POST /networking/ipv4/assign, which has been re-named to Linode Assign IPv4s.
IPv6 Range Create ( POST /networking/ipv6/ranges):
- Create /54 or /64 IPv6 ranges for your Linodes with this command.
IPv4 Range Delete ( DELETE /networking/ipv6/ranges/{range}):
- Delete IPv6 ranges with this command.
Fixed
- When assigning a VLAN to a Linode, you can now omit or enter an empty string for the Linode’s
interfaces.ipam_address
. This fix affects the following endpoints:- Linode Create ( POST /linode/instances)
- Configuration Profile Create ( POST /linode/instances/{linodeId}/configs)
- Configuration Profile Update ( POST /linode/instances/{linodeId}/configs/{configId})
API v4.108.1
4.108.1,Changed
- Added the ability to support High Availability on Kubernetes Clusters created using LKE. This change can be seen on the following endpoints:
- Kubernetes Cluster Create ( POST /lke/clusters)
- Kubernetes Cluster View ( GET /lke/clusters/{clusterID})
- Kubernetes Cluster Update ( PUT /lke/clusters/{clusterID})
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.
- You can now reference a relevant Kubernetes cluster when opening a support ticket with the new
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 theimages upload
command.
API v4.106.0
4.106.0,Changed
- Suspended Linodes can now be removed with the Linode Delete ( DELETE /linode/instances/{linodeId}) endpoint.
API v4.105.0
4.105.0,Changed
Kernel build dates are now accessible via the
built
value at the following endpoints:- Kernels List ( GET /linode/kernels)
- Kernel View ( GET /linode/kernels/{kernelId})
Block Storage Volume hardware type (HDD or NVME) is now accessible via the
hardware_type
value at the following endpoints:- Volumes List ( GET /volumes)
- Volume View ( GET /volumes/{volumeId})
Fixed
A bug has been fixed by requiring a Volume
active
status for the following endpoints:- Volume Clone ( POST /volumes/{volumeId}/clone)
- Volume Resize ( POST /volumes/{volumeId}/resize)
The following endpoints now return an
updated
value in their responses for public distribution Images:- Images List ( GET /images)
- Image View ( GET /images/{imageId})
Users must now have
read_write
Grants for anydevices
included in requests when accessing the Firewall Create ( POST /networking/firewalls) endpoint.
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. Thegoogle_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:- Linode Create ( POST /linode/instances)
- Disk Create ( POST /linode/instances/{linodeId}/disks)
API v4.102.0
4.102.0,Added
NodeBalancers that are assigned to an individual Linode can be quickly viewed by accessing the Linode NodeBalanacers View ( GET /linode/instances/{linodeId}/nodebalancers) endpoint.
Kubeconfig files for an LKE Cluster can be deleted and regenerated by accessing the Kubeconfig Delete ( DELETE /lke/clusters/{clusterId}/kubeconfig) endpoint.
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 onegoogle_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.
- Kubernetes Cluster Create ( POST /lke/clusters)
- Node Pool Create ( POST /lke/clusters/{clusterId}/pools)
- Node Pool Update ( PUT /lke/clusters/{clusterId}/pools/{poolId})
API v4.100.1
4.100.1,Added
Linode now accepts Google Pay! You can now add
google_pay
type Payment Methods when accessing the Payment Method Add ( POST /account/payment-methods) endpoint.The 202 Error code has been added to the Responses section of the specification. 202 responses are currently possible when using the following endpoints:
- Payment Make ( POST /account/payments)
- Staged/Approved PayPal Payment Execute ( POST /account/payments/paypal/execute)
Restricted users can now be given the ability to add Firewalls by setting the
add_firewalls
global grant when accessing the User’s Grants Update ( PUT /account/users/{username}/grants) endpoint.
API v4.99.0
4.99.0,Added
You can now view individual Payment Method objects by accessing the Payment Method View ( GET /account/payment-methods/{paymentMethodId}) endpoint.
You can now set an existing Payment Method as the default method by accessing the Payment Method Make Default ( POST /account/payment-methods/{paymentMethodId}/make-default) endpoint.
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
- Null MX Domain Records can now be created when accessing the Domain Record Create ( POST /domains/{domainId}/records) and Domain Record Update ( PUT /domains/{domainId}/records/{recordId}) endpoints.
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 aspending
. completed
Maintenance objects are no longer returned at this endpoint.
- Maintenance objects that were formerly returned as
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
Manage your Account’s payment options with the new Payment Method Add ( POST /account/payment-methods) endpoint.
Promo Codes for new sign-ups can now be redeemed with the Promo Credit Add ( POST /account/promo-codes) endpoint. Previously, Promo Codes were entered only while signing up for a new account.
You can now delete individual LKE Nodes with the new Node Delete ( DELETE /lke/clusters/{clusterId}/nodes/{nodeId}) endpoint.
Changed
The Credit Card Add/Edit ( POST /account/credit-card) has been deprecated. Please use the new Payment Method Add ( POST /account/payment-methods) endpoint to manage your Account’s credit card information.
The Maintenance List ( GET /account/maintenance) beta endpoint is now filterable by the
when
property, allowing you to filter maintenance objects based on their date.LKE Node Pools are now taggable when using the Node Pool Create ( POST /lke/clusters/{clusterId}/pools) and Node Pool Update ( PUT /lke/clusters/{clusterId}/pools/{poolId}) endpoints.
Profile referral data, including the referral code, is now only accessible after an Account has an established payment history when using the Profile View ( GET /profile) and Profile Update ( PUT /profile) endpoints.
API v4.96.0
4.96.0,Changed
The following endpoints are now out of Beta and accessible from the “v4” path:
- Image Upload ( POST /images/upload)
- Payment Methods List ( GET /account/payment-methods)
The Payment Methods List ( GET /account/payment-methods) endpoint’s
method
property has been changed totype
, and itsis_default
property type has been changed to a boolean value.
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
orread_write
access to with the Linode Create ( POST /linode/instances) or Disk Create ( POST/linode/instances/{linodeId}/disks) endpoints. Previously, only users withread_write
access to an Account Image could create disks from that Image.
Fixed
- A bug has been fixed that prevented filtering the Firewalls List (
GET /linode/instances/{linodeId}/firewalls) endpoint for the
created
,id
,label
,tags
, andupdated
properties.
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 theupload_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 fromdisabled
toenabled
after attached Linodes were deleted.
API v4.92.0
4.92.0,Changed
- The Linode Firewalls feature has completed beta testing! All beta notices have been removed for endpoints involving Firewalls and the following endpoints are now accessible from the
/v4
path:- Firewalls List ( GET/networking/firewalls)
- Firewall Create ( POST /networking/firewalls)
- Firewall Delete ( DELETE /networking/firewalls/{firewallId})
- Firewall View ( GET /networking/firewalls/{firewallId})
- Firewall Update ( PUT /networking/firewalls/{firewallId})
- Firewall Devices List ( GET /networking/firewalls/{firewallId}/devices)
- Firewall Device Create ( POST /networking/firewalls/{firewallId}/devices)
- Firewall Device Delete ( DELETE /networking/firewalls/{firewallId}/devices/{deviceId})
- Firewall Device View ( GET /networking/firewalls/{firewallId}/devices/{deviceId})
- Firewall Rules List ( GET /networking/firewalls/{firewallId}/rules)
- Firewall Rules Update ( PUT /networking/firewalls/{firewallId}/rules)
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:
- Images List ( GET /images)
- Image Create ( POST /images)
- Image Upload ( POST /images/upload)
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 specifiedregion
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
orssl_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
orssl_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
A bug was fixed that prevented
public
purpose VLAN interfaces that weren’t configured for eth0 from working. This bug has been fixed, and the request body descriptions for thepurpose
property have been updated accordingly for the following endpoints:- Linode Create ( POST /linode/instances)
- Configuration Profile Create ( POST /linode/instances/{linodeId}/configs)
- Configuration Profile Update ( PUT /linode/instances/{linodeId}/configs/{configId})
Previously, the Configuration Profile Update ( PUT /linode/instances/{linodeId}/configs/{configId}) endpoint erroneously stated the
label
anddevices
properties as required and theinterfaces.purpose
property as optional. Thelabel
anddevices
properties are now stated as optional, while theinterfaces.purpose
property is now stated as required.
API v4.89.0
4.89.0,Added
- The VLANs List (
GET /networking/vlans) beta endpoint has been added. VLANs provide a mechanism for secure communication between two or more Linodes that are assigned to the same VLAN and are both within the same Layer 2 broadcast domain. VLANs can be created and attached to Linodes by using the new
interfaces
property at the following endpoints:- Linode Create ( POST /linode/instances)
- Configuration Profile Create ( POST /linode/instances/{linodeId}/configs)
- Configuration Profile Update ( PUT /linode/instances/{linodeId}/configs/{configId})
Changed
- The Account Update (
PUT /account) endpoint
zip
property has been updated with new restrictions. Previously, thezip
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
andinstall_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 thestring
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 thelinode-cli nodebalancers config-rebuild
command.
- An error was fixed that prevented the
API v4.86.0
4.86.0,Added
- The following endpoints for the new Service Transfer feature, which enables transfers of Linodes between customer accounts, have been added:
- Service Transfers List ( GET /account/service-transfers). Returns a collection of all created and accepted Service Transfers.
- Service Transfer Create ( POST /account/service-transfers). Creates a transfer request for the specified services. At this time, only Linodes can be transferred.
- Service Transfer Cancel ( DELETE /account/service-transfers/{token}). Cancels the Service Transfer for the provided token.
- Service Transfer View ( GET /account/service-transfers/{token}). Returns the details of the Service Transfer for the provided token.
- Service Transfer Accept ( POST /account/service-transfers/{token}/accept). Accept an Service Transfer for the provided token to receive the services included in the transfer to your account.
Changed
The following endpoints have been deprecated:
- Entity Transfers List ( GET /account/entity-transfers).
- Entity Transfer Create ( POST /account/entity-transfers).
- Entity Transfer Cancel ( DELETE /account/entity-transfers/{token}).
- Entity Transfer View ( GET /account/entity-transfers/{token}).
- Entity Transfer Accept ( POST /account/entity-transfers/{token}/accept).
The Firewall Create ( POST /networking/firewalls) beta endpoint has been updated with the following:
- The required
rules.inbound_policy
andrules.outbound_policy
properties were added to allow controlling default behavior for inbound and outbound traffic, respectively. - The
rules.inbound.action
andrules.outbound.action
properties were added to control traffic for individual rules. These properties are required for inbound and outbound rules and override therules.inbound_policy
andrules.outbound_policy
properties, respectively. - Previously,
rules.inbound
was required. It is now optional. - The
rules.inbound.label
,rules.inbound.description
,rules.outbound.label
, andrules.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.
- The required
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
andtype
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 thetags
property. The samples have been updated to state thegroup
andtags
properties.The following Domain schema properties have been updated to include the following missing value traits:
domain
: minimum 1 and maximum 255 charactersstatus
: a default value of activerefresh_sec
: a valid, default value of 0, which is equivalent to 14400retry_sec
: a valid, default value of 0, which is equivalent to 14400expire_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
The Linode CLI command examples and schema were faulty and have been fixed for the following endpoints:
- Entity Transfers List ( GET /account/entity-transfers).
- Entity Transfer Create ( POST /account/entity-transfers).
- Entity Transfer Cancel ( DELETE /account/entity-transfers/{token}).
- Entity Transfer View ( GET /account/entity-transfers/{token}).
- Entity Transfer Accept ( POST /account/entity-transfers/{token}/accept).
API v4.84.0
4.84.0,Added
The following endpoints for the new Entity Transfer feature, which enables transfers of Linodes between customer accounts, have been added:
- Entity Transfers List ( GET /account/entity-transfers). Returns a collection of all created and accepted Entity Transfers.
- Entity Transfer Create ( POST /account/entity-transfers). Creates a transfer request for the specified entities. At this time, only Linodes can be transferred.
- Entity Transfer Cancel ( DELETE /account/entity-transfers/{token}). Cancels the Entity Transfer for the provided token.
- Entity Transfer View ( GET /account/entity-transfers/{token}). Returns the details of the Entity Transfer for the provided token.
- Entity Transfer Accept ( POST /account/entity-transfers/{token}/accept). Accept an Entity Transfer for the provided token to receive the entities included in the transfer to your account.
The Linode Firewalls List ( GET /linode/instances/{linodeId}/firewalls) endpoint has been added. This endpoint provides Firewall information for Firewalls associated with a particular Linode.
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
andtarget
properties for all record types. Previously, only minor details for theA
andAAAA
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.0
4.83.0,Added
The LKE Kubernetes Cluster Recycle ( POST /lke/clusters/{clusterId}/recycle) endpoint can now be used to recycle all of the Nodes in a Kubernetes cluster. Replacement Nodes are installed with the latest available patch for the Cluster’s Kubernetes Version.
The LKE Node View ( GET /lke/clusters/{clusterID}/nodes/{nodeId}) endpoint can now be used to view the details of an individual Node within a Kubernetes cluster.
The LKE Node Recycle ( POST /lke/clusters/{clusterId}/nodes/{nodeId}/recycle) endpoint can now be used to recycle a Node within a Kubernetes cluster. Replacement Nodes are installed with the latest available patch for the Cluster’s Kubernetes Version.
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
A bug was fixed to reject leading zeroes on ports set in Firewalls inbound and outbound rules. The following endpoints have been updated to reflect this new exclusion:
- Firewall Create ( POST /networking/firewalls)
- Firewall Update ( PUT /networking/firewalls/{firewallId})
- Firewall Rules Update ( PUT /networking/firewalls/{firewallId}/rules)
The Object Storage Object ACL Config Update ( PUT /object-storage/buckets/{clusterId}/{bucket}/object-acl) endpoint previously specified the object
name
as a query parameter. This was corrected to specify the objectname
in the request body.The following endpoints were corrected to include
page
,pages
, andresults
in their response objects:- User Logins List All ( GET /account/logins)
- Logins List ( GET /profile/logins)
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:
- Managed Service Create ( POST /managed/services)
- Managed Service Update ( PUT /managed/services/{serviceId})
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 toread_only
. Previously, it was stated asread_write
.The OAuth scope for the Firewalls List ( GET /networking/firewalls) endpoint has been correct to
firewall:read_only
. Previously, it was stated asfirewalls:read_only
.
API v4.80.0
4.80.0,Changed
CNAME records now allow for a trailing period (.) on target entries. Previously, a CNAME record ending in a period (.) would result in an error. The endpoints affected by this change are:
- Domain Record Create ( POST /domains/{domainId}/records)
- Domain Record Update ( PUT /domains/{domainId}/records/{recordId})
API v4.79.0
4.79.0,Added
Added the Object Storage Object ACL View ( GET /object-storage/buckets/{clusterId}/{bucket}/object-acl) endpoint. This endpoint returns an Object’s currently configured Access Control List (ACL) within a specific bucket. ACLs define who can access your buckets and objects and specify the level of access granted to those users.
Added the Object Storage Object ACL Update ( PUT /object-storage/buckets/{clusterId}/{bucket}/object-acl) endpoint. This endpoint update’s an Object’s currently configured Access Control List (ACL) within a specific bucket. ACLs define who can access your buckets and objects and specify the level of access granted to those users.
Added the Object Storage Bucket Access Update ( PUT /object-storage/buckets/{clusterId}/{bucket}/access) endpoint. Use this endpoint to update a bucket’s basic Cross-origin Resource Sharing (CORS) and Access Control Level (ACL) settings.
Added the Object Storage Transfer View ( GET /object-storage/transfer) endpoint. This endpoint returns the amount of outbound data transfer used by your account’s Object Storage buckets. Object Storage adds 1 terabyte of outbound data transfer to your data transfer pool. See the Object Storage Pricing guide for details on Object Storage transfer quotas.
Added the
objects
field to the following Object Storage endpoints:- Object Storage Buckets List ( GET /object-storage/buckets)
- Object Storage Buckets in Cluster List ( GET /object-storage/buckets/{clusterId})
- Object Storage Bucket View ( GET /object-storage/buckets/{clusterId}/{bucket})
The
object
field returns the number of objects stored in a bucket.
Fixed
Error messages for Firewall endpoints have been improved. When applicable, they now return a Firewall Device’s
label
andid
.Fixed the Ticket Attachment Create ( POST /support/tickets/{ticketId}/attachments) endpoint’s SHELL example with the correct way to attach a file when creating a support ticket.
API v4.78.3
4.78.3,Changed
Linode’s API v4 documentation has been moved to reside in the new Linode Docs site.
- Our OpenAPI specification can now be downloaded at https://www.linode.com/docs/api/openapi.yaml.
- Any links within the spec file have been updated to reflect this new location.
All links within API changelog entries have been updated to reflect the new location of the API v4 spec file.
API v4.78.0
4.78.0,Changed
- The
cvv
field in the Credit Card Add/Edit ( POST https://api.linode.com/v4/account/credit-card) endpoint is now required.
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:- Event List ( GET /account/events)
- Event View ( GET /account/events/{eventId})
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:- Kernels List ( GET /linode/kernels)
- Kernel View ( GET /linode/kernels/{kernelId})
Changed
Updated the endpoint names to follow the convention
noun
followed byverb
. For example,View Account
is now namedAccount 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 theObjectStorageKey
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 ofaccount:read_write
. This fixes the discrepancy between specification and endpoint behavior.
API v4.76.1
4.76.1,Added
You can now upload your own TLS/SSL certificates to your Object Storage buckets. Your TLS/SSL certificates can be self-signed or issued from a CA authority like Let’s Encrypt. When a user accesses your Object Storage bucket over HTTPS your uploaded TLS/SSL certificate is served. The following Object Storage endpoints have been added to the APIv4:
- Upload Object Storage TLS/SSL Cert ( POST /object-storage/buckets/{clusterId}/{bucket}/ssl)
- View Object Storage TLS/SSL Cert ( GET /object-storage/buckets/{clusterId}/{bucket}/ssl)
- Delete Object Storage TLS/SSL Cert ( DELETE /object-storage/buckets/{clusterId}/{bucket}/ssl)
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
The APIv4 now returns a warning when you execute a staged/approved PayPal payment ( POST /account/payments/paypal/execute) and your payment is successfully processed, but an error occurs related to releasing a service suspension. Prior to this fix, a
500
error occurred instead.Now, when you have an outstanding balance on your account, adding more nodes to a Kubernetes Cluster fails. An error message with
Cannot add or create LKE objects with an outstanding balance on your account
is returned when this occurs. This affects the following endpoints:- Create Kubernetes Cluster ( POST /lke/clusters)
- Create Node Pool ( POST /lke/clusters/{clusterId}/pools)
- Update Node Pool ( PUT /lke/clusters/{clusterId}/pools/{poolId})
- Recycle Node Pool endpoints. ( POST /lke/clusters/{clusterId}/pools/{poolId}/recycle)
When you attempt to create a Kubernetes cluster ( POST /lke/clusters) or create a node pool ( POST /lke/clusters/{clusterId}/pools) with unsupported node types, you receive an error message. Currently, LKE does not support 1 GB Linode instances, or GPU Linode instances.
You can now create an Object Storage Limited Access Key without access to any buckets. This is achieved by creating an Object Storage Key with an empty
bucket_access
array. This type of Limited Access Key can:list all buckets available on your Account, but cannot perform any actions on a bucket.
create new buckets, but does not have any access to the buckets it creates.
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.
Cloud Firewall beta endpoints have been added to the Networking collection. Note: These endpoints are prepended with
/v4beta
instead of/v4
.- List Firewalls ( GET /networking/firewalls)
- Create Firewall ( POST /networking/firewalls)
- View Firewall ( GET /networking/firewalls/{firewallId})
- Update Firewall ( PUT /networking/firewalls/{firewallId})
- Delete Firewall ( DELETE /networking/firewalls/{firewallId})
- List Firewall Devices ( GET /networking/firewalls/{firewallId}/devices)
- Create Firewall Device ( POST /networking/firewalls/{firewallId}/devices)
- View Firewall Device ( GET /networking/firewalls/{firewallId}/devices/{deviceId})
- Delete Firewall Device ( DELETE /networking/firewalls/{firewallId}/devices/{deviceId})
- List Firewall Rules ( GET /networking/firewalls/{firewallId}/rules)
- Update Firewall Rules ( PUT /networking/firewalls/{firewallId}/rules)
API v4.74.0
4.74.0,Added
Added the Reset Linode Root Password ( POST /linode/instances/{linodeId}/password) endpoint to the Linode Instances collection. Use this endpoint to reset the root password for a Linode.
Added the
bucket_access
field to the Create an Object Storage Key ( POST /object-storage/keys) endpoint. This field defines an Object Storage key as a Limited Access Key. Limited Access Keys have access to only the bucket(s) that are specified along withread_write
orread_only
bucket-level permissions. Limited Access Keys can:list all buckets available on an Account, but cannot perform any actions on a bucket unless it has access to the bucket.
create new buckets, but does not have any access to the buckets it creates, unless explicitly given access to them.
NodeBalancers now support Proxy Protocol with the addition of the
proxy_protocol
field. Proxy Protocol sends TCP client connection information, like source and destination IP addresses and port numbers, to your NodeBalancer’s backend nodes. This new field is available in the following NodeBalancer endpoints:- List Configs ( GET /nodebalancers/{nodeBalancerId}/configs)
- Create Config ( POST /nodebalancers/{nodeBalancerId}/configs)
- View Config ( GET /nodebalancers/{nodeBalancerId}/configs/{configId})
- Update Config ( PUT /nodebalancers/{nodeBalancerId}/configs/{configId})
- Delete Config ( DELETE /nodebalancers/{nodeBalancerId}/configs/{configId})
- Rebuild Config ( POST /nodebalancers/{nodeBalancerId}/configs/{configId}/rebuild)
The APIv4 OpenAPI 3 reference now correctly documents the
prefix
androute_target
fields as part of the List IPv6 Ranges endpoint. Previously, these fields were mistakenly left out of the APIv4 OpenAPI 3 reference.
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.
- The previous description stated that this endpoint returns a
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 aLongviewSubscription
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 aglobal
User Grant. - The required OAuth scope has been changed from
account:read_write
tolongview: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 anull
value corresponding to Longview Free. - The response body and sample have been updated to include the details of the returned
LongviewSubscription
object.
- The previous description stated that this endpoint returns a
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.
- The response
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
- Added the
Recycle Node Pool
( POST /lke/clusters/{clusterId}/pools/{poolId}/recycle) endpoint. This new endpoint allows you to recycle the Node Pool of your specified Kubernetes Cluster byclusterId
andpoolId
.
Changed
Password validation is now solely reliant upon complexity (strength) score and no longer requires a set number of characters in special classes. Relevant endpoints:
Create Linode
( POST /linode/instances)Rebuild Linode
( POST /linode/instances/{linodeId}/rebuild)Create Managed Credential
( POST /managed/credentials)Update Managed Credential Username and Password
( POST /managed/credentials/{credentialId}/update)Create Disk
( POST /linode/instances/{linodeId}/disks)Reset Disk Root Password
( POST /linode/instances/{linodeId}/disks/{diskId}/password)
Updated the description for the
Update Node Pool
( PUT /lke/clusters/{clusterId}/pools/{poolId}) endpoint. Now the description more accurately explains that nodes are created or deleted to match the updated count and that any local storage on deleted Linodes (such as “hostPath” and “emptyDir” volumes, or “local” PersistentVolumes) will be erased.
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:
Create Domain Record
( POST /domains/{domainId}/records)Update Domain Record
( PUT /domains/{domainId}/records/{recordId})
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 toInitiate DC Migration/Pending Host Migration
to clear up any confusion about which part the wordPending
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
A
disks
field was added to the Linode Kubernetes Engine (LKE) collection. This field allows you to define a custom disk layout for the nodes in a cluster’s Node Pool. A custom disk layout is only required for specific use cases. If this field is omitted, the nodes in a Node Pool will have a default disk layout consisting of a single partition. Thedisks
field is available from the following endpoints:- Create Kubernetes Cluster ( POST /lke/clusters).
- Create Node Pool ( POST /lke/clusters/{clusterId}/pools)
- View Node Pool ( GET /lke/clusters/{clusterId}/pools/{poolId})
When Listing Account Events ( GET /v4/account/events), you can now filter by its
action
field. See Filtering and Sorting to learn how to search API v4 collections.
Changed
Added improved error handling for the
ssl_cert
andssl_key
fields in the NodeBalancer collection. Error messages will now explain if a provided key is in an incorrect format. These fields are available from the following endpoints:Create Config ( POST /nodebalancers/{nodeBalancerId}/configs)
Update Config ( PUT /nodebalancers/{nodeBalancerId}/configs/{configId})
The
tag
field for the Domain Record collection is now filterable. See Filtering and Sorting to learn how to search API v4 collections.
Fixed
A bug was fixed that allowed multiple Account Users to be created with the same
username
. This bug affected the Create User ( POST /account/users) and Update User ( PUT /account/users/{username}) endpoints.Combined the
LKEClusterRequestBody
into theLKECluste
r schema object and removed theLKEClusterRequestBody
object within the APIv4 OpenAPI 3 reference. This change fixed some display issues on the Linode API Documentation website for the Linode Kubernetes Engine Endpoint collection.When creating an LKE Cluster ( POST /lke/clusters) or updating an LKE Cluster ( PUT /lke/clusters/{clusterId}), the
label
field supports valid Unicode outside of the ASCII table. Previously, the APIv4 reference listed the incorrect character limitations for this field.
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 ofnodebalancer_config_create
,nodebalancer_config_update
, andnodebalancer_config_delete
events was not populated. It is now set to the relevant NodeBalancer Config.The primary
entity
property for these events is set to the NodeBalancer that the relevant Config belongs to. This behavior is unchanged.Review your Account’s Events with the List Events ( GET /account/events) endpoint.
Use the View Config ( GET /nodebalancers/{nodeBalancerId}/configs/{configId}) endpoint to review the Config from one of these events.
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 to500
; the default remains100
. 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 yourlish_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.
- To view your Cloud Manager profile’s
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 ofgithub
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
The Linode Kubernetes Engine (LKE) is out of Beta. All LKE endpoints now point to the
/v4
server instead of the/v4beta
server.- Note: All
/v4
endpoints are available from the/v4beta
server.
- Note: All
The View Kubernetes API Endpoint (GET /lke/clusters/{clusterId}/api-endpoint) has been removed from the API in favor of the List Kubernetes API Endpoints ( GET /lke/clusters/{clusterId}/api-endpoints) endpoint.
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.
- You can view an LKE cluster’s node pools with the View Node Pool endpoint ( GET /lke/clusters/{clusterId}/pools/{poolId}).
API v4.62.0
4.62.0,Added
The following Linode Kubernetes Engine (LKE) Beta Endpoints were added:
- List Kubernetes API Endpoints ( GET /lke/clusters/{clusterId}/api-endpoints). This endpoint returns an array of Kubernetes API server endpoints for your LKE cluster.
Changed
The View Kubernetes API Endpoint ( /lke/clusters/{clusterId}/api-endpoint) endpoint is now deprecated in favor of List Kubernetes API Endpoints ( GET /lke/clusters/{clusterId}/api-endpoints).
The
version
property of an LKE cluster has been updated to be namedk8s_version
. This change affects the following endpoints:- List Kubernetes Clusters ( GET /lke/clusters)
- Create Kubernetes Clusters ( POST /lke/clusters)
- View Kubernetes Cluster ( GET /lke/clusters/{clusterId})
Fixed
An LKE cluster’s
label
,k8s_version
, andregion
properties were incorrectly labeled as being filterable. These properties have been updated in the Linode API v4 schema to no longer display thefilterable
label.The
id
property of a Node in an LKE Node Pool was incorrectly documented as being of typenumber
. This has been corrected and the property is now documented as being of typestring
.- You can view the
id
property of your Nodes in the response from the Create Node Pool, View Node Pool, and Update Node Pool endpoints.
- You can view the
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. Thetags
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
- The
StackScript collection’s
deployments_total
property is now filterable. See Filtering and Sorting to learn how to search API v4 collections.
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-cardexpiry_year
property.
API v4.60.1
4.60.1,Changed
- List Events ( GET /account/events) will now only return events from the last 90 days. You can still view an older event by its ID using the View Event ( GET /account/events/{eventId}) endpoint.
API v4.60.0
4.60.0,Added
The field
authentication_type
has been added to View Profile ( GET /profile) and Update Profile ( PUT /profile).authentication_type
returns your account’s Cloud Manager authentication type. Currently, a user’s password (in conjunction with their username) is the only available authentication type.The
name
field for Create Domain Record ( POST /domains/{domainId}/records) and Update Domain Record ( PUT /domains/{domainId}/records/{recordId}) now accepts wildcards for Domain Records of typeTXT
.Logic was added to the Account collection to generate an Account Notification ( GET /account/notifications) when your account’s associated email address bounces ( GET /v4/account ) and when an account user’s email address bounces ( GET /account/users/{username}).
The View Volume ( GET /volumes/{volumeId}) and List Volumes ( GET /volumes) endpoints now have a
linode_label
field. If a Volume is attached to a specific Linode, the label of that Linode will be returned by thelinode_label
field.
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 typenumber
. It is now correctly listed asunit_price
with typestring
.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
- You can now create an Object Storage bucket (
POST /object-storage/buckets) in the Frankfurt, DE cluster region (
eu-central-1
).- To view all available Object Storage cluster regions, use the List Clusters ( GET /object-storage/clusters) endpoint.
- Added
updated
andcreated
read-only fields to Domain Record objects.- Use the Domain Records collection to review your Domain Record objects.
- Added the List Object Storage Buckets in Cluster (
GET /object-storage/buckets/{clusterId}) endpoint.
- This endpoint returns a list of buckets in a specific cluster that belong to the user’s Account.
- When cloning a Linode ( POST /linode/instances/{linodeId}/clone), any tags existing on the source Linode will be cloned to the target Linode.
Changed
- When a Linode goes into maintenance mode its
status
field will now displaystopped
.- To view a Linode’s status, use the View Linode ( GET /linode/instances/{linodeId}) endpoint.
- 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 aPassword 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
- Added LKE node event
lke_node_create
to Event action list. See action information in the Event endpoints:List Events
( GET /account/events)View Event
( GET /account/events/{eventId})
Changed
- Updated the LKE Node Pool nodes array to return status information containing the node
id
,instance_id
for the Linode if there is one, and nodestatus
. See the LKE Node Pool endpoints:List Node Pools
( GET /lke/clusters/{clusterId}/pools)Create Node Pool
( POST /lke/clusters/{clusterId}/pools)View Node Pool
( GET /lke/clusters/{clusterId}/pools/{poolId})Update Node Pool
( PUT /lke/clusters/{clusterId}/pools/{poolId})Delete Node Pool
( DELETE /lke/clusters/{clusterId}/pools/{poolId})
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:List Events
( GET /account/events)View Event
( GET /account/events/{eventId})
- 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.
- Argument order is imperative. The arguments must be in sequential order
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, thefrom_host
is the Linode. Users can see migration job information in the event endpoints:List Events
( GET /account/events)View Event
( GET /account/events/{eventId})
+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’sstatus
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 haveread_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 astatus
offailed
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’sbackups
property was documented as returningNone
if no backup had been completed for that Linode. The API actually returnsnull
under this circumstance, and the documentation has been updated to reflect this.- Use the List Linodes ( GET /linode/instances) endpoint to list all of your Linodes, and use the View Linode ( GET /linode/instances/{instanceID}) endpoint to view a single Linode.
- 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 theunitprice
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
, andtotal
properties of an InvoiceItem and thesubtotal
,tax
, andtotal
properties of an Invoice were previously documented as having the typeinteger
, but the API accepted and returned numbers with decimal points. The documentation for these types now list these properties as having the typenumber
. - Removed
prepay
as an option for thetype
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.
- The API was inappropriately rounding the
API v4.11.0
4.11.0,Added
- The View Account (
GET /account) and the Update Account (
PUT /account) endpoints have been updated to include a new field
euuid
. This field is an external unique identifier for this customer. - The following endpoints have the new field
last_successful
added to thebackups
envelope within theLinode
object. This field is the date and time of the last successful backup if there was one. If there was no backup, ’null’ is shown.- List Linodes ( GET /linode/instances)
- Create Linode ( POST /linode/instances)
- View Linode ( GET /linode/instances/{linodeId})
- Update Linode ( PUT /linode/instances/{linodeId})
- Rebuild Linode ( POST /linode/instances/{linodeId}/rebuild)
- Added end of life to image endpoints. This displays the image’s distribution’s planned end of life. This
eol
response parameter has been added to the following endpoints:- List Images ( GET /images)
- Create Image ( POST /images)
- View Image ( (GET /images/{imageId}))
- Update Image ( (PUT /images/{imageId}))
API v4.10.0
4.10.0,Added
Added the
status
property to List Regions ( GET /regions) and View Region ( GET /regions/{regionId}). Thestatus
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 asecondary_entity
object. Asecondary_entity
object displays information about an additional entity that is related to the Event.- Refer to the List Events ( GET /account/events) and View Event ( GET /account/events/{eventId}) endpoints to review your Events.
When creating or updating a Domain Record of type
SRV
, thetarget
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 byregion
when Listing Linodes ( GET /linode/instances). Previously, this would result in anunable to apply filter
error.
API v4.9.0
4.9.0,Added
- Added convenience Linode Kubernetes Engine (LKE) Beta Endpoints for the private beta program.
Note: These endpoints are prepended with /v4beta instead of /v4.
List Kubernetes Clusters ( GET /lke/clusters)
Create Kubernetes Cluster ( POST /lke/clusters)
View Kubernetes Cluster ( GET /lke/clusters/{clusterId})
Update Kubernetes Cluster ( PUT /lke/clusters/{clusterId})
Delete Kubernetes Cluster ( DELETE /lke/clusters/{clusterId})
List Node Pools ( GET /lke/clusters/{clusterId}/pools)
Create Node Pool ( POST /lke/clusters/{clusterId}/pools)
View Node Pool ( GET /lke/clusters/{clusterId}/pools/{poolId})
Update Node Pool ( PUT /lke/clusters/{clusterId}/pools/{poolId})
Delete Node Pool ( DELETE /lke/clusters/{clusterId}/pools/{poolId})
View Kubernetes API Endpoint ( GET /lke/clusters/{clusterId}/api-endpoint)
View Kubeconfig ( GET /lke/clusters/{clusterId}/kubeconfig)
List Kubernetes Versions ( GET /lke/versions)
View Kubernetes Version ( GET /lke/versions/{version})
A
disk_imagize
Event action can now generate asecondary_entity
object. Thesecondary_entity
object related to this event will display information about the image.- Refer to the List Events ( GET /account/events) and View Event ( GET /account/events/{eventId}) endpoints to review your Events.
Added property
route_target
to List IPv6 Pools( GET /networking/ipv6/pools) endpoint.
Changed
- Improved error message for the Update IP Address RDNS ( PUT /networking/ips/{address}) endpoint.
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 statushas_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.
- See the Enable Backups ( POST /linode/instances/{linodeId}/backups/enable) endpoint to enable backups for your Linode.
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
, andactive
.
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.
- Use the List StackScripts ( GET /linode/stackscripts) and View StackScript ( GET /stackscripts/{stackscriptId}) endpoints to review your StackScripts.
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 adisk_delete
Event will now be populated with the disk that has been deleted. This property was not previously assigned a value. The primaryentity
property for adisk_delete
Event is associated with the Linode that the disk was deleted from.- Refer to the List Events ( GET /account/events) and View Event ( GET /account/events/{eventId}) endpoints to review your Events.
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.
- A Notification of type
- 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.
- 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
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.
- This endpoint will return an error when called when both of these conditions are true:
- Support Tickets returned by the List Support Tickets (
GET /support/tickets) endpoint can now be sorted by the
closed
,opened
, andupdated
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
Removed
force
query parameter from DELETE /object-storage/buckets/{clusterId}/{bucket} endpoint.Removed
objects
,size
, andregion
parameters from GET /object-storage/buckets and GET /object-storage/buckets/{clusterId}/{bucket} endpoints.
Added
A
linode_reboot
Event action can now generate asecondary_entity
object. Asecondary_entity
object displays information about an additional entity that is related to the Event.- Use the Accounts collection to List Events GET /account/events or to View an Event GET /account/events/{eventId}.
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
, andnetwork 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 andnext_marker
, a string value to pass to themarker
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
andx-filter
query parameters.
API v4.4.0
4.4.0,Added
Added a
secondary_entity
property to the GET /account/events and GET /account/events/{eventId} endpoints. Asecondary_entity
object displays information about an additional entity that is related to the Event. Currently, thelinode_boot
,linode_create
, andlinode_clone
Event actions can generate asecondary_entity
object.Added convenience Object Storage beta endpoints for the Early Access Program. It is recommended to use the more fully-featured S3 API directly instead of these endpoints. Note: these endpoints are prepended with
/v4beta
instead of/v4
.- 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})
- Remove Object Storage Bucket ( DELETE /object-storage/buckets/{clusterId}/{bucket})
- Modify Object Storage Bucket Access ( POST /object-storage/buckets/{clusterId}/{bucket}/access)
- List Object Storage Bucket Contents ( GET /object-storage/buckets/{clusterId}/{bucket}/object-list)
- Create Object Storage Object URL ( POST /object-storage/buckets/{clusterId}/{bucket}/object-url)
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 thegroup
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 emptyimages
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 emptycredentials
array when listing ( GET /managed/services) or viewing ( GET /managed/services/{serviceId}) a Managed Service.
API v4.3.2
4.3.2,Added
- Added the Update Managed Credential Username and Password ( POST /managed/credentials/{credentialId}/update) endpoint.
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
Added Personal Access Token event actions to the List Events endpoint ( GET /account/events) and View Event endpoint ( GET /account/events/:event_id).
token_create
- This event will be issued when making requests to the Create Personal Access Token endpoint ( POST /profile/tokens).token_delete
- This event will be issued when making requests to the Revoke Personal Access Token endpoint ( DELETE /profile/tokens/:token_id).token_update
- This event will be issued when making requests to the Update Personal Access Token endpoint ( PUT /profile/tokens/:token_id).
Added OAuth Client event actions to the List Events endpoint ( GET /account/events) and View Event endpoint ( GET /account/events/:event_id).
oauth_client_create
- This event will be issued when making requests to the Create OAuth Client endpoint ( POST /account/oauth-clients).oauth_client_delete
- This event will be issued when making requests to the Delete OAuth Client endpoint ( DELETE /account/oauth-clients/:client_id).oauth_client_secret_reset
- This event will be issued when making requests to the Reset OAuth Client Secret endpoint ( POST /account/oauth-clients/:client_id/reset_secret).oauth_client_update
- This event will be issued when making requests to the Update OAuth Client endpoint ( PUT /account/oauth-clients/:client_id).
Added Tag event actions to the List Events endpoint ( GET /account/events) and View Event endpoint ( GET /account/events/:event_id).
tag_create
- This event will be issued when making requests to the Create New Tag endpoint ( POST /tags).tag_delete
- This event will be issued when making requests to the Delete a Tag endpoint ( DELETE /tags/:label).
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
Linode’s new Mumbai data center is now an available region ( GET /regions).
Added a new account cancellation endpoint: POST /account/cancel. This endpoint accepts an optional comments field and responds with a link to Linode’s exit survey.
Added a new profile_update event action to the List Events endpoint ( GET /account/events) and View Event endpoint ( GET /account/events/{eventId}).
This event will be issued when making requests to the PUT /profile and PUT /profile/preferences endpoints.
Added User event actions to the List Events endpoint ( GET /account/events) and View Event endpoint ( GET /account/events/{eventId}).
user_create - This event will be issued when making requests to the POST /account/users endpoint.
user_update - This event will be issued when making requests to the PUT /account/users/{username} and PUT /account/users/{username}/grants endpoints.
user_delete - This event will be issued when making requests to the DELETE /account/users/{username} endpoint.
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
- Added NodeBalancer Node event actions to the List Events endpoint (
GET /account/events) and View Event endpoint (
GET /account/events/{eventId}).
- nodebalancer_node_create - This event will be issued when making requests to the POST /nodebalancers/{nodebBalancerId}/configs/{configId}/nodes endpoint.
- nodebalancer_node_delete - This event will be issued when making requests to the DELETE /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId} endpoint.
- nodebalancer_node_update - This event will be issued when making requests to the PUT /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/{nodeId} endpoint.
- Added the IP address update event action to the List Events endpoint (
GET /account/events) and View Event endpoint (
GET /account/events/{eventId}).
- ipaddress_update - This event will be issued when making requests to the PUT /networking/ips/{address} and PUT /linode/instances/{linodeId}/ips/{address} endpoints.
Fixed
- Fixed an issue that caused backup windows to display improperly.
API v4.2.0
4.2.0,Added
- Added Object Storage beta endpoints for the Early Access Program. Note: these endpoints are prepended with /v4beta instead of the traditional /v4.
- List Clusters ( GET /object-storage/clusters)
- View Cluster ( GET /object-storage/clusters/{clusterId})
- List Object Storage Keys ( GET /object-storage/keys)
- Create an Object Storage Key ( POST /object-storage/keys)
- View Object Storage Key( GET /object-storage/keys/{keyId})
- Update an Object Storage Key ( PUT /object-storage/keys/{keyId})
- Revoke an Object Storage Key ( DELETE /object-storage/keys/{keyId})
- Added the GPU class to the Linode Types endpoints, as well as a new
gpus
parameter that describes the number of GPUs available to the selected Linode type:
API v4.1.0
4.1.0,Added
- Added two new endpoints for User Preferences. These endpoints allow for the storage and retrieval of arbitrary JSON data that can be used to store user preferences.
- GET /profile/preferences displays user preferences.
- PUT /profile/preferences updates or changes preferences.
- Added profile_update action to List Events endpoint ( GET /account/events).
- Added region parameter to
POST /linode/instances/{linodeId}/migrate endpoint. This parameter will allow cross data center migrations.
- Reserved IPs are available from the GET /linode/instances/{linodeId}/ips endpoint.
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
- Added
allow_auto_disk_resize
parameter to Upgrade Linode endpoint ( POST /linode/instances/{linodeId}/mutate).
API v4.0.24
4.0.24,Added
- Updated CPU alert threshold maximum to support plans with 48 cores.
- Added allow_auto_disk_resize parameter to Resize Linode endpoint ( POST /linode/instances/{linodeId}/resize).
Fixed
- Added A-Z to the regular expression match for NodeBalancer Node label validation ( POST /nodebalancers/{nodeBalancerId}/configs/{configId}/nodes/).
- The DELETE /linode/instances/{linodeId}/disks/{diskId} endpoint will no longer attempt to delete missing or already deleted disks.
- Fixed validation of internationalized domain names ( POST /domains).
API v4.0.23
4.0.23,Added
- View a Linode’s network transfer pool statistics for the current month.
- GET /linode/instances/{linodeId}/transfer returns a collection with properties used, quota, and billable.
- Added new actions linode_resize_create, linode_mutate_create, and lish_boot to List (GET /account/events) and View (GET /account/events/{eventId}) Events.
- Added allow_auto_disk_resize flag to Resize Linode endpoint (POST /linode/instances/{linodeId}/resize).
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"
).
- Deprecated data centers include Tokyo1 (
- 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,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.
- POST /account/payments/paypal enforces max amount for
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,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.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.11
4.0.11,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,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,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/
- Added
- Allow rebuilding Linodes with stored SSH Keys
- Added
authorized\_users
to POST /linodes/instances/{linode_id}/rebuild
- Added
- Allow deploying Disks with stored SSH Keys
- Added
authorized\_users
to POST /linodes/instances/{linode_id}/disks
- Added
- 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
- Indicates the version of Linode’s OpenAPI specification describes this API
- Spec is available at https://www.linode.com/docs/api/openapi.yaml
- 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"
.
- Bug occurred when service was sent into this endpoint without
- 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”
- Now accepts
- 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
- Response now includes
- 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
, andvcpus
into a “specs” envelope - transfer_total => transfer in Linode specs
- transfer_in => network_in
- transfer_out => network_out
- Moved
- 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