You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* initial check in
* added object storage information
* added a note about other levels of rate limiting outside of the api
* removed statement about user quota with multiple tokens
* added open support ticket and a note about specific limits below
* updated headers downgraded level by one
Copy file name to clipboardExpand all lines: openapi.yaml
+50-15Lines changed: 50 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ info:
4
4
5
5
title: Linode API
6
6
description: |
7
-
# Introduction
7
+
## Introduction
8
8
The Linode API provides the ability to programmatically manage the full
9
9
range of Linode products and services.
10
10
@@ -20,19 +20,19 @@ info:
20
20
<a target="_top" href="https://developers.linode.com/api/docs/v4/openapi.yaml">Download the Linode OpenAPI Specification</a>.
21
21
22
22
23
-
# Changelog
23
+
## Changelog
24
24
25
25
<a target="_top" href="https://developers.linode.com/changelog">View our Changelog</a> to see release
26
26
notes on all changes made to our API.
27
27
28
-
# Access and Authentication
28
+
## Access and Authentication
29
29
30
30
Some endpoints are publicly accessible without requiring authentication.
31
31
All endpoints affecting your Account, however, require either a Personal
32
32
Access Token or OAuth authentication (when using third-party
33
33
applications).
34
34
35
-
## Personal Access Token
35
+
### Personal Access Token
36
36
37
37
The easiest way to access the API is with a Personal Access Token (PAT)
38
38
generated from the
@@ -42,13 +42,13 @@ info:
42
42
All scopes for the OAuth security model ([defined below](#o-auth)) apply to this
43
43
security model as well.
44
44
45
-
### Authentication
45
+
#### Authentication
46
46
47
47
| Security Scheme Type: | HTTP |
48
48
|-----------------------|------|
49
49
| **HTTP Authorization Scheme** | bearer |
50
50
51
-
## OAuth
51
+
### OAuth
52
52
If you only need to access the Linode API for personal use,
53
53
we recommend that you create a [personal access token](#personal-access-token).
54
54
If you're designing an application that can authenticate with an arbitrary Linode user, then
@@ -65,7 +65,7 @@ info:
65
65
- A public client is used with applications where the client secret is not guaranteed to be secure. For example, a native app running on a user's computer may not be able to keep the client secret safe, as a user could potentially inspect the source of the application. So, native apps or apps that run in a user's browser should use a public client.
66
66
- Public and private clients follow different workflows, as described below.
67
67
68
-
### OAuth Workflow
68
+
#### OAuth Workflow
69
69
70
70
The OAuth workflow is a series of exchanges between your third-party app and Linode. The workflow is used
71
71
to authenticate a user before an application can start making API calls on the user's behalf.
@@ -86,7 +86,7 @@ info:
86
86
| 6. The login server responds to the client application with a new OAuth `access_token` and `refresh_token`. The `access_token` is set to expire in two hours. | |
87
87
| 7. The `refresh_token` can be used by contacting the login server with the `client_id`, `client_secret`, `grant_type`, and `refresh_token` to get a new OAuth `access_token` and `refresh_token`. The new `access_token` is good for another two hours, and the new `refresh_token`, can be used to extend the session again by this same method. | |
88
88
89
-
### OAuth Private Workflow - Additional Details
89
+
#### OAuth Private Workflow - Additional Details
90
90
91
91
The following information expands on steps 5 through 7 of the private workflow:
| **Scopes** | <ul><li>`account:read_only` - Allows access to GET information about your Account.</li><li>`account:read_write` - Allows access to all endpoints related to your Account.</li><li>`domains:read_only` - Allows access to GET Domains on your Account.</li><li>`domains:read_write` - Allows access to all Domain endpoints.</li><li>`events:read_only` - Allows access to GET your Events.</li><li>`events:read_write` - Allows access to all endpoints related to your Events.</li><li>`images:read_only` - Allows access to GET your Images.</li><li>`images:read_write` - Allows access to all endpoints related to your Images.</li><li>`ips:read_only` - Allows access to GET your ips.</li><li>`ips:read_write` - Allows access to all endpoints related to your ips.</li><li>`linodes:read_only` - Allows access to GET Linodes on your Account.</li><li>`linodes:read_write` - Allow access to all endpoints related to your Linodes.</li><li>`lke:read_only` - Allows access to GET LKE Clusters on your Account.</li><li>`lke:read_write` - Allows access to all endpoints related to LKE Clusters on your Account.</li><li>`longview:read_only` - Allows access to GET your Longview Clients.</li><li>`longview:read_write` - Allows access to all endpoints related to your Longview Clients.</li><li>`nodebalancers:read_only` - Allows access to GET NodeBalancers on your Account.</li><li>`nodebalancers:read_write` - Allows access to all NodeBalancer endpoints.</li><li>`stackscripts:read_only` - Allows access to GET your StackScripts.</li><li>`stackscripts:read_write` - Allows access to all endpoints related to your StackScripts.</li><li>`volumes:read_only` - Allows access to GET your Volumes.</li><li>`volumes:read_write` - Allows access to all endpoints related to your Volumes.</li></ul><br />|
136
136
137
-
# Requests
137
+
## Requests
138
138
139
139
Requests must be made over HTTPS to ensure transactions are encrypted. The
140
140
following Request methods are supported:
@@ -147,7 +147,7 @@ info:
147
147
| DELETE | Deletes a resource. This is a destructive action. |
148
148
149
149
150
-
# Responses
150
+
## Responses
151
151
152
152
Actions will return one following HTTP response status codes:
153
153
@@ -162,7 +162,7 @@ info:
162
162
| 429 Too Many Requests | You've hit a rate limit. |
163
163
| 500 Internal Server Error | Please [open a Support Ticket](/api/v4/support-tickets/#post). |
164
164
165
-
# Errors
165
+
## Errors
166
166
167
167
Success is indicated via <a href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes" target="_top">Standard HTTP status codes</a>.
168
168
`2xx` codes indicate success, `4xx` codes indicate a request error, and
@@ -186,7 +186,7 @@ info:
186
186
omitted if there is no relevant field. The `reason` is a human-readable
187
187
explanation of the error, and will always be included.
188
188
189
-
# Pagination
189
+
## Pagination
190
190
191
191
Resource lists are always paginated. The response will look similar to this:
192
192
@@ -208,7 +208,7 @@ info:
208
208
and can be set to return between 25 and 500. Page size can be set using
209
209
`?page_size=x`.
210
210
211
-
# Filtering and Sorting
211
+
## Filtering and Sorting
212
212
213
213
Collections are searchable by fields they include, marked in the spec as
214
214
`x-linode-filterable: true`. Filters are passed
@@ -323,7 +323,42 @@ info:
323
323
}'
324
324
```
325
325
326
-
# CLI (Command Line Interface)
326
+
## Rate Limiting
327
+
328
+
With the Linode API, you can make up to 1,600 general API requests every two minutes per user as
329
+
determined by IP adddress or by OAuth token. Additionally, there are endpoint specfic limits defined below.
330
+
331
+
**Note:** There may be rate limiting applied at other levels outside of the API, for example, at the load balancer.
332
+
333
+
`/stats` endpoints have their own dedicated limits of 100 requests per minute per user.
0 commit comments