Introduction

The Linode API is a programmatic interface for automating tasks or even developing custom applications in the Cloud. To use the Linode API you must have a Linode account.

The API follows the existing Users and Permissions system, so a user can only perform the operations and actions on instances they have access to. You can create users, restrict permissions, and use their API keys as necessary.

Authentication

All requests require an API key — with one exception: User.GetAPIKey() which can be used to generate an API key. API keys can be revoked or created My Profile.

You can pass in the API key either by using HTTP Basic Authentication (using the key as the password) or by sending an api_key request parameter via GET or POST.

Request Format

The api_action parameter is required on every request. All API request parameters and method parameters can be sent via either GET or POST variables.

Example request:

https://api.linode.com/?api_key=sekrit&api_action=test.echo&foo=bar

NOTE: api.linode.com responds only via https://api.linode.com.

Response Format

The API responds in JSON by default. The optional parameter api_responseFormat=human can be sent, which can be convenient for testing and debugging.

Example response:

{
	"ERRORARRAY":[],
	"ACTION":"test.echo",
	"DATA":{
		"FOO":"bar"
	}
}

Batching Requests

The Linode API also supports a batched mode, whereby you supply multiple request sets encoded in JSON and receive back an array of responses.

To perform a batch request simply set api_action=batch and place all of your requests in the api_requestArray parameter.

Example batch request:

https://api.linode.com/?api_key=sekrit&api_action=batch&api_requestArray=[{"api_action": "test.echo", "foo": "bar"},{"api_action": "test.echo", "ying": "yang"}]

Error Codes

ErrorCodes that can be returned by any method.

0: ok
1: Bad request
2: No action was requested
3: The requested class does not exist
4: Authentication failed
5: Object not found
6: A required property is missing for this action
7: Property is invalid
8: A data validation error has occurred
9: Method Not Implemented
10: Too many batched requests
11: RequestArray isn't valid JSON or WDDX
12: Batch approaching timeout. Stopping here.
13: Permission denied
14: API rate limit exceeded
30: Charging the credit card failed
31: Credit card is expired
40: Limit of Linodes added per hour reached
41: Linode must have no disks before delete