Getting Started with the Linode API
Updated , by Jared Kobos
Traducciones al EspañolEstamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
Create a Linode Using the Linode API
The Linode API allows you to automate any task that can be performed by the Cloud Manager, such as creating Linodes, managing IP addresses and DNS, and opening support tickets.
For example, this command creates a new 2GB Linode, deploys a Debian 9 image, and boots the system:
curl -X POST https://api.linode.com/v4/linode/instances \
-H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
-d '{"type": "g5-standard-2", "region": "us-east", "image": "linode/debian9", "root_pass": "root_password", "label": "prod-1"}'
This guide helps you get set up to run this example. Note that if you run this command, you create and are charged for a 2GB Linode.
Get an Access Token
Only authorized users can add Linodes and make changes to your account, and each request must be authenticated with an access token.
The easiest way to get a token is through the Cloud Manager.
NoteIf you are building an application which will need to authenticate multiple users (for example, a custom interface to Linode’s infrastructure for your organization), you can set up an OAuth authentication flow to generate tokens for each user.
Create an API Token
Log in to the Cloud Manager.
Click on your username at the top of the screen and select My Profile.
Select the API Tokens tab:
Click on Add a Personal Access Token and choose the access rights you want users authenticated with the new token to have.
When you have finished, click Submit to generate an API token string. Copy the token and save it in a secure location. You will not be able to view the token through the Cloud Manager after closing the popup.
Authenticate Requests
This token must be sent as a header on all requests to authenticated endpoints. The header should use the format:
Authorization: Bearer <token-string>
Store the token as a temporary shell variable to simplify repeated requests. Replace <token-string>
in this example:
TOKEN=<token-string>
Get Configuration Parameters
Specify the type, region, and image for the new Linode.
Review the list of available images:
curl https://api.linode.com/v4/images/ | json_pp
Choose one of the images from the resulting list and make a note of the
id
field.Repeat this procedure to choose a type:
curl https://api.linode.com/v4/linode/types/ | json_pp
Choose a region:
curl https://api.linode.com/v4/regions | json_pp
Build the Final Query
Replace the values in the command below with your chosen type, region, and image, and choose a label and secure password.
curl -X POST https://api.linode.com/v4/linode/instances \
-H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \
-d '{"type": "g5-standard-2", "region": "us-east", "image": "linode/debian9", "root_pass": "root_password", "label": "prod-1"}'
Advanced Query Options
Pagination
If a results list contains more than 100 items, the response is split into multiple pages. Each response includes the total number of pages and the current page. To view additional pages, add a page
parameter to the end of the URL. For example, querying the available kernels produces more than 200 results:
curl https://api.linode.com/v4/linode/kernels | json_pp
|
|
The pages
field indicates that the results are divided into three pages. View the second page:
curl https://api.linode.com/v4/linode/kernels | json_pp page=2
If you prefer a smaller number of items per page, you can override the default value with the page_size
parameter:
curl https://api.linode.com/v4/linode/kernels | json_pp page_size=50
Filter Results
The API also supports filtering lists of results. Filters are passed using the X-Filter
header and use JSON format. You can filter on almost any field that appears in a response object and the
API documentation specifies which fields are filterable.
The following query uses the deprecated
and vendor
fields to return all current Debian images:
curl https://api.linode.com/v4/images/ -H 'X-Filter: { "vendor": "Debian", "deprecated": false}' | json_pp
|
|
More complex searches are possible through the use of logical operators. Use or
to return a list of all Debian and Ubuntu images:
curl https://api.linode.com/v4/images/ -H 'X-Filter: {"+or": [{"vendor":"Debian"}, {"vendor":"Ubuntu"}]}' | json_pp
See the Linode API documentation for a full list of supported operators.
Revoke an API Token
If you forget your access token or think it may have been compromised, you can revoke an API access token in the Cloud Manager.
Log in to the Cloud Manager.
Click on your username at the top of the screen and select My Profile.
Select the API Tokens tab:
Find the token you wish to revoke and click the more options ellipsis to open the options menu and select Revoke Token.
A popup appears to confirm that you wish to revoke this token. Click the Revoke button.
This page was originally published on