Tigris Objects API

S3-compatible object CRUD, tagging, and tiering operations.

Operations 10

GET /{bucket} List objects in a bucket (ListObjectsV2 / ListObjects) #
PUT /{bucket}/{key} Upload an object (PutObject) or copy an object (CopyObject) #
GET /{bucket}/{key} Download an object (GetObject), optionally ranged or conditional #
HEAD /{bucket}/{key} Retrieve object metadata without the body (HeadObject) #
DELETE /{bucket}/{key} Delete an object (DeleteObject) #
PUT /{bucket}/{key}#tagging Set the tag set on an object (PutObjectTagging) #
GET /{bucket}/{key}#tagging Retrieve the tag set on an object (GetObjectTagging) #
DELETE /{bucket}/{key}#tagging Remove the tag set from an object (DeleteObjectTagging) #
POST /{bucket}#delete Delete multiple objects in one request (DeleteObjects) #
POST /{bucket}/{key}#restore Restore an archived (GLACIER) object (RestoreObject) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tigris-data-objects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tigris-data-objects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tigris Object Storage (S3-Compatible) Objects API
  description: Specification of the Tigris globally distributed object storage API.
  termsOfService: https://www.tigrisdata.com/docs/legal/terms-of-service/
  contact:
    name: Tigris Support
    url: https://www.tigrisdata.com/docs/support/
    email: support@tigrisdata.com
  version: '2026-06-20'
servers:
- url: https://t3.storage.dev
  description: Tigris global S3-compatible object storage endpoint (region auto)
- url: https://fly.storage.tigris.dev
  description: Legacy Tigris endpoint hostname (still supported)
security:
- sigv4: []
tags:
- name: Objects
  description: S3-compatible object CRUD, tagging, and tiering operations.
paths:
  /{bucket}:
    parameters:
    - $ref: '#/components/parameters/Bucket'
    get:
      operationId: listObjectsV2
      tags:
      - Objects
      summary: List objects in a bucket (ListObjectsV2 / ListObjects)
      parameters:
      - name: list-type
        in: query
        description: Set to 2 for ListObjectsV2.
        schema:
          type: integer
          enum:
          - 2
      - name: prefix
        in: query
        description: Limits the response to keys that begin with the prefix.
        schema:
          type: string
      - name: delimiter
        in: query
        description: Groups keys sharing a common prefix into CommonPrefixes.
        schema:
          type: string
      - name: continuation-token
        in: query
        description: Token returned by a prior truncated response for pagination.
        schema:
          type: string
      - name: max-keys
        in: query
        description: Maximum number of keys to return.
        schema:
          type: integer
      - name: encoding-type
        in: query
        schema:
          type: string
          enum:
          - url
      responses:
        '200':
          description: Object listing returned as S3 XML (ListBucketResult).
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ListBucketResult'
  /{bucket}/{key}:
    parameters:
    - $ref: '#/components/parameters/Bucket'
    - $ref: '#/components/parameters/Key'
    put:
      operationId: putObject
      tags:
      - Objects
      summary: Upload an object (PutObject) or copy an object (CopyObject)
      description: Stores an object. Supply x-amz-storage-class to set the tier (STANDARD, STANDARD_IA, GLACIER, GLACIER_IR). Provide x-amz-copy-source to perform a server-side CopyObject instead of a body upload. Custom metadata (x-amz-meta-*) and SHA256 checksums are supported.
      parameters:
      - name: x-amz-storage-class
        in: header
        description: Storage tier - STANDARD, STANDARD_IA, GLACIER, or GLACIER_IR.
        schema:
          type: string
          enum:
          - STANDARD
          - STANDARD_IA
          - GLACIER
          - GLACIER_IR
      - name: x-amz-copy-source
        in: header
        description: Source "/bucket/key" for a server-side copy (CopyObject).
        schema:
          type: string
      - name: Content-Type
        in: header
        schema:
          type: string
      requestBody:
        description: Raw object bytes (omit for a CopyObject).
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Object stored (or copied). ETag returned in the header.
    get:
      operationId: getObject
      tags:
      - Objects
      summary: Download an object (GetObject), optionally ranged or conditional
      parameters:
      - name: Range
        in: header
        description: Byte range to retrieve, e.g. "bytes=0-1023".
        schema:
          type: string
      - name: If-Match
        in: header
        schema:
          type: string
      - name: If-None-Match
        in: header
        schema:
          type: string
      - name: If-Modified-Since
        in: header
        schema:
          type: string
      - name: If-Unmodified-Since
        in: header
        schema:
          type: string
      responses:
        '200':
          description: Object body returned.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '206':
          description: Partial object body returned for a ranged request.
        '304':
          description: Not modified (conditional request).
        '404':
          description: Object not found.
    head:
      operationId: headObject
      tags:
      - Objects
      summary: Retrieve object metadata without the body (HeadObject)
      responses:
        '200':
          description: Object metadata returned in headers.
        '404':
          description: Object not found.
    delete:
      operationId: deleteObject
      tags:
      - Objects
      summary: Delete an object (DeleteObject)
      responses:
        '204':
          description: Object deleted.
  /{bucket}/{key}#tagging:
    parameters:
    - $ref: '#/components/parameters/Bucket'
    - $ref: '#/components/parameters/Key'
    put:
      operationId: putObjectTagging
      tags:
      - Objects
      summary: Set the tag set on an object (PutObjectTagging)
      description: Operates on the object's ?tagging subresource.
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Tagging'
      responses:
        '200':
          description: Tag set applied.
    get:
      operationId: getObjectTagging
      tags:
      - Objects
      summary: Retrieve the tag set on an object (GetObjectTagging)
      responses:
        '200':
          description: Tag set returned.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Tagging'
    delete:
      operationId: deleteObjectTagging
      tags:
      - Objects
      summary: Remove the tag set from an object (DeleteObjectTagging)
      responses:
        '204':
          description: Tag set removed.
  /{bucket}#delete:
    parameters:
    - $ref: '#/components/parameters/Bucket'
    post:
      operationId: deleteObjects
      tags:
      - Objects
      summary: Delete multiple objects in one request (DeleteObjects)
      description: Operates on the bucket ?delete subresource. Supports quiet mode.
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Delete'
      responses:
        '200':
          description: Per-key delete results returned as S3 XML.
  /{bucket}/{key}#restore:
    parameters:
    - $ref: '#/components/parameters/Bucket'
    - $ref: '#/components/parameters/Key'
    post:
      operationId: restoreObject
      tags:
      - Objects
      summary: Restore an archived (GLACIER) object (RestoreObject)
      description: Restores an object stored in the Archive tier so it becomes retrievable. Operates on the object ?restore subresource.
      responses:
        '202':
          description: Restore request accepted.
        '200':
          description: Restore already in progress or completed.
components:
  schemas:
    Tagging:
      type: object
      properties:
        TagSet:
          type: array
          items:
            type: object
            properties:
              Key:
                type: string
              Value:
                type: string
    Object:
      type: object
      properties:
        Key:
          type: string
        LastModified:
          type: string
          format: date-time
        ETag:
          type: string
        Size:
          type: integer
          format: int64
        StorageClass:
          type: string
          enum:
          - STANDARD
          - STANDARD_IA
          - GLACIER
          - GLACIER_IR
    ListBucketResult:
      type: object
      properties:
        Name:
          type: string
        Prefix:
          type: string
        KeyCount:
          type: integer
        MaxKeys:
          type: integer
        IsTruncated:
          type: boolean
        NextContinuationToken:
          type: string
        Contents:
          type: array
          items:
            $ref: '#/components/schemas/Object'
        CommonPrefixes:
          type: array
          items:
            type: object
            properties:
              Prefix:
                type: string
    Delete:
      type: object
      properties:
        Quiet:
          type: boolean
        Objects:
          type: array
          items:
            type: object
            properties:
              Key:
                type: string
              VersionId:
                type: string
  parameters:
    Key:
      name: key
      in: path
      required: true
      description: Object key. May contain slashes to emulate a directory hierarchy.
      schema:
        type: string
    Bucket:
      name: bucket
      in: path
      required: true
      description: Bucket name (also usable as a virtual-host subdomain of t3.storage.dev).
      schema:
        type: string
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4 request signing. Clients sign each request with a Tigris access key id (AWS_ACCESS_KEY_ID=tid_...) and secret access key (AWS_SECRET_ACCESS_KEY=tsec_...); the signature is carried in the standard Authorization header (or query string for presigned URLs). Use service name "s3" and region "auto". Any AWS SDK / SigV4 signer produces a compatible signature.