Filebase Buckets API

Per-bucket storage consumption

OpenAPI Specification

filebase-buckets-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Filebase IPFS Pinning Service Buckets API
  description: The Filebase IPFS Pinning Service API implements the vendor-neutral IPFS Pinning Service specification. Per-bucket Bearer tokens authenticate requests to list, add, retrieve, replace, and delete pinned objects by CID. Supports metadata tagging and filtering by CID, name, status, and timestamps. Compatible with IPFS Desktop, the IPFS CLI, and any third-party tool supporting the pinning service standard. Rate limit is 100 requests per second.
  version: '1.0'
  contact:
    name: Filebase Support
    url: https://filebase.com/
    email: support@filebase.com
  termsOfService: https://filebase.com/terms/
  license:
    name: Proprietary
    url: https://filebase.com/terms/
servers:
- url: https://api.filebase.io/v1/ipfs
  description: Filebase IPFS Pinning Service API
security:
- BearerAuth: []
tags:
- name: Buckets
  description: Per-bucket storage consumption
paths:
  /v1/buckets:
    get:
      operationId: listBuckets
      summary: List buckets with storage consumption
      description: Returns a list of all buckets with per-bucket storage consumption metrics.
      tags:
      - Buckets
      responses:
        '200':
          description: List of buckets with storage usage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v1/buckets/{bucketName}/usage:
    get:
      operationId: getBucketUsage
      summary: Get per-bucket storage consumption
      description: Returns storage consumption metrics for the specified bucket.
      tags:
      - Buckets
      parameters:
      - name: bucketName
        in: path
        required: true
        description: The name of the bucket
        schema:
          type: string
      responses:
        '200':
          description: Bucket storage usage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketUsageResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /:
    get:
      operationId: listBuckets
      summary: List all buckets
      description: Returns a list of all buckets owned by the authenticated user. Equivalent to AWS S3 ListBuckets.
      tags:
      - Buckets
      responses:
        '200':
          description: Successfully listed buckets
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ListAllMyBucketsResult'
        '403':
          $ref: '#/components/responses/Forbidden'
  /{bucket}:
    parameters:
    - $ref: '#/components/parameters/bucket'
    put:
      operationId: createBucket
      summary: Create a bucket
      description: Creates a new S3-compatible bucket. Bucket names must be unique across all Filebase accounts. IPFS-backed buckets automatically pin all objects with 3x geo-redundant replication.
      tags:
      - Buckets
      responses:
        '200':
          description: Bucket created successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
    delete:
      operationId: deleteBucket
      summary: Delete a bucket
      description: Deletes an empty bucket. The bucket must be empty before it can be deleted.
      tags:
      - Buckets
      responses:
        '204':
          description: Bucket deleted successfully
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound_2'
        '409':
          $ref: '#/components/responses/Conflict'
    head:
      operationId: headBucket
      summary: Check bucket existence and access
      description: Returns metadata about the bucket without returning the bucket's contents.
      tags:
      - Buckets
      responses:
        '200':
          description: Bucket exists and is accessible
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound_2'
components:
  parameters:
    bucket:
      name: bucket
      in: path
      required: true
      description: Name of the bucket
      schema:
        type: string
  schemas:
    ListAllMyBucketsResult:
      type: object
      xml:
        name: ListAllMyBucketsResult
      properties:
        Owner:
          type: object
          properties:
            ID:
              type: string
            DisplayName:
              type: string
        Buckets:
          type: array
          items:
            type: object
            properties:
              Name:
                type: string
              CreationDate:
                type: string
                format: date-time
    BucketListResponse:
      type: object
      properties:
        buckets:
          type: array
          items:
            $ref: '#/components/schemas/BucketUsageResponse'
    BucketUsageResponse:
      type: object
      properties:
        name:
          type: string
          description: Bucket name
        storage_bytes:
          type: integer
          format: int64
          description: Storage used by this bucket in bytes
        object_count:
          type: integer
          format: int64
          description: Number of objects in this bucket
        region:
          type: string
          description: Bucket region (always us-east-1 for Filebase)
        created_at:
          type: string
          format: date-time
          description: Bucket creation timestamp
    Error_2:
      type: object
      xml:
        name: Error
      properties:
        Code:
          type: string
        Message:
          type: string
        Resource:
          type: string
        RequestId:
          type: string
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
  responses:
    BadRequest:
      description: Bad request
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/Error_2'
    TooManyRequests:
      description: Rate limit exceeded (500 req/s per account)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: Conflict (bucket already exists or not empty)
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/Error_2'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Access denied
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/Error_2'
    NotFound_2:
      description: Resource not found
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/Error_2'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Per-bucket Bearer token for authentication
externalDocs:
  description: Filebase IPFS Pinning Service API Documentation
  url: https://filebase.com/docs/ipfs/pinning-service-api