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.
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.
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.
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"
}
}
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"}]
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