Account v4.176.0
Account View
Returns the contact and billing information related to your Account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account
linode-cli account view
Response Samples
{
"active_promotions": [
{
"credit_monthly_cap": "10.00",
"credit_remaining": "50.00",
"description": "Receive up to $10 off your services every month for 6 months! Unused credits will expire once this promotion period ends.",
"expire_dt": "2018-01-31T23:59:59",
"image_url": "https://linode.com/10_a_month_promotion.svg",
"service_type": "all",
"summary": "$10 off your Linode a month!",
"this_month_credit_remaining": "10.00"
}
],
"active_since": "2018-01-01T00:01:01",
"address_1": "123 Main Street",
"address_2": "Suite A",
"balance": 200,
"balance_uninvoiced": 145,
"billing_source": "akamai",
"capabilities": [
"Linodes",
"NodeBalancers",
"Block Storage",
"Object Storage"
],
"city": "Philadelphia",
"company": "Linode LLC",
"country": "US",
"credit_card": {
"expiry": "11/2022",
"last_four": 1111
},
"email": "john.smith@linode.com",
"euuid": "E1AF5EEC-526F-487D-B317EBEB34C87D71",
"first_name": "John",
"last_name": "Smith",
"phone": "215-555-1212",
"state": "PA",
"tax_id": "ATU99999999",
"zip": "19102-1234"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
active_promotions | array
of objects
| ||||||||||||||||
active_since | string<date-time> The date and time the account was activated. | ||||||||||||||||
address_1 | string
<=
64
charactersFirst line of this Account’s billing address. | ||||||||||||||||
address_2 | string
<=
64
charactersSecond line of this Account’s billing address. | ||||||||||||||||
balance | number This Account’s balance, in US dollars. | ||||||||||||||||
balance_uninvoiced | number This Account’s current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate. | ||||||||||||||||
billing_source | string Enum:
akamai
linode The source of service charges for this Account, as determined by its relationship with Akamai.
Accounts that are associated with Akamai-specific customers return a value of | ||||||||||||||||
capabilities | array
of strings A list of capabilities your account supports. | ||||||||||||||||
city | string
<=
24
charactersThe city for this Account’s billing address. | ||||||||||||||||
company | string
<=
128
charactersThe company name associated with this Account. Must not include any of the following characters: | ||||||||||||||||
country | string The two-letter ISO 3166 country code of this Account’s billing address. | ||||||||||||||||
credit_card | object Credit Card information associated with this Account.
| ||||||||||||||||
email | string
<=
128
charactersThe email address of the person associated with this Account. | ||||||||||||||||
euuid | string<uuid> An external unique identifier for this account. | ||||||||||||||||
first_name | string
<=
50
charactersThe first name of the person associated with this Account. Must not include any of the following characters: | ||||||||||||||||
last_name | string
<=
50
charactersThe last name of the person associated with this Account. Must not include any of the following characters: | ||||||||||||||||
phone | string
<=
32
charactersThe phone number associated with this Account. | ||||||||||||||||
state | string
<=
24
charactersIf billing address is in the United States (US) or Canada (CA), only the two-letter ISO 3166 State or Province code are accepted. If entering a US military address, state abbreviations (AA, AE, AP) should be entered. If the address is outside the US or CA, this is the Province associated with the Account’s billing address. | ||||||||||||||||
tax_id | string
<=
25
charactersThe tax identification number associated with this Account, for tax calculations in some countries. If you do not live in a country that collects tax, this should be an empty string ( | ||||||||||||||||
zip | string The zip code of this Account’s billing address. The following restrictions apply:
|
errors | array
of objects
|
Account Update
Updates contact and billing information related to your account. If you exclude any properties from the request, the operation leaves them unchanged.
Note: When updating an account’s country
to “US”, you’ll get an error if the account’s zip
is not a valid US zip code.
Parent and child accounts
In a parent and child account environment, the following apply:
You can’t change the
company
for a parent account. Akamai uses this value to set the name for a child account parent user (proxy user) on any child account.Child account users can’t run this operation. These users don’t have access to billing-related operations.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"address_1": "123 Main St.",
"address_2": "Suite 101",
"city": "Philadelphia",
"company": "My Company, LLC",
"country": "US",
"email": "jsmith@mycompany.com",
"first_name": "John",
"last_name": "Smith",
"phone": "555-555-1212",
"state": "PA",
"tax_id": "ATU99999999",
"zip": "19102"
}' \
https://api.linode.com/v4/account
linode-cli account update \
--address_1 "123 Main St." \
--address_2 "Suite 101" \
--city Philadelphia \
--company My Company \ LLC \
--country US \
--email jsmith@mycompany.com \
--first_name John \
--last_name Smith \
--phone 555-555-1212 \
--state PA \
--tax_id ATU99999999 \
--zip 19102
Request Body Schema
address_1 | string
<=
64
charactersFirst line of this Account’s billing address. |
address_2 | string
<=
64
charactersSecond line of this Account’s billing address. |
city | string
<=
24
charactersThe city for this Account’s billing address. |
company | string
<=
128
charactersThe company name associated with this Account. Must not include any of the following characters: |
country | string The two-letter ISO 3166 country code of this Account’s billing address. |
email | string
<=
128
charactersThe email address of the person associated with this Account. |
first_name | string
<=
50
charactersThe first name of the person associated with this Account. Must not include any of the following characters: |
last_name | string
<=
50
charactersThe last name of the person associated with this Account. Must not include any of the following characters: |
phone | string
<=
32
charactersThe phone number associated with this Account. |
state | string
<=
24
charactersIf billing address is in the United States (US) or Canada (CA), only the two-letter ISO 3166 State or Province code are accepted. If entering a US military address, state abbreviations (AA, AE, AP) should be entered. If the address is outside the US or CA, this is the Province associated with the Account’s billing address. |
tax_id | string
<=
25
charactersThe tax identification number associated with this Account, for tax calculations in some countries. If you do not live in a country that collects tax, this should be an empty string ( |
zip | string The zip code of this Account’s billing address. The following restrictions apply:
|
Response Samples
{
"active_promotions": [
{
"credit_monthly_cap": "10.00",
"credit_remaining": "50.00",
"description": "Receive up to $10 off your services every month for 6 months! Unused credits will expire once this promotion period ends.",
"expire_dt": "2018-01-31T23:59:59",
"image_url": "https://linode.com/10_a_month_promotion.svg",
"service_type": "all",
"summary": "$10 off your Linode a month!",
"this_month_credit_remaining": "10.00"
}
],
"active_since": "2018-01-01T00:01:01",
"address_1": "123 Main Street",
"address_2": "Suite A",
"balance": 200,
"balance_uninvoiced": 145,
"billing_source": "akamai",
"capabilities": [
"Linodes",
"NodeBalancers",
"Block Storage",
"Object Storage"
],
"city": "Philadelphia",
"company": "Linode LLC",
"country": "US",
"credit_card": {
"expiry": "11/2022",
"last_four": 1111
},
"email": "john.smith@linode.com",
"euuid": "E1AF5EEC-526F-487D-B317EBEB34C87D71",
"first_name": "John",
"last_name": "Smith",
"phone": "215-555-1212",
"state": "PA",
"tax_id": "ATU99999999",
"zip": "19102-1234"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
active_promotions | array
of objects
| ||||||||||||||||
active_since | string<date-time> The date and time the account was activated. | ||||||||||||||||
address_1 | string
<=
64
charactersFirst line of this Account’s billing address. | ||||||||||||||||
address_2 | string
<=
64
charactersSecond line of this Account’s billing address. | ||||||||||||||||
balance | number This Account’s balance, in US dollars. | ||||||||||||||||
balance_uninvoiced | number This Account’s current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate. | ||||||||||||||||
billing_source | string Enum:
akamai
linode The source of service charges for this Account, as determined by its relationship with Akamai.
Accounts that are associated with Akamai-specific customers return a value of | ||||||||||||||||
capabilities | array
of strings A list of capabilities your account supports. | ||||||||||||||||
city | string
<=
24
charactersThe city for this Account’s billing address. | ||||||||||||||||
company | string
<=
128
charactersThe company name associated with this Account. Must not include any of the following characters: | ||||||||||||||||
country | string The two-letter ISO 3166 country code of this Account’s billing address. | ||||||||||||||||
credit_card | object Credit Card information associated with this Account.
| ||||||||||||||||
email | string
<=
128
charactersThe email address of the person associated with this Account. | ||||||||||||||||
euuid | string<uuid> An external unique identifier for this account. | ||||||||||||||||
first_name | string
<=
50
charactersThe first name of the person associated with this Account. Must not include any of the following characters: | ||||||||||||||||
last_name | string
<=
50
charactersThe last name of the person associated with this Account. Must not include any of the following characters: | ||||||||||||||||
phone | string
<=
32
charactersThe phone number associated with this Account. | ||||||||||||||||
state | string
<=
24
charactersIf billing address is in the United States (US) or Canada (CA), only the two-letter ISO 3166 State or Province code are accepted. If entering a US military address, state abbreviations (AA, AE, AP) should be entered. If the address is outside the US or CA, this is the Province associated with the Account’s billing address. | ||||||||||||||||
tax_id | string
<=
25
charactersThe tax identification number associated with this Account, for tax calculations in some countries. If you do not live in a country that collects tax, this should be an empty string ( | ||||||||||||||||
zip | string The zip code of this Account’s billing address. The following restrictions apply:
|
errors | array
of objects
|
Account Availability
Returns a paginated list of the services available to you, for all Linode regions.
Note: Only authorized Users can access this endpoint.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl https://api.linode.com/v4/account/availability \
-H "Authorization: Bearer $TOKEN"
linode-cli account get-availability
Response Samples
{
"data": [
{
"available": [
"Linodes",
"NodeBalancers"
],
"region": "us-east",
"unavailable": [
"Kubernetes",
"Block Storage"
]
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||
page | integer The current page. | ||||||
pages | integer The total number of pages. | ||||||
results | integer The total number of results. |
errors | array
of objects
|
Region Service Availability
View the available services for your account in a specific region.
Note: Only authorized users can access this.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
id | string RequiredThe slug for the applicable data center. Run the GET /regions operation to view the slug for each data center. |
Request Samples
curl https://api.linode.com/v4/account/availability/us-east \
-H "Authorization: Bearer $TOKEN"
linode-cli account get-account-availability us-east
Response Samples
{
"available": [
"Linodes",
"NodeBalancers"
],
"region": "us-east",
"unavailable": [
"Kubernetes",
"Block Storage"
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
available | array
of strings A list of services available to your account in the |
region | string The Akamai cloud computing data center (region), represented by a slug value. You can view a full list of regions and their associated slugs via the GET /regions endpoint. |
unavailable | array
of strings A list of services unavailable to your account in the |
errors | array
of objects
|
Account Cancel
Cancels an active Linode account. Akamai attempts to charge the credit card on file for any remaining balance. An error occurs if this charge fails. Note: This command can only be accessed by account users with unrestricted access. Parent and child accounts In a parent and child account environment, the following apply:
- A child account user can’t cancel a child account.
- You can’t cancel a parent account if it has an active child account.
- You need to work with your Akamai account team to dissolve any parent-child account relationships before you can fully cancel a child or parent account.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"comments": "I am consolidating my accounts."
}' \
https://api.linode.com/v4/account/cancel
linode-cli account cancel \
--comments "I'm consolidating my accounts"
Request Body Schema
comments | string Any reason for cancelling the account, and any other comments you might have about your Linode service. |
Response Samples
{
"survey_link": "https://alinktothesurvey.com"
}
{
"errors": [
{
"reason": "We were unable to charge your credit card for services rendered. We cannot cancel this account until the balance has been paid.\n"
}
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
survey_link | string A link to Linode’s exit survey. |
errors | array
of objects
|
errors | array
of objects
|
Child Account List
Returns a paginated list of basic information for the child accounts that exist for your parent account. See Parent and Child Accounts for Akamai Partners for details on these accounts.
Note: This command can only be accessed by an unrestricted parent user, or restricted parent user with the child_account_access
grant.
Authorizations
personalAccessToken | |
oauth | child_account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/child-accounts
linode-cli child-account list
Response Samples
{
"data": [
{
"active_since": "2018-01-01T00:01:01",
"address_1": "123 Main Street",
"address_2": "Suite A",
"balance": 200,
"balance_uninvoiced": 145,
"billing_source": "external",
"capabilities": [
"Linodes",
"NodeBalancers",
"Block Storage",
"Object Storage"
],
"city": "San Diego",
"company": "Acme",
"country": "US",
"credit_card": {
"expiry": "11/2024",
"last_four": 1111
},
"email": "john.smith@linode.com",
"euuid": "A1BC2DEF-34GH-567I-J890KLMN12O34P56",
"first_name": "John",
"last_name": "Smith",
"phone": "858-555-1212",
"state": "CA",
"tax_id": "ATU99999999",
"zip": "92111-1234"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Child Account View
View a specific child account based on its euuid
. See
Parent and Child Accounts for Akamai Partners for details on these accounts.
Note: This command can only be accessed by an unrestricted user, or restricted user with the child_account_access
grant.
Authorizations
personalAccessToken | |
oauth | child_account:read_only |
Path Parameters
euuid | string RequiredThe child account to look up. You can run the Child Account List operation to find the applicable account and store its |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/child-accounts/A1BC2DEF-34GH-567I-J890KLMN12O34P56
linode-cli child-account view A1BC2DEF-34GH-567I-J890KLMN12O34P56
Response Samples
{
"active_since": "2018-01-01T00:01:01",
"address_1": "123 Main Street",
"address_2": "Suite A",
"balance": 200,
"balance_uninvoiced": 145,
"billing_source": "external",
"capabilities": [
"Linodes",
"NodeBalancers",
"Block Storage",
"Object Storage"
],
"city": "San Diego",
"company": "Acme",
"country": "US",
"credit_card": {
"expiry": "11/2024",
"last_four": 1111
},
"email": "john.smith@linode.com",
"euuid": "A1BC2DEF-34GH-567I-J890KLMN12O34P56",
"first_name": "John",
"last_name": "Smith",
"phone": "858-555-1212",
"state": "CA",
"tax_id": "ATU99999999",
"zip": "92111-1234"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
active_since | string<date-time> The activation date and time for the child account. | ||||
address_1 | string
<=
64
charactersFirst line of this child account’s billing address. | ||||
address_2 | string
<=
64
charactersSecond line of this child account’s billing address, if applicable. | ||||
balance | number This child account’s balance, in US dollars. | ||||
balance_uninvoiced | number This child account’s current estimated invoice in US dollars. This is not your final invoice balance. Transfer charges are not included in the estimate. | ||||
billing_source | string Enum:
external The source of service charges for this account, as determined by its relationship with Akamai. The API returns a value of | ||||
capabilities | array
of strings A list of the capabilities the child account supports. | ||||
city | string
<=
24
charactersThe city for this child account’s billing address. | ||||
company | string
<=
128
charactersThe company name for the owner of this child account. It can’t include any of these characters: | ||||
country | string The two-letter ISO 3166 country code for this child account’s billing address. | ||||
credit_card | object Information for the credit card you’ve assigned to this child account.
| ||||
email | string
<=
128
charactersThe email address of the owner of this child account. | ||||
euuid | string<uuid> An external, unique identifier that Akamai assigned to the child account. | ||||
first_name | string
<=
50
charactersThe first name of the owner of this child account. It can’t include any of these characters: | ||||
last_name | string
<=
50
charactersThe last name of the owner of this child account. It can’t include any of these characters: | ||||
phone | string
<=
32
charactersThe phone number for the owner of this child account. | ||||
state | string
<=
24
charactersThe state or province for the billing address ( Note: If this is a US military address, use state abbreviations (AA, AE, AP). | ||||
tax_id | string
<=
25
charactersThe tax identification number for this child account. Use this for tax calculations in some countries. If you live in a country that doesn’t collect taxes, ensure this is an empty string ( | ||||
zip | string The zip code of this Account’s billing address. The following restrictions apply:
|
errors | array
of objects
|
Proxy User Token Create
Create a short-lived bearer token for a parent user on a child account, using the euuid
of that child account. In the context of the API, a parent user on a child account is referred to as a “proxy user.” When Akamai provisions your parent-child account environment, a proxy user is automatically set in the child account. It follows a specific naming convention:
<Parent account company
name>_<SHA256 hash of parent company
name and child account euuid
>
Note: The variables above use only the first 15 and 16 characters of these values, respectively.
The token lets a parent account run API operations through the proxy user, as if they are a child user in the child account.
These points apply to the use of this operation:
To create a token, a parent account user needs the
child_account_access
grant. This lets them use the proxy user on the child account. You can view a parent account user to check itschild_account_access
setting. To add this access, you can update the parent account user.The created token inherits the permissions of the proxy user. It will never have less.
The API returns the raw token in the response. You can’t get it again, so be sure to store it.
Example workflow:
- List child accounts and store the
euuid
for the applicable one. - Run this operation and store the
token
that’s created for the proxy user. - As a parent account user with access to the proxy user in the child account, use this
token
to authenticate API operations, as if you were a child user.
Authorizations
personalAccessToken | |
oauth | child_account:read_write |
Path Parameters
euuid | string RequiredThe child account to look up. You can run the Child Account List operation to find the applicable account and store its |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/child-accounts/A1BC2DEF-34GH-567I-J890KLMN12O34P56/token
linode-cli child-account create A1BC2DEF-34GH-567I-J890KLMN12O34P56
Response Samples
{
"created": "2024-05-01T00:01:01",
"expiry": "2024-05-01T00:16:01",
"id": 918,
"label": "parent1_1234_2024-05-01T00:01:01",
"scopes": "*",
"token": "abcdefghijklmnop"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
created | string<date-time> The date and time this token was created. |
expiry | string<date-time> When this token expires. This is default set to 15 minutes from the time of creation. Proxy user tokens can’t be renewed. After this time, Akamai revokes the token and you need to generate a new one. |
id | integer The proxy user token’s unique ID, which can be used to revoke it. |
label | string
1..100
charactersThe name of the token. The API automatically sets this to |
scopes | string<oauth-scopes> The scopes this token was created with. Defaults to |
token | string The proxy user token that can be used to access the API and CLI. After you create a token, you can see the full token in the response. All other operations that contain this token only show the first 16 characters in their response. |
errors | array
of objects
|
Credit Card Add/Edit
DEPRECATED. Please use Payment Method Add ( POST /account/payment-methods).
Adds a credit card Payment Method to your account and sets it as the default method.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"card_number": "4111111111111111",
"expiry_month": 11,
"expiry_year": 2020,
"cvv": "111"
}' \
https://api.linode.com/v4/account/credit-card
linode-cli account update-card \
--card_number 4111111111111111 \
--expiry_month 11 \
--expiry_year 2025 \
--cvv 111
Request Body Schema
card_number Required | string<digits>
14..24
charactersYour credit card number. No spaces or hyphens ( |
cvv Required | string<digits>
3..4
charactersCVV (Card Verification Value) of the credit card, typically found on the back of the card. |
expiry_month Required | integer
1..12A value from 1-12 representing the expiration month of your credit card.
|
expiry_year Required | integer
4..4
charactersA four-digit integer representing the expiration year of your credit card. The combination of |
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Entity Transfers List
DEPRECATED. Please use Service Transfers List.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/entity-transfers
Response Samples
{
"data": [
{
"created": "2021-02-11T16:37:03",
"entities": {
"linodes": [
111,
222
]
},
"expiry": "2021-02-12T16:37:03",
"is_sender": true,
"status": "pending",
"token": "123E4567-E89B-12D3-A456-426614174000",
"updated": "2021-02-11T16:37:03"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||
page | integer The current page. | ||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Entity Transfer Create
DEPRECATED. Please use Service Transfer Create.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"entities": {
"linodes": [
111,
222
]
}
}' \
https://api.linode.com/v4/account/entity-transfers
Request Body Schema
entities Required | object A collection of the entities to include in this transfer request, separated by type.
|
Response Samples
{
"created": "2021-02-11T16:37:03",
"entities": {
"linodes": [
111,
222
]
},
"expiry": "2021-02-12T16:37:03",
"is_sender": true,
"status": "pending",
"token": "123E4567-E89B-12D3-A456-426614174000",
"updated": "2021-02-11T16:37:03"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
created | string<date-time> When this transfer was created. | ||
entities | object A collection of the entities to include in this transfer request, separated by type.
| ||
expiry | string<date-time> When this transfer expires. Transfers will automatically expire 24 hours after creation. | ||
is_sender | boolean If the requesting account created this transfer. | ||
status | string Enum:
accepted
canceled
completed
failed
pending
stale The status of the transfer request.
| ||
token | string<uuid> The token used to identify and accept or cancel this transfer. | ||
updated | string<date-time> When this transfer was last updated. |
errors | array
of objects
|
Entity Transfer Cancel
DEPRECATED. Please use Service Transfer Cancel.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
token | string<uuid> RequiredThe UUID of the Entity Transfer. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/entity-transfers/123E4567-E89B-12D3-A456-426614174000
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Entity Transfer View
DEPRECATED. Please use Service Transfer View.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
token | string<uuid> RequiredThe UUID of the Entity Transfer. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/entity-transfers/123E4567-E89B-12D3-A456-426614174000
Response Samples
{
"created": "2021-02-11T16:37:03",
"entities": {
"linodes": [
111,
222
]
},
"expiry": "2021-02-12T16:37:03",
"is_sender": true,
"status": "pending",
"token": "123E4567-E89B-12D3-A456-426614174000",
"updated": "2021-02-11T16:37:03"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
created | string<date-time> When this transfer was created. | ||
entities | object A collection of the entities to include in this transfer request, separated by type.
| ||
expiry | string<date-time> When this transfer expires. Transfers will automatically expire 24 hours after creation. | ||
is_sender | boolean If the requesting account created this transfer. | ||
status | string Enum:
accepted
canceled
completed
failed
pending
stale The status of the transfer request.
| ||
token | string<uuid> The token used to identify and accept or cancel this transfer. | ||
updated | string<date-time> When this transfer was last updated. |
errors | array
of objects
|
Entity Transfer Accept
DEPRECATED. Please use Service Transfer Accept.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
token | string<uuid> RequiredThe UUID of the Entity Transfer. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/entity-transfers/123E4567-E89B-12D3-A456-426614174000/accept
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Events List
Returns a collection of Event objects representing actions taken on your Account from the last 90 days. The Events returned depend on your grants.
Authorizations
personalAccessToken | |
oauth | events:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/events
linode-cli events list
Response Samples
{
"data": [
{
"action": "ticket_create",
"created": "2018-01-01T00:01:01",
"duration": 300.56,
"entity": {
"id": 11111,
"label": "Problem booting my Linode",
"type": "ticket",
"url": "/v4/support/tickets/11111"
},
"id": 123,
"message": "None",
"percent_complete": null,
"rate": null,
"read": true,
"secondary_entity": {
"id": "linode/debian9",
"label": "linode1234",
"type": "linode",
"url": "/v4/linode/instances/1234"
},
"seen": true,
"status": null,
"time_remaining": null,
"username": "exampleUser"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Event View
Returns a single Event object.
Authorizations
personalAccessToken | |
oauth | events:read_only |
Path Parameters
eventId | integer RequiredThe ID of the Event. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/events/123
linode-cli events view 123
Response Samples
{
"action": "ticket_create",
"created": "2018-01-01T00:01:01",
"duration": 300.56,
"entity": {
"id": 11111,
"label": "Problem booting my Linode",
"type": "ticket",
"url": "/v4/support/tickets/11111"
},
"id": 123,
"message": "None",
"percent_complete": null,
"rate": null,
"read": true,
"secondary_entity": {
"id": "linode/debian9",
"label": "linode1234",
"type": "linode",
"url": "/v4/linode/instances/1234"
},
"seen": true,
"status": null,
"time_remaining": null,
"username": "exampleUser"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
action | string Enum:
account_update
account_settings_update
backups_enable
backups_cancel
backups_restore
community_question_reply
community_like
credit_card_updated
disk_create
disk_delete
disk_update
disk_duplicate
disk_imagize
disk_resize
dns_record_create
dns_record_delete
dns_record_update
dns_zone_create
dns_zone_delete
dns_zone_import
dns_zone_update
entity_transfer_accept
entity_transfer_cancel
entity_transfer_create
entity_transfer_fail
entity_transfer_stale
firewall_create
firewall_delete
firewall_disable
firewall_enable
firewall_update
firewall_device_add
firewall_device_remove
host_reboot
image_delete
image_update
image_upload
ipaddress_update
lassie_reboot
lish_boot
linode_addip
linode_boot
linode_clone
linode_create
linode_delete
linode_update
linode_deleteip
linode_migrate
linode_migrate_datacenter
linode_migrate_datacenter_create
linode_mutate
linode_mutate_create
linode_reboot
linode_rebuild
linode_resize
linode_resize_create
linode_shutdown
linode_snapshot
linode_config_create
linode_config_delete
linode_config_update
lke_node_create
longviewclient_create
longviewclient_delete
longviewclient_update
managed_disabled
managed_enabled
managed_service_create
managed_service_delete
nodebalancer_create
nodebalancer_delete
nodebalancer_update
nodebalancer_config_create
nodebalancer_config_delete
nodebalancer_config_update
nodebalancer_node_create
nodebalancer_node_delete
nodebalancer_node_update
oauth_client_create
oauth_client_delete
oauth_client_secret_reset
oauth_client_update
obj_access_key_create
obj_access_key_delete
obj_access_key_update
password_reset
payment_method_add
payment_submitted
profile_update
stackscript_create
stackscript_delete
stackscript_update
stackscript_publicize
stackscript_revise
subnet_create
subnet_delete
subnet_update
tag_create
tag_delete
tfa_disabled
tfa_enabled
ticket_attachment_upload
ticket_create
ticket_update
token_create
token_delete
token_update
user_create
user_update
user_delete
user_ssh_key_add
user_ssh_key_delete
user_ssh_key_update
vlan_attach
vlan_detach
volume_attach
volume_clone
volume_create
volume_delete
volume_update
volume_detach
volume_resize
vpc_create
vpc_delete
vpc_update The action that caused this Event. New actions may be added in the future. | ||||||||
created | string<date-time> When this Event was created. | ||||||||
duration | number The total duration in seconds that it takes for the Event to complete. | ||||||||
entity | object Detailed information about the Event’s entity, including ID, type, label, and URL used to access it.
| ||||||||
id | integer The unique ID of this Event. | ||||||||
message Nullable | string 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. | ||||||||
percent_complete | integer A percentage estimating the amount of time remaining for an Event.
Returns | ||||||||
rate | string The rate of completion of the Event. Only some Events will return rate; for example, migration and resize Events. | ||||||||
read | boolean If this Event has been read. | ||||||||
secondary_entity | object Detailed information about the Event’s secondary entity, which provides additional information
for events such as, but not limited to,
| ||||||||
seen | boolean If this Event has been seen. | ||||||||
status | string Enum:
failed
finished
notification
scheduled
started The current status of this Event. | ||||||||
time_remaining Nullable | string The estimated time remaining until the completion of this Event. This value is only returned for some in-progress migration events. For all other in-progress events, the | ||||||||
username Nullable | string The username of the User who caused the Event. |
errors | array
of objects
|
Event Mark as Read
Marks a single Event as read.
Authorizations
personalAccessToken | |
oauth | events:read_only |
Path Parameters
eventId | integer RequiredThe ID of the Event to designate as read. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/events/123/read
linode-cli events mark-read 123
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Event Mark as Seen
Marks all Events up to and including this Event by ID as seen.
Authorizations
personalAccessToken | |
oauth | events:read_only |
Path Parameters
eventId | integer RequiredThe ID of the Event to designate as seen. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/events/123/seen
linode-cli events mark-seen 123
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Invoices List
Returns a paginated list of Invoices against your Account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/invoices
linode-cli account invoices-list
Response Samples
{
"data": [
{
"billing_source": "linode",
"date": "2018-01-01T00:01:01",
"id": 123,
"label": "Invoice",
"subtotal": 120.25,
"tax": 12.25,
"tax_summary": [
{
"name": "PA STATE TAX",
"tax": 12.25
}
],
"total": 132.5
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Invoice View
Returns a single Invoice object.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
invoiceId | integer RequiredThe ID of the Invoice. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/invoices/123
linode-cli account invoice-view 123
Response Samples
{
"billing_source": "linode",
"date": "2018-01-01T00:01:01",
"id": 123,
"label": "Invoice",
"subtotal": 120.25,
"tax": 12.25,
"tax_summary": [
{
"name": "PA STATE TAX",
"tax": 12.25
}
],
"total": 132.5
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
billing_source | string Enum:
akamai
linode
| ||||
date | string<date-time> When this Invoice was generated. | ||||
id | integer The Invoice’s unique ID. | ||||
label | string The Invoice’s display label. | ||||
subtotal | number The amount of the Invoice before taxes in US Dollars. | ||||
tax | number The amount of tax levied on the Invoice in US Dollars. | ||||
tax_summary | array
of objects The amount of tax broken down into subtotals by source.
| ||||
total | number The amount of the Invoice after taxes in US Dollars. |
errors | array
of objects
|
Invoice Items List
Returns a paginated list of Invoice items.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
invoiceId | integer RequiredThe ID of the Invoice. |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/invoices/123/items
linode-cli account invoice-items 123
Response Samples
{
"data": [
{
"amount": 20.2,
"from": "2018-01-01T00:01:01",
"label": "Linode 123",
"quantity": 4,
"region": "us-west",
"tax": 1.25,
"to": "2018-01-31T11:59:59",
"total": 21.45,
"type": "hourly",
"unit_price": 5.05
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
User Logins List All
Returns a collection of successful logins for all users on the account during the last 90 days. This command can only be accessed by the unrestricted users of an account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/logins
linode-cli account logins-list
Response Samples
{
"data": [
{
"datetime": "2018-01-01T00:01:01",
"id": 1234,
"ip": "192.0.2.0",
"restricted": true,
"status": "successful",
"username": "example_user"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||
page | integer The current page. | ||||||||||||
pages | integer The total number of pages. | ||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Login View
Returns a Login object that displays information about a successful login. The logins that can be viewed can be for any user on the account, and are not limited to only the logins of the user that is accessing this API endpoint. This command can only be accessed by the unrestricted users of the account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
loginId | integer RequiredThe ID of the login object to access. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/logins/1234
linode-cli account login-view 1234
Response Samples
{
"datetime": "2018-01-01T00:01:01",
"id": 1234,
"ip": "192.0.2.0",
"restricted": true,
"status": "successful",
"username": "example_user"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
datetime | string<date-time> When the login was initiated. |
id | integer The unique ID of this login object. |
ip | string<ip> The remote IP address that requested the login. |
restricted | boolean True if the User that attempted the login was a restricted User, false otherwise. |
status | string Enum:
successful
failed Whether the login attempt succeeded or failed. |
username | string The username of the User that attempted the login. |
errors | array
of objects
|
Maintenance List
Returns a collection of Maintenance objects for any entity a user has permissions to view. Canceled Maintenance objects are not returned.
Currently, Linodes are the only entities available for viewing.
Authorizations
personalAccessToken | |
oauth |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/maintenance
linode-cli account maintenance-list
Response Samples
{
"data": [
{
"entity": {
"id": 1234,
"label": "demo-linode",
"type": "Linode",
"url": "https://api.linode.com/v4/linode/instances/{linodeId}"
},
"reason": "This maintenance will allow us to update the BIOS on the host's motherboard.",
"status": "started",
"type": "reboot",
"when": "2020-07-09T00:01:01"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||
page | integer The current page. | ||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Notifications List
Returns a collection of Notification objects representing important, often time-sensitive items related to your Account. You cannot interact directly with Notifications, and a Notification will disappear when the circumstances causing it have been resolved. For example, if you have an important Ticket open, you must respond to the Ticket to dismiss the Notification.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/notifications
linode-cli account notifications-list
Response Samples
{
"data": [
{
"body": null,
"entity": {
"id": 3456,
"label": "Linode not booting.",
"type": "ticket",
"url": "/support/tickets/3456"
},
"label": "You have an important ticket open!",
"message": "You have an important ticket open!",
"severity": "major",
"type": "ticket_important",
"until": null,
"when": null
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
OAuth Clients List
Returns a paginated list of OAuth Clients registered to your Account. OAuth Clients allow users to log into applications you write or host using their Linode Account, and may allow them to grant some level of access to their Linodes or other entities to your application.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/oauth-clients
linode-cli account clients-list
Response Samples
{
"data": [
{
"id": "2737bf16b39ab5d7b4a1",
"label": "Test_Client_1",
"public": false,
"redirect_uri": "https://example.org/oauth/callback",
"secret": "<REDACTED>",
"status": "active",
"thumbnail_url": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||
page | integer The current page. | ||||||||||||||
pages | integer The total number of pages. | ||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
OAuth Client Create
Creates an OAuth Client, which can be used to allow users (using their Linode account) to log in to your own application, and optionally grant your application some amount of access to their Linodes or other entities.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"redirect_uri": "https://example.org/oauth/callback",
"label": "Test_Client_1",
"public": false
}' \
https://api.linode.com/v4/account/oauth-clients
linode-cli account client-create \
--label Test_Client_1 \
--redirect_uri https://example.org/callback
Request Body Schema
label Required | string
1..512
charactersThe name of this application. This will be presented to users when they are asked to grant it access to their Account. |
public | boolean Default:
false If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details. |
redirect_uri Required | string<url> The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. |
Response Samples
{
"id": "2737bf16b39ab5d7b4a1",
"label": "Test_Client_1",
"public": false,
"redirect_uri": "https://example.org/oauth/callback",
"secret": "<REDACTED>",
"status": "active",
"thumbnail_url": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
id | string The OAuth Client ID. This is used to identify the client, and is a publicly-known value (it is not a secret). |
label | string
1..512
charactersThe name of this application. This will be presented to users when they are asked to grant it access to their Account. |
public | boolean Default:
false If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details. |
redirect_uri | string<url> The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. |
secret | string The OAuth Client secret, used in the OAuth exchange. This is returned as |
status | string Enum:
active
disabled
suspended The status of this application. |
thumbnail_url Nullable | string<url> The URL where this client’s thumbnail may be viewed, or |
errors | array
of objects
|
OAuth Client Delete
Deletes an OAuth Client registered with Linode. The Client ID and Client secret will no longer be accepted by https://login.linode.com, and all tokens issued to this client will be invalidated (meaning that if your application was using a token, it will no longer work).
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
clientId | string RequiredThe OAuth Client ID to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
linode-cli account client-delete \
edc6790ea9db4d224c5c
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
OAuth Client View
Returns information about a single OAuth client.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
clientId | string RequiredThe OAuth Client ID to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
linode-cli account client-view \
edc6790ea9db4d224c5c
Response Samples
{
"id": "2737bf16b39ab5d7b4a1",
"label": "Test_Client_1",
"public": false,
"redirect_uri": "https://example.org/oauth/callback",
"secret": "<REDACTED>",
"status": "active",
"thumbnail_url": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
id | string The OAuth Client ID. This is used to identify the client, and is a publicly-known value (it is not a secret). |
label | string
1..512
charactersThe name of this application. This will be presented to users when they are asked to grant it access to their Account. |
public | boolean Default:
false If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details. |
redirect_uri | string<url> The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. |
secret | string The OAuth Client secret, used in the OAuth exchange. This is returned as |
status | string Enum:
active
disabled
suspended The status of this application. |
thumbnail_url Nullable | string<url> The URL where this client’s thumbnail may be viewed, or |
errors | array
of objects
|
OAuth Client Update
Update information about an OAuth Client on your Account. This can be especially useful to update the redirect_uri
of your client in the event that the callback url changed in your application.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
clientId | string RequiredThe OAuth Client ID to look up. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"redirect_uri": "https://example.org/oauth/callback",
"label": "Test_Client_1"
}
}' \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c
linode-cli account client-update \
edc6790ea9db4d224c5c \
--label Test_Client_1
Request Body Schema
label | string
1..512
charactersThe name of this application. This will be presented to users when they are asked to grant it access to their Account. |
public | boolean Default:
false If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details. |
redirect_uri | string<url> The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. |
Response Samples
{
"id": "2737bf16b39ab5d7b4a1",
"label": "Test_Client_1",
"public": false,
"redirect_uri": "https://example.org/oauth/callback",
"secret": "<REDACTED>",
"status": "active",
"thumbnail_url": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
id | string The OAuth Client ID. This is used to identify the client, and is a publicly-known value (it is not a secret). |
label | string
1..512
charactersThe name of this application. This will be presented to users when they are asked to grant it access to their Account. |
public | boolean Default:
false If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details. |
redirect_uri | string<url> The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. |
secret | string The OAuth Client secret, used in the OAuth exchange. This is returned as |
status | string Enum:
active
disabled
suspended The status of this application. |
thumbnail_url Nullable | string<url> The URL where this client’s thumbnail may be viewed, or |
errors | array
of objects
|
OAuth Client Secret Reset
Resets the OAuth Client secret for a client you own, and returns the OAuth Client with the plaintext secret. This secret is not supposed to be publicly known or disclosed anywhere. This can be used to generate a new secret in case the one you have has been leaked, or to get a new secret if you lost the original. The old secret is expired immediately, and logins to your client with the old secret will fail.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
clientId | string RequiredThe OAuth Client ID to look up. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/reset-secret
linode-cli account client-reset-secret \
edc6790ea9db4d224c5c
Response Samples
{
"id": "2737bf16b39ab5d7b4a1",
"label": "Test_Client_1",
"public": false,
"redirect_uri": "https://example.org/oauth/callback",
"secret": "<REDACTED>",
"status": "active",
"thumbnail_url": "https://api.linode.com/v4/account/clients/2737bf16b39ab5d7b4a1/thumbnail"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
id | string The OAuth Client ID. This is used to identify the client, and is a publicly-known value (it is not a secret). |
label | string
1..512
charactersThe name of this application. This will be presented to users when they are asked to grant it access to their Account. |
public | boolean Default:
false If this is a public or private OAuth Client. Public clients have a slightly different authentication workflow than private clients. See the OAuth spec for more details. |
redirect_uri | string<url> The location a successful log in from https://login.linode.com should be redirected to for this client. The receiver of this redirect should be ready to accept an OAuth exchange code and finish the OAuth exchange. |
secret | string The OAuth Client secret, used in the OAuth exchange. This is returned as |
status | string Enum:
active
disabled
suspended The status of this application. |
thumbnail_url Nullable | string<url> The URL where this client’s thumbnail may be viewed, or |
errors | array
of objects
|
OAuth Client Thumbnail View
Returns the thumbnail for this OAuth Client. This is a publicly-viewable endpoint, and can be accessed without authentication.
Authorizations
Path Parameters
clientId | string RequiredThe OAuth Client ID to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/thumbnail > thumbnail.png
Response Samples
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
OAuth Client Thumbnail Update
Upload a thumbnail for a client you own. You must upload an image file that will be returned when the thumbnail is retrieved. This image will be publicly-viewable.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
clientId | string RequiredThe OAuth Client ID to look up. |
Request Samples
curl -H "Content-Type: image/png" \
-H "Authorization: Bearer $TOKEN" \
-X PUT \
--data-binary "@/path/to/image"
https://api.linode.com/v4/account/oauth-clients/edc6790ea9db4d224c5c/thumbnail
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Payment Methods List
Returns a paginated list of Payment Methods for this Account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/payment-methods
linode-cli payment-methods list
Response Samples
{
"data": [
{
"created": "2018-01-15T00:01:01",
"data": {
"card_type": "Discover",
"expiry": "06/2022",
"last_four": "1234"
},
"id": 123,
"is_default": true,
"type": "credit_card"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Payment Method Add
Adds a Payment Method to your Account with the option to set it as the default method.
Adding a default Payment Method removes the default status from any other Payment Method.
An Account can have up to 6 active Payment Methods.
Up to 60 Payment Methods can be added each day.
Prior to adding a Payment Method, ensure that your billing address information is up-to-date with a valid
zip
by using the Account Update ( PUT /account) endpoint.A
payment_method_add
event is generated when a payment is successfully submitted.
Parent and child accounts
In a parent and child account environment, the following apply:
- Child account users can’t run this operation. These users don’t have access to billing-related operations.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"type": "credit_card",
"is_default": true,
"data": {
"card_number": "4111111111111111",
"expiry_month": 11,
"expiry_year": 2020,
"cvv": "111"
}
}' \
https://api.linode.com/v4/account/payment-methods
linode-cli payment-methods add \
--type credit_card \
--is_default true \
--data.card_number 4111111111111111 \
--data.expiry_month 11 \
--data.expiry_year 2020 \
--data.cvv 111
Request Body Schema
data Required | object An object representing the credit card information you have on file with Linode to make Payments against your Account.
| ||||||||
is_default Required | boolean Whether this Payment Method is the default method for automatically processing service charges. | ||||||||
type Required | string Enum:
credit_card The type of Payment Method. Alternative Payment Methods including Google Pay and PayPal can be added using the Cloud Manager. See the Manage Payment Methods guide for details and instructions. |
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Payment Method Delete
Deactivate the specified Payment Method.
The default Payment Method can not be deleted. To add a new default Payment Method, access the Payment Method Add ( POST /account/payment-methods) endpoint. To designate an existing Payment Method as the default method, access the Payment Method Make Default ( POST /account/payment-methods/{paymentMethodId}/make-default) endpoint.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
paymentMethodId | integer RequiredThe ID of the Payment Method to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/payment-methods/123
linode-cli payment-methods delete 123
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Payment Method View
View the details of the specified Payment Method.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
paymentMethodId | integer RequiredThe ID of the Payment Method to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/payment-methods/123
linode-cli payment-methods view 123
Response Samples
{
"created": "2018-01-15T00:01:01",
"data": {
"card_type": "Discover",
"expiry": "06/2022",
"last_four": "1234"
},
"id": 123,
"is_default": true,
"type": "credit_card"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
created | string<date-time> When the Payment Method was added to the Account. | ||||||||||||||||||||||
| |||||||||||||||||||||||
id | integer The unique ID of this Payment Method. | ||||||||||||||||||||||
is_default | boolean Whether this Payment Method is the default method for automatically processing service charges. | ||||||||||||||||||||||
type | string Enum:
credit_card
google_pay
paypal The type of Payment Method. |
errors | array
of objects
|
Payment Method Make Default
Make the specified Payment Method the default method for automatically processing payments. Removes the default status from any other Payment Method.
Parent and child accounts
In a parent and child account environment, the following apply:
- Child account users can’t run this operation. These users don’t have access to billing-related operations.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
paymentMethodId | integer RequiredThe ID of the Payment Method to make default. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/payment-methods/123/make-default
linode-cli payment-methods default 123
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Payments List
Returns a paginated list of Payments made on this Account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/payments
linode-cli account payments-list
Response Samples
{
"data": [
{
"date": "2018-01-15T00:01:01",
"id": 123,
"usd": "120.50"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||
page | integer The current page. | ||||||
pages | integer The total number of pages. | ||||||
results | integer The total number of results. |
errors | array
of objects
|
Payment Make
Makes a Payment to your Account.
The requested amount is charged to the default Payment Method if no
payment_method_id
is specified.A
payment_submitted
event is generated when a payment is successfully submitted.
Parent and child accounts
In a parent and child account environment, the following apply:
- Child account users can’t run this operation. These users don’t have access to billing-related operations.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"usd": "120.50",
"payment_method_id": 123
}' \
https://api.linode.com/v4/account/payments
linode-cli account payment-create \
--usd 120.50 \
--payment_method_id 123
Request Body Schema
payment_method_id | integer The ID of the Payment Method to apply to the Payment. |
usd | string The amount in US Dollars of the Payment.
|
Response Samples
{
"date": "2018-01-15T00:01:01",
"id": 123,
"usd": "120.50"
}
{
"warnings": [
{
"details": "Linode 123 could not be rebooted.",
"title": "Unable to reboot Linode."
}
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
date | string<date-time> When the Payment was made. |
id | integer The unique ID of the Payment. |
usd | integer The amount, in US dollars, of the Payment. |
warnings | array
of objects
|
errors | array
of objects
|
PayPal Payment Stage
Note: This endpoint is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See Manage Payment Methods.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"usd": "120.50",
"redirect_url": "https://example.org",
"cancel_url": "https://example.org"
}' \
https://api.linode.com/v4/account/payments/paypal
linode-cli account paypal-start \
--cancel_url https://example.org \
--redirect_url https://example.org \
--usd 120.50
Request Body Schema
cancel_url Required | string The URL to have PayPal redirect to when Payment is canceled. |
redirect_url Required | string The URL to have PayPal redirect to when Payment is approved. |
usd Required | string The payment amount in USD. Minimum accepted value of $5 USD. Maximum accepted value of $500 USD or credit card payment limit; whichever value is highest. PayPal’s maximum transaction limit is $10,000 USD. |
Response Samples
{
"checkout_token": "EC-1A2B3C4D5E6F7G8H9",
"payment_id": "PAY-1234567890ABCDEFGHIJKLMN"
}
{
"warnings": [
{
"details": "Linode 123 could not be rebooted.",
"title": "Unable to reboot Linode."
}
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
checkout_token | string The checkout token generated for this Payment. |
payment_id | string The paypal-generated ID for this Payment. Used when authorizing the Payment in PayPal’s interface. |
warnings | array
of objects
|
errors | array
of objects
|
Staged/Approved PayPal Payment Execute
Note: This endpoint is disabled and no longer accessible. PayPal can be designated as a Payment Method for automated payments using the Cloud Manager. See Manage Payment Methods.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"payment_id": "PAY-1234567890ABCDEFGHIJKLMN",
"payer_id": "ABCDEFGHIJKLM"
}' \
https://api.linode.com/v4/account/payments/paypal
linode-cli account paypal-execute
Request Body Schema
payer_id Required | string The PayerID returned by PayPal during the transaction authorization process. |
payment_id Required | string The PaymentID returned from POST /account/payments/paypal that has been approved with PayPal. |
Response Samples
{}
{
"warnings": [
{
"details": "Linode 123 could not be rebooted.",
"title": "Unable to reboot Linode."
}
]
}
{
"warnings": [
{
"details": "Linode 123 could not be rebooted.",
"title": "Unable to reboot Linode."
}
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
warnings | array
of objects
|
warnings | array
of objects
|
errors | array
of objects
|
Payment View
Returns information about a specific Payment.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
paymentId | integer RequiredThe ID of the Payment to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/payments/123
linode-cli account payment-view 123
Response Samples
{
"date": "2018-01-15T00:01:01",
"id": 123,
"usd": "120.50"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
date | string<date-time> When the Payment was made. |
id | integer The unique ID of the Payment. |
usd | integer The amount, in US dollars, of the Payment. |
errors | array
of objects
|
Promo Credit Add
Adds an expiring Promo Credit to your account. The following restrictions apply:
Your account needs to be less than 90 days old.
You can’t already have a Promo Credit on your account.
The user making the request needs to be unrestricted. You can use the User Update (/docs/api/account/#user-update) operation to change a user’s restricted status.
The
promo_code
needs to be valid and unexpired.
Parent and child accounts
In a parent and child account environment, the following apply:
- Child account users can’t run this operation. These users don’t have access to billing-related operations.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"promo_code": "abcdefABCDEF1234567890"
}' \
https://api.linode.com/v4/account/promo-codes
linode-cli account \
promo-add \
--promo-code abcdefABCDEF1234567890
Request Body Schema
promo_code Required | string
1..32
charactersThe Promo Code. |
Response Samples
{
"credit_monthly_cap": "10.00",
"credit_remaining": "50.00",
"description": "Receive up to $10 off your services every month for 6 months! Unused credits will expire once this promotion period ends.",
"expire_dt": "2018-01-31T23:59:59",
"image_url": "https://linode.com/10_a_month_promotion.svg",
"service_type": "all",
"summary": "$10 off your Linode a month!",
"this_month_credit_remaining": "10.00"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
credit_monthly_cap | string The amount available to spend per month. |
credit_remaining | string The total amount of credit left for this promotion. |
description | string A detailed description of this promotion. |
expire_dt | string When this promotion’s credits expire. |
image_url | string The location of an image for this promotion. |
service_type | string Enum:
all
backup
blockstorage
db_mysql
ip_v4
linode
linode_disk
linode_memory
longview
managed
nodebalancer
objectstorage
transfer_tx The service to which this promotion applies. |
summary | string Short details of this promotion. |
this_month_credit_remaining | string The amount of credit left for this month for this promotion. |
errors | array
of objects
|
Service Transfers List
Returns a collection of all created and accepted Service Transfers for this account, regardless of the user that created or accepted the transfer.
This command can only be accessed by the unrestricted users of an account.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/service-transfers
linode-cli service-transfers \
list
Response Samples
{
"data": [
{
"created": "2021-02-11T16:37:03",
"entities": {
"linodes": [
111,
222
]
},
"expiry": "2021-02-12T16:37:03",
"is_sender": true,
"status": "pending",
"token": "123E4567-E89B-12D3-A456-426614174000",
"updated": "2021-02-11T16:37:03"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
of objects
| ||||||||||||||||
page | integer The current page. | ||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
Service Transfer Create
Creates a transfer request for the specified services. A request can contain any of the specified service types and any number of each service type. At this time, only Linodes can be transferred.
When created successfully, a confirmation email is sent to the account that created this transfer containing a transfer token and instructions on completing the transfer.
When a transfer is accepted, the requested services are moved to the receiving account. Linode services will not experience interruptions due to the transfer process. Backups for Linodes are transferred as well.
DNS records that are associated with requested services will not be transferred or updated. Please ensure that associated DNS records have been updated or communicated to the recipient prior to the transfer.
A transfer can take up to three hours to complete once accepted. When a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.
This command can only be accessed by the unrestricted users of an account.
There are several conditions that you need to meet to successfully create a transfer request:
The account creating the transfer can’t have a past due balance or active Terms of Service violation.
The service needs to be owned by the account that is creating the transfer.
The service can’t be assigned to another Service Transfer that is pending or that’s been accepted and is incomplete.
Linodes can’t:
be assigned to a NodeBalancer, Firewall, VLAN, VPC, or Managed Service.
have any attached Block Storage Volumes.
have any shared IP addresses.
have any assigned /56, /64, or /116 IPv6 ranges.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"entities": {
"linodes": [
111,
222
]
}
}' \
https://api.linode.com/v4/account/service-transfers
linode-cli service-transfers \
create \
--entities.linodes 111 \
--entities.linodes 222
Request Body Schema
entities Required | object A collection of the services to include in this transfer request, separated by type.
|
Response Samples
{
"created": "2021-02-11T16:37:03",
"entities": {
"linodes": [
111,
222
]
},
"expiry": "2021-02-12T16:37:03",
"is_sender": true,
"status": "pending",
"token": "123E4567-E89B-12D3-A456-426614174000",
"updated": "2021-02-11T16:37:03"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
created | string<date-time> When this transfer was created. | ||
entities | object A collection of the services to include in this transfer request, separated by type.
| ||
expiry | string<date-time> When this transfer expires. Transfers will automatically expire 24 hours after creation. | ||
is_sender | boolean If the requesting account created this transfer. | ||
status | string Enum:
accepted
canceled
completed
failed
pending
stale The status of the transfer request.
| ||
token | string<uuid> The token used to identify and accept or cancel this transfer. | ||
updated | string<date-time> When this transfer was last updated. |
errors | array
of objects
|
Service Transfer Cancel
Cancels the Service Transfer for the provided token. Once canceled, a transfer cannot be accepted or otherwise acted on in any way. If canceled in error, the transfer must be created again.
When canceled, an email notification for the cancellation is sent to the account that created this transfer. Transfers can not be canceled if they are expired or have been accepted.
This command can only be accessed by the unrestricted users of the account that created this transfer.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
token | string<uuid> RequiredThe UUID of the Service Transfer. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/service-transfers/123E4567-E89B-12D3-A456-426614174000
linode-cli service-transfers \
cancel 123E4567-E89B-12D3-A456-426614174000
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Service Transfer View
Returns the details of the Service Transfer for the provided token.
While a transfer is pending, any unrestricted user of any account can access this command. After a transfer has been accepted, it can only be viewed by unrestricted users of the accounts that created and accepted the transfer. If canceled or expired, only unrestricted users of the account that created the transfer can view it.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
token | string<uuid> RequiredThe UUID of the Service Transfer. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/service-transfers/123E4567-E89B-12D3-A456-426614174000
linode-cli service-transfers \
view 123E4567-E89B-12D3-A456-426614174000
Response Samples
{
"created": "2021-02-11T16:37:03",
"entities": {
"linodes": [
111,
222
]
},
"expiry": "2021-02-12T16:37:03",
"is_sender": true,
"status": "pending",
"token": "123E4567-E89B-12D3-A456-426614174000",
"updated": "2021-02-11T16:37:03"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
created | string<date-time> When this transfer was created. | ||
entities | object A collection of the services to include in this transfer request, separated by type.
| ||
expiry | string<date-time> When this transfer expires. Transfers will automatically expire 24 hours after creation. | ||
is_sender | boolean If the requesting account created this transfer. | ||
status | string Enum:
accepted
canceled
completed
failed
pending
stale The status of the transfer request.
| ||
token | string<uuid> The token used to identify and accept or cancel this transfer. | ||
updated | string<date-time> When this transfer was last updated. |
errors | array
of objects
|
Service Transfer Accept
Accept a Service Transfer for the provided token to receive the services included in the transfer to your account. At this time, only Linodes can be transferred.
When accepted, email confirmations are sent to the accounts that created and accepted the transfer. A transfer can take up to three hours to complete once accepted. Once a transfer is completed, billing for transferred services ends for the sending account and begins for the receiving account.
This command can only be accessed by the unrestricted users of the account that receives the transfer. Users of the same account that created a transfer cannot accept the transfer.
There are several conditions that must be met in order to accept a transfer request:
Only transfers with a
pending
status can be accepted.The account accepting the transfer must have a registered payment method and must not have a past due balance or other account limitations for the services to be transferred.
Both the account that created the transfer and the account that is accepting the transfer must not have any active Terms of Service violations.
The service must still be owned by the account that created the transfer.
Linodes must not:
be assigned to a NodeBalancer, Firewall, VLAN, or Managed Service.
have any attached Block Storage Volumes.
have any shared IP addresses.
have any assigned /56, /64, or /116 IPv6 ranges.
Any and all of the above conditions must be cured and maintained by the relevant account prior to the transfer’s expiration to allow the transfer to be accepted by the receiving account.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
token | string<uuid> RequiredThe UUID of the Service Transfer. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/service-transfers/123E4567-E89B-12D3-A456-426614174000/accept
linode-cli service-transfers \
accept 123E4567-E89B-12D3-A456-426614174000
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Account Settings View
Returns information related to your Account settings: Managed service subscription, Longview subscription, and network helper.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/settings
linode-cli account settings
Response Samples
{
"backups_enabled": true,
"longview_subscription": "longview-3",
"managed": true,
"network_helper": false,
"object_storage": "active"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
backups_enabled | boolean Account-wide backups default. If |
longview_subscription | string The Longview Pro tier you are currently subscribed to. The value must be a
Longview Subscription ID or |
managed | boolean Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we’ll monitor it for connectivity, response, and total request time. |
network_helper | boolean Enables network helper across all users by default for new Linodes and Linode Configs. |
object_storage | string Enum:
disabled
suspended
active
Default:
disabled A string describing the status of this account’s Object Storage service enrollment. |
errors | array
of objects
|
Account Settings Update
Updates your account settings. For a Longview subscription plan, see Update Longview Plan.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"network_helper": true
}' \
https://api.linode.com/v4/account/settings
linode-cli account settings-update \
--network_helper false
Request Body Schema
backups_enabled | boolean Account-wide backups default. If |
network_helper | boolean Enables network helper across all users by default for new Linodes and Linode Configs. |
Response Samples
{
"backups_enabled": true,
"longview_subscription": "longview-3",
"managed": true,
"network_helper": false,
"object_storage": "active"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
backups_enabled | boolean Account-wide backups default. If |
longview_subscription | string The Longview Pro tier you are currently subscribed to. The value must be a
Longview Subscription ID or |
managed | boolean Our 24/7 incident response service. This robust, multi-homed monitoring system distributes monitoring checks to ensure that your servers remain online and available at all times. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. Once you add a service to Linode Managed, we’ll monitor it for connectivity, response, and total request time. |
network_helper | boolean Enables network helper across all users by default for new Linodes and Linode Configs. |
object_storage | string Enum:
disabled
suspended
active
Default:
disabled A string describing the status of this account’s Object Storage service enrollment. |
errors | array
of objects
|
Linode Managed Enable
Enables Linode Managed for the entire account and sends a welcome email to the account’s associated email address. Linode Managed can monitor any service or software stack reachable over TCP or HTTP. See our Linode Managed guide to learn more.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X POST \
https://api.linode.com/v4/account/settings/managed-enable
linode-cli account enable-managed
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
Network Utilization View
Returns a Transfer object showing your network utilization, in GB, for the current month.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/transfer
linode-cli account transfer
Response Samples
{
"billable": 0,
"quota": 9141,
"region_transfers": [
{
"billable": 0,
"id": "us-east",
"quota": 5010,
"used": 1
}
],
"used": 2
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
billable | integer The amount of your transfer pool that is billable this billing cycle. | ||||||||
quota | integer The amount of network usage allowed this billing cycle. | ||||||||
region_transfers | array
of objects
| ||||||||
used | integer The amount of network usage you have used this billing cycle. |
errors | array
of objects
|
Users List
Returns a paginated list of all users on your account.
Note: This command can only be accessed by account users with unrestricted access.
A user can access all or part of an account based on their access status and grants:
Unrestricted access. These users can access everything on an account.
Restricted access. These users can only access entities or perform actions they’ve been given specific grants to.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Query Parameters
page |
The page of a collection to return. |
page_size |
The number of items to return per page. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/users
linode-cli users list
Response Samples
{
"data": [
{
"email": "example_user@linode.com",
"last_login": {
"login_datetime": "2018-01-01T01:01:01",
"status": "successful"
},
"password_created": "2018-01-01T01:01:01",
"restricted": true,
"ssh_keys": [
"home-pc",
"laptop"
],
"tfa_enabled": true,
"user_type": "parent",
"username": "example_user",
"verified_phone_number": "+5555555555"
}
],
"page": 1,
"pages": 1,
"results": 1
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
data | array
| ||||||||||||||||||||||
page | integer The current page. | ||||||||||||||||||||||
pages | integer The total number of pages. | ||||||||||||||||||||||
results | integer The total number of results. |
errors | array
of objects
|
User Create
Creates a user on your account. You determine the new user’s account access by setting it to restricted or unrestricted and by defining its grants. After completion, the API sends a confirmation message containing password creation and login instructions to the user’s email
address.
Note: This command can only be accessed by account users with unrestricted access.
Parent and child accounts
In a parent and child account environment, the following apply:
A parent account user can create new parent account users.
A child account can update the child account parent user (proxy user) to
unrestricted
. This gives the proxy user access to create new child account users.A child account user can create new child account users.
You can’t create a proxy user. The proxy user in a child account is predefined when you initially provision the parent-child relationship.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST -d '{
"username": "example_user",
"email": "person@place.com",
"restricted": true
}' \
https://api.linode.com/v4/account/users
linode-cli users create \
--username example_user \
--email example_user@linode.com \
--restricted true
Request Body Schema
email Required | string<email> The email address for the User. Linode sends emails to this address for account management communications. May be used for other communications as configured. |
restricted | boolean If true, the User must be granted access to perform actions or access entities on this Account. See User Grants View ( GET /account/users/{username}/grants) for details on how to configure grants for a restricted User. |
username Required | string
3..32
charactersThe User’s username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts). |
Response Samples
{
"email": "example_user@linode.com",
"last_login": {
"login_datetime": "2018-01-01T01:01:01",
"status": "successful"
},
"password_created": "2018-01-01T01:01:01",
"restricted": true,
"ssh_keys": [
"home-pc",
"laptop"
],
"tfa_enabled": true,
"username": "example_user",
"verified_phone_number": "+5555555555"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
email | string<email> The email address for the User. Linode sends emails to this address for account management communications. May be used for other communications as configured. | ||||
last_login Nullable | object Information for the most recent login attempt for this User.
Access the User Logins List All command for additional login information.
| ||||
password_created Nullable | string<date-time> The date and time when this User’s current password was created. User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage.
| ||||
restricted | boolean If true, the User must be granted access to perform actions or access entities on this Account. See User Grants View ( GET /account/users/{username}/grants) for details on how to configure grants for a restricted User. | ||||
ssh_keys | array
of strings A list of SSH Key labels added by this User. Users can add keys with the SSH Key Add ( POST /profile/sshkeys) command. These keys are deployed when this User is included in the
| ||||
tfa_enabled | boolean 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. | ||||
username | string
3..32
charactersThe User’s username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts). | ||||
verified_phone_number Nullable | string<phone> The phone number verified for this User Profile with the Phone Number Verify ( POST /profile/phone-number/verify) command.
|
errors | array
of objects
|
User Delete
Deletes a user. The API immediately logs the user out and removes all of its grants
.
Note: This command can only be accessed by account users with unrestricted access.
Parent and child accounts
In a parent and child account environment, the following apply:
You can’t delete a child account parent user (proxy user). The API returns a 403 error if you target a proxy user with this operation.
A parent account using an unrestricted proxy user can use this operation to delete a child account user.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
username | string RequiredThe username to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
-X DELETE \
https://api.linode.com/v4/account/users/example_user
linode-cli users delete example_user
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
User View
Returns information about a single user on your account.
Note: This command can only be accessed by account users with unrestricted access.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
username | string RequiredThe username to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/users/example_user
linode-cli users view example_user
Response Samples
{}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
errors | array
of objects
|
User Update
Update information about a user on your account, including its restricted status. When setting a user to restricted
, the API sets no grants for it. You need to set grants
so that user can access things on the account.
Note: This command can only be accessed by account users with unrestricted access.
Parent and child accounts
In a parent and child account environment, the following apply:
You can’t edit the
username
oremail
values for the child account parent user (proxy user). These are predefined for the proxy user when you initially provision the parent-child relationship. Only a proxy user’srestricted
status can be modified. This can only be done by an unrestricted child account user.A parent account using an unrestricted proxy user in a child account can modify the
username
,email
, andrestricted
status for an existing child account user.A restricted account user–parent or child–can’t change their user to
unrestricted
.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
username | string RequiredThe username to look up. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"username": example_user,
"email": example@linode.com,
"restricted": true
}' \
https://api.linode.com/v4/account/users/example_user
linode-cli users update example_user \
--username example_user \
--email example@linode.com \
--restricted true
Request Body Schema
email | string<email> The email address for the User. Linode sends emails to this address for account management communications. May be used for other communications as configured. |
restricted | boolean If true, the User must be granted access to perform actions or access entities on this Account. See User Grants View ( GET /account/users/{username}/grants) for details on how to configure grants for a restricted User. |
username | string
3..32
charactersThe User’s username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts). |
Response Samples
{
"email": "example_user@linode.com",
"last_login": {
"login_datetime": "2018-01-01T01:01:01",
"status": "successful"
},
"password_created": "2018-01-01T01:01:01",
"restricted": true,
"ssh_keys": [
"home-pc",
"laptop"
],
"tfa_enabled": true,
"user_type": "parent",
"username": "example_user",
"verified_phone_number": "+5555555555"
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
email | string<email> The email address for the User. Linode sends emails to this address for account management communications. May be used for other communications as configured. | ||||
last_login Nullable | object Information for the most recent login attempt for this User.
Access the User Logins List All command for additional login information.
| ||||
password_created Nullable | string<date-time> The date and time when this User’s current password was created. User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage.
| ||||
restricted | boolean If true, the User must be granted access to perform actions or access entities on this Account. See User Grants View ( GET /account/users/{username}/grants) for details on how to configure grants for a restricted User. | ||||
ssh_keys | array
of strings A list of SSH Key labels added by this User. Users can add keys with the SSH Key Add ( POST /profile/sshkeys) command. These keys are deployed when this User is included in the
| ||||
tfa_enabled | boolean 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. | ||||
user_type | string Enum:
parent
child
proxy
default If the user belongs to a parent or child account relationship, this defines the user type in the respective account. Possible values include:
| ||||
username | string
3..32
charactersThe User’s username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts). | ||||
verified_phone_number Nullable | string<phone> The phone number verified for this User Profile with the Phone Number Verify ( POST /profile/phone-number/verify) command.
|
errors | array
of objects
|
User's Grants View
Returns the full grants structure for an account username you specify. This includes all entities on the account, and the level of access this user has to each of them.
This doesn’t apply to the account owner or the current authenticated user. You can use the Grants List operation to view those grants. However, this doesn’t show the entities that they don’t have access to.
Note: This command can only be accessed by account users with unrestricted access.
Authorizations
personalAccessToken | |
oauth | account:read_only |
Path Parameters
username | string RequiredThe username to look up. |
Request Samples
curl -H "Authorization: Bearer $TOKEN" \
https://api.linode.com/v4/account/users/example_user/grants
Response Samples
{
"database": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"domain": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"global": {
"account_access": "read_only",
"add_databases": true,
"add_domains": true,
"add_firewalls": true,
"add_images": true,
"add_linodes": true,
"add_longview": true,
"add_nodebalancers": true,
"add_stackscripts": true,
"add_volumes": true,
"add_vpcs": true,
"cancel_account": false,
"child_account_access": true,
"longview_subscription": true
},
"image": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"linode": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"longview": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"nodebalancer": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"stackscript": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"volume": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"vpc": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
database | array
of objects The grants this User has for each Database that is owned by this Account.
| ||||||||||||||||||||||||||||
domain | array
of objects The grants this User has for each Domain that is owned by this Account.
| ||||||||||||||||||||||||||||
global | object A structure containing the Account-level grants a User has.
| ||||||||||||||||||||||||||||
image | array
of objects The grants this User has for each Image that is owned by this Account.
| ||||||||||||||||||||||||||||
linode | array
of objects The grants this User has for each Linode that is owned by this Account.
| ||||||||||||||||||||||||||||
longview | array
of objects The grants this User has for each Longview Client that is owned by this Account.
| ||||||||||||||||||||||||||||
nodebalancer | array
of objects The grants this User has for each NodeBalancer that is owned by this Account.
| ||||||||||||||||||||||||||||
stackscript | array
of objects The grants this User has for each StackScript that is owned by this Account.
| ||||||||||||||||||||||||||||
volume | array
of objects The grants this User has for each Block Storage Volume that is owned by this Account.
| ||||||||||||||||||||||||||||
vpc | array
of objects The grants this User has for each VPC that is owned by this Account.
|
errors | array
of objects
|
User's Grants Update
Update the grants a user has. This can be used to give a user access to new entities or actions, or take access away. You don’t need to include the grant for every entity on the account in this request. Any that are not included remain unchanged.
Note: This command can only be accessed by account users with unrestricted access.
Parent and child accounts
In a parent and child account environment, the following apply:
No child account user can modify the
account_access
grant for the child account parent user (proxy user).An unrestricted child account user can configure all other grants for the proxy user, via
global
object.An unrestricted child account user can enable the
account_access
grant for other child account users. However, enabled child users are still subject to child user restrictions–they can’t perform write operations for any billing or account information.
Authorizations
personalAccessToken | |
oauth | account:read_write |
Path Parameters
username | string RequiredThe username to look up. |
Request Samples
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PUT -d '{
"global": {
"add_linodes": true,
"add_nodebalancers": false,
"add_databases": true,
"add_domains": true,
"add_longview": false,
"add_stackscripts": true,
"longview_subscription": true,
"add_images": true,
"add_volumes": true,
"add_firewalls": true,
"account_access": "read_only",
"cancel_account": false,
"add_vpcs": true
},
"domain": [
{
"id": 123,
"permissions": "read_only"
}
],
"image": [
{
"id": 123,
"permissions": "read_only"
}
],
"linode": [
{
"id": 123,
"permissions": "read_only"
},
{
"id": 234,
"permissions": "read_write"
},
{
"id": 345,
"permissions": "read_only"
}
],
"longview": [
{
"id": 123,
"permissions": "read_only"
},
{
"id": 234,
"permissions": "read_write"
}
],
"nodebalancer": [
{
"id": 123,
"permissions": "read_write"
}
],
"stackscript": [
{
"id": 123,
"permissions": "read_only"
},
{
"id": 124,
"permissions": "read_write"
}
],
"volume": [
{
"id": 123,
"permissions": "read_only"
}
],
"vpc": [
{
"id": 123,
"permissions": "read_write"
}
]
}' \
https://api.linode.com/v4/account/users/example_user/grants
Request Body Schema
database | array
of objects The grants this User has for each Database that is owned by this Account.
| ||||||||||||||||||||||||||||
domain | array
of objects The grants this User has for each Domain that is owned by this Account.
| ||||||||||||||||||||||||||||
global | object A structure containing the Account-level grants a User has.
| ||||||||||||||||||||||||||||
image | array
of objects The grants this User has for each Image that is owned by this Account.
| ||||||||||||||||||||||||||||
linode | array
of objects The grants this User has for each Linode that is owned by this Account.
| ||||||||||||||||||||||||||||
longview | array
of objects The grants this User has for each Longview Client that is owned by this Account.
| ||||||||||||||||||||||||||||
nodebalancer | array
of objects The grants this User has for each NodeBalancer that is owned by this Account.
| ||||||||||||||||||||||||||||
stackscript | array
of objects The grants this User has for each StackScript that is owned by this Account.
| ||||||||||||||||||||||||||||
volume | array
of objects The grants this User has for each Block Storage Volume that is owned by this Account.
| ||||||||||||||||||||||||||||
vpc | array
of objects The grants this User has for each VPC that is owned by this Account.
|
Response Samples
{
"database": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"domain": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"global": {
"account_access": "read_only",
"add_databases": true,
"add_domains": true,
"add_firewalls": true,
"add_images": true,
"add_linodes": true,
"add_longview": true,
"add_nodebalancers": true,
"add_stackscripts": true,
"add_volumes": true,
"add_vpcs": true,
"cancel_account": false,
"child_account_access": true,
"longview_subscription": true
},
"image": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"linode": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"longview": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"nodebalancer": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"stackscript": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"volume": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
],
"vpc": [
{
"id": 123,
"label": "example-entity",
"permissions": "read_only"
}
]
}
{
"errors": [
{
"field": "fieldname",
"reason": "fieldname must be a valid value"
}
]
}
Responses
database | array
of objects The grants this User has for each Database that is owned by this Account.
| ||||||||||||||||||||||||||||
domain | array
of objects The grants this User has for each Domain that is owned by this Account.
| ||||||||||||||||||||||||||||
global | object A structure containing the Account-level grants a User has.
| ||||||||||||||||||||||||||||
image | array
of objects The grants this User has for each Image that is owned by this Account.
| ||||||||||||||||||||||||||||
linode | array
of objects The grants this User has for each Linode that is owned by this Account.
| ||||||||||||||||||||||||||||
longview | array
of objects The grants this User has for each Longview Client that is owned by this Account.
| ||||||||||||||||||||||||||||
nodebalancer | array
of objects The grants this User has for each NodeBalancer that is owned by this Account.
| ||||||||||||||||||||||||||||
stackscript | array
of objects The grants this User has for each StackScript that is owned by this Account.
| ||||||||||||||||||||||||||||
volume | array
of objects The grants this User has for each Block Storage Volume that is owned by this Account.
| ||||||||||||||||||||||||||||
vpc | array
of objects The grants this User has for each VPC that is owned by this Account.
|
errors | array
of objects
|