linode Object Storage API

Manage Object Storage buckets, access keys, clusters, and endpoints for S3-compatible object storage.

OpenAPI Specification

linode-object-storage-api-openapi.yml Raw ↑
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