Filebase Objects API

Object upload, download, copy, delete, and metadata

OpenAPI Specification

filebase-objects-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Filebase IPFS Pinning Service Buckets Objects 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: Objects
  description: Object upload, download, copy, delete, and metadata
paths:
  /{bucket}:
    parameters:
    - $ref: '#/components/parameters/bucket'
    get:
      operationId: listObjects
      summary: List objects in a bucket
      description: Returns some or all (up to 1,000) of the objects in a bucket. Use list-type=2 for ListObjectsV2.
      tags:
      - Objects
      parameters:
      - name: prefix
        in: query
        description: Limits the response to keys that begin with the specified prefix
        schema:
          type: string
      - name: delimiter
        in: query
        description: A delimiter is a character you use to group keys
        schema:
          type: string
      - name: marker
        in: query
        description: Specifies the key to start with when listing objects
        schema:
          type: string
      - name: max-keys
        in: query
        description: Sets the maximum number of keys returned (default 1000)
        schema:
          type: integer
          maximum: 1000
          default: 1000
      - name: list-type
        in: query
        description: Version 2 of list objects request (set to 2)
        schema:
          type: integer
          enum:
          - 2
      - name: continuation-token
        in: query
        description: Indicates Amazon S3 that the list is being continued with a token (V2)
        schema:
          type: string
      responses:
        '200':
          description: Successfully listed objects
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ListBucketResult'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /{bucket}/{key}:
    parameters:
    - $ref: '#/components/parameters/bucket'
    - $ref: '#/components/parameters/key'
    copy:
      operationId: copyObject
      summary: Copy an object
      description: Creates a copy of an object that is already stored in Filebase.
      tags:
      - Objects
      parameters:
      - name: x-amz-copy-source
        in: header
        required: true
        description: Specifies the source bucket and key name (bucket/key)
        schema:
          type: string
      responses:
        '200':
          description: Object copied successfully
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/CopyObjectResult'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: putObject
      summary: Upload an object
      description: Adds an object to a bucket. Objects are automatically pinned to IPFS for IPFS-backed buckets and receive 3x geo-redundant replication. The CID is returned in the x-amz-meta-cid response header.
      tags:
      - Objects
      parameters:
      - name: x-amz-meta-cid
        in: header
        description: IPFS CID of the uploaded object (response header)
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Object uploaded successfully
          headers:
            ETag:
              description: Entity tag (MD5 hash) of the uploaded object
              schema:
                type: string
            x-amz-meta-cid:
              description: IPFS CID of the uploaded object
              schema:
                type: string
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    get:
      operationId: getObject
      summary: Download an object
      description: Retrieves an object from Filebase. Returns the object data.
      tags:
      - Objects
      parameters:
      - name: Range
        in: header
        description: Downloads the specified range bytes of an object
        schema:
          type: string
      responses:
        '200':
          description: Object content
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
            x-amz-meta-cid:
              description: IPFS CID of the object
              schema:
                type: string
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    head:
      operationId: headObject
      summary: Get object metadata
      description: Retrieves metadata from an object without returning the object itself.
      tags:
      - Objects
      responses:
        '200':
          description: Object metadata
          headers:
            Content-Type:
              schema:
                type: string
            Content-Length:
              schema:
                type: integer
            ETag:
              schema:
                type: string
            x-amz-meta-cid:
              description: IPFS CID of the object
              schema:
                type: string
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteObject
      summary: Delete an object
      description: Removes an object from a bucket.
      tags:
      - Objects
      responses:
        '204':
          description: Object deleted successfully
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    bucket:
      name: bucket
      in: path
      required: true
      description: Name of the bucket
      schema:
        type: string
    key:
      name: key
      in: path
      required: true
      description: Object key (file path within the bucket)
      schema:
        type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Access denied
      content:
        application/xml:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    CopyObjectResult:
      type: object
      xml:
        name: CopyObjectResult
      properties:
        LastModified:
          type: string
          format: date-time
        ETag:
          type: string
    ListBucketResult:
      type: object
      xml:
        name: ListBucketResult
      properties:
        Name:
          type: string
          description: Bucket name
        Prefix:
          type: string
          description: Limits the response to keys beginning with the specified prefix
        MaxKeys:
          type: integer
          description: Maximum number of keys returned
        IsTruncated:
          type: boolean
          description: Whether the results are truncated
        Contents:
          type: array
          items:
            type: object
            properties:
              Key:
                type: string
              LastModified:
                type: string
                format: date-time
              ETag:
                type: string
              Size:
                type: integer
                format: int64
              StorageClass:
                type: string
    Error:
      type: object
      xml:
        name: Error
      properties:
        Code:
          type: string
        Message:
          type: string
        Resource:
          type: string
        RequestId:
          type: string
  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