linode Object Storage API
Manage Object Storage buckets, access keys, clusters, and endpoints for S3-compatible object storage.
Manage Object Storage buckets, access keys, clusters, and endpoints for S3-compatible object storage.
openapi: 3.1.0
info:
title: Linode API v4 Account Object Storage API
description: The Linode API v4 provides programmatic access to the full range of Akamai Connected Cloud (formerly Linode) products and services. It enables developers to create and manage compute instances, deploy Kubernetes clusters, configure NodeBalancers, manage DNS domains, provision Block Storage volumes, control Object Storage buckets, set up firewalls, and administer account settings. The RESTful API uses OAuth and personal access tokens for authentication and returns JSON responses, with support for filtering and sorting across all resource endpoints.
version: 4.189.0
contact:
name: Linode Support
url: https://www.linode.com/support/
termsOfService: https://www.linode.com/legal-tos/
servers:
- url: https://api.linode.com/v4
description: Production Server
security:
- personalAccessToken: []
- oauth: []
tags:
- name: Object Storage
description: Manage Object Storage buckets, access keys, clusters, and endpoints for S3-compatible object storage.
paths:
/object-storage/buckets:
get:
operationId: getObjectStorageBuckets
summary: List Object Storage buckets
description: Returns a paginated list of all Object Storage buckets on your account across all clusters.
tags:
- Object Storage
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Object Storage buckets retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedObjectStorageBucketList'
'401':
description: Unauthorized - invalid or missing authentication
/object-storage/buckets/{regionId}/{bucket}:
get:
operationId: getObjectStorageBucket
summary: Get an Object Storage bucket
description: Returns the details for a single Object Storage bucket.
tags:
- Object Storage
parameters:
- $ref: '#/components/parameters/regionIdParam'
- $ref: '#/components/parameters/bucketParam'
responses:
'200':
description: Object Storage bucket retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStorageBucket'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Bucket not found
delete:
operationId: deleteObjectStorageBucket
summary: Delete an Object Storage bucket
description: Deletes an Object Storage bucket. The bucket must be empty before it can be deleted.
tags:
- Object Storage
parameters:
- $ref: '#/components/parameters/regionIdParam'
- $ref: '#/components/parameters/bucketParam'
responses:
'200':
description: Object Storage bucket deleted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: Bucket not found
/object-storage/keys:
get:
operationId: getObjectStorageKeys
summary: List Object Storage keys
description: Returns a paginated list of Object Storage keys on your account.
tags:
- Object Storage
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: Object Storage keys retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedObjectStorageKeyList'
'401':
description: Unauthorized - invalid or missing authentication
post:
operationId: createObjectStorageKey
summary: Create an Object Storage key
description: Creates a new Object Storage key pair for accessing buckets. The secret key is only returned once at creation time.
tags:
- Object Storage
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStorageKeyRequest'
responses:
'200':
description: Object Storage key created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStorageKey'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
/object-storage/endpoints:
get:
operationId: getObjectStorageEndpoints
summary: List Object Storage endpoints
description: Returns a list of available Object Storage endpoints and their associated regions.
tags:
- Object Storage
responses:
'200':
description: Object Storage endpoints retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStorageEndpointList'
'401':
description: Unauthorized - invalid or missing authentication
components:
parameters:
regionIdParam:
name: regionId
in: path
required: true
schema:
type: string
description: The ID of the region.
bucketParam:
name: bucket
in: path
required: true
schema:
type: string
description: The name of the Object Storage bucket.
pageParam:
name: page
in: query
schema:
type: integer
minimum: 1
default: 1
description: The page number to return.
pageSizeParam:
name: page_size
in: query
schema:
type: integer
minimum: 25
maximum: 500
default: 100
description: The number of items per page.
schemas:
ObjectStorageKey:
type: object
properties:
id:
type: integer
description: The unique ID of this key.
label:
type: string
description: The label for this key.
access_key:
type: string
description: The access key for S3-compatible requests.
secret_key:
type: string
description: The secret key. Only returned at creation time.
limited:
type: boolean
description: Whether this key has limited bucket access.
bucket_access:
type: array
items:
type: object
properties:
region:
type: string
description: The region of the bucket.
bucket_name:
type: string
description: The name of the bucket.
permissions:
type: string
enum:
- read_only
- read_write
description: The permission level.
description: Specific bucket access permissions for this key.
ObjectStorageEndpointList:
type: object
properties:
data:
type: array
items:
type: object
properties:
region:
type: string
description: The region ID.
endpoint_type:
type: string
description: The type of endpoint.
s3_endpoint:
type: string
description: The S3-compatible endpoint URL.
ObjectStorageKeyRequest:
type: object
required:
- label
properties:
label:
type: string
minLength: 3
maxLength: 50
description: The label for the new key.
bucket_access:
type: array
items:
type: object
required:
- region
- bucket_name
- permissions
properties:
region:
type: string
bucket_name:
type: string
permissions:
type: string
enum:
- read_only
- read_write
description: Specific bucket access permissions.
PaginatedObjectStorageBucketList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ObjectStorageBucket'
PaginatedObjectStorageKeyList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ObjectStorageKey'
ObjectStorageBucket:
type: object
properties:
label:
type: string
description: The name of this bucket.
region:
type: string
description: The region where this bucket is located.
created:
type: string
format: date-time
description: When this bucket was created.
hostname:
type: string
description: The hostname for accessing this bucket.
objects:
type: integer
description: The number of objects in this bucket.
size:
type: integer
description: The total size of objects in bytes.
Pagination:
type: object
properties:
page:
type: integer
description: The current page number.
pages:
type: integer
description: The total number of pages.
results:
type: integer
description: The total number of results.
securitySchemes:
personalAccessToken:
type: http
scheme: bearer
description: A personal access token generated from the Linode Cloud Manager that grants access to the API based on the token's scopes.
oauth:
type: oauth2
description: OAuth 2.0 authentication for third-party applications.
flows:
authorizationCode:
authorizationUrl: https://login.linode.com/oauth/authorize
tokenUrl: https://login.linode.com/oauth/token
scopes:
account:read_only: Read access to account information
account:read_write: Read and write access to account information
domains:read_only: Read access to domains
domains:read_write: Read and write access to domains
events:read_only: Read access to events
events:read_write: Read and write access to events
firewall:read_only: Read access to firewalls
firewall:read_write: Read and write access to firewalls
images:read_only: Read access to images
images:read_write: Read and write access to images
ips:read_only: Read access to IP addresses
ips:read_write: Read and write access to IP addresses
linodes:read_only: Read access to Linodes
linodes:read_write: Read and write access to Linodes
lke:read_only: Read access to LKE
lke:read_write: Read and write access to LKE
longview:read_only: Read access to Longview
longview:read_write: Read and write access to Longview
nodebalancers:read_only: Read access to NodeBalancers
nodebalancers:read_write: Read and write access to NodeBalancers
object_storage:read_only: Read access to Object Storage
object_storage:read_write: Read and write access to Object Storage
stackscripts:read_only: Read access to StackScripts
stackscripts:read_write: Read and write access to StackScripts
volumes:read_only: Read access to Volumes
volumes:read_write: Read and write access to Volumes
vpc:read_only: Read access to VPCs
vpc:read_write: Read and write access to VPCs
externalDocs:
description: Linode API v4 Documentation
url: https://techdocs.akamai.com/linode-api/reference/api