Langfuse BlobStorageIntegrations API

The BlobStorageIntegrations API from Langfuse — 2 operation(s) for blobstorageintegrations.

OpenAPI Specification

langfuse-blobstorageintegrations-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: langfuse AnnotationQueues BlobStorageIntegrations API
  version: ''
  description: '## Authentication


    Authenticate with the API using [Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication), get API keys in the project settings:


    - username: Langfuse Public Key

    - password: Langfuse Secret Key


    ## Exports


    - OpenAPI spec: https://cloud.langfuse.com/generated/api/openapi.yml'
tags:
- name: BlobStorageIntegrations
paths:
  /api/public/integrations/blob-storage:
    get:
      description: Get all blob storage integrations for the organization (requires organization-scoped API key)
      operationId: blobStorageIntegrations_getBlobStorageIntegrations
      tags:
      - BlobStorageIntegrations
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlobStorageIntegrationsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema: {}
        '401':
          description: ''
          content:
            application/json:
              schema: {}
        '403':
          description: ''
          content:
            application/json:
              schema: {}
        '404':
          description: ''
          content:
            application/json:
              schema: {}
        '405':
          description: ''
          content:
            application/json:
              schema: {}
      security:
      - BasicAuth: []
    put:
      description: Create or update a blob storage integration for a specific project (requires organization-scoped API key). The configuration is validated by performing a test upload to the bucket.
      operationId: blobStorageIntegrations_upsertBlobStorageIntegration
      tags:
      - BlobStorageIntegrations
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlobStorageIntegrationResponse'
        '400':
          description: ''
          content:
            application/json:
              schema: {}
        '401':
          description: ''
          content:
            application/json:
              schema: {}
        '403':
          description: ''
          content:
            application/json:
              schema: {}
        '404':
          description: ''
          content:
            application/json:
              schema: {}
        '405':
          description: ''
          content:
            application/json:
              schema: {}
      security:
      - BasicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBlobStorageIntegrationRequest'
  /api/public/integrations/blob-storage/{id}:
    get:
      description: Get the sync status of a blob storage integration by integration ID (requires organization-scoped API key)
      operationId: blobStorageIntegrations_getBlobStorageIntegrationStatus
      tags:
      - BlobStorageIntegrations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlobStorageIntegrationStatusResponse'
        '400':
          description: ''
          content:
            application/json:
              schema: {}
        '401':
          description: ''
          content:
            application/json:
              schema: {}
        '403':
          description: ''
          content:
            application/json:
              schema: {}
        '404':
          description: ''
          content:
            application/json:
              schema: {}
        '405':
          description: ''
          content:
            application/json:
              schema: {}
      security:
      - BasicAuth: []
    delete:
      description: Delete a blob storage integration by ID (requires organization-scoped API key)
      operationId: blobStorageIntegrations_deleteBlobStorageIntegration
      tags:
      - BlobStorageIntegrations
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlobStorageIntegrationDeletionResponse'
        '400':
          description: ''
          content:
            application/json:
              schema: {}
        '401':
          description: ''
          content:
            application/json:
              schema: {}
        '403':
          description: ''
          content:
            application/json:
              schema: {}
        '404':
          description: ''
          content:
            application/json:
              schema: {}
        '405':
          description: ''
          content:
            application/json:
              schema: {}
      security:
      - BasicAuth: []
components:
  schemas:
    BlobStorageIntegrationDeletionResponse:
      title: BlobStorageIntegrationDeletionResponse
      type: object
      properties:
        message:
          type: string
      required:
      - message
    BlobStorageIntegrationsResponse:
      title: BlobStorageIntegrationsResponse
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BlobStorageIntegrationResponse'
      required:
      - data
    BlobStorageExportFrequency:
      title: BlobStorageExportFrequency
      type: string
      enum:
      - hourly
      - daily
      - weekly
    BlobStorageIntegrationType:
      title: BlobStorageIntegrationType
      type: string
      enum:
      - S3
      - S3_COMPATIBLE
      - AZURE_BLOB_STORAGE
    BlobStorageIntegrationResponse:
      title: BlobStorageIntegrationResponse
      type: object
      properties:
        id:
          type: string
        projectId:
          type: string
        type:
          $ref: '#/components/schemas/BlobStorageIntegrationType'
        bucketName:
          type: string
        endpoint:
          type: string
          nullable: true
        region:
          type: string
        accessKeyId:
          type: string
          nullable: true
        prefix:
          type: string
        exportFrequency:
          $ref: '#/components/schemas/BlobStorageExportFrequency'
        enabled:
          type: boolean
        forcePathStyle:
          type: boolean
        fileType:
          $ref: '#/components/schemas/BlobStorageIntegrationFileType'
        exportMode:
          $ref: '#/components/schemas/BlobStorageExportMode'
        exportStartDate:
          type: string
          format: date-time
          nullable: true
        compressed:
          type: boolean
        nextSyncAt:
          type: string
          format: date-time
          nullable: true
        lastSyncAt:
          type: string
          format: date-time
          nullable: true
        lastError:
          type: string
          nullable: true
        lastErrorAt:
          type: string
          format: date-time
          nullable: true
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
      - id
      - projectId
      - type
      - bucketName
      - region
      - prefix
      - exportFrequency
      - enabled
      - forcePathStyle
      - fileType
      - exportMode
      - compressed
      - createdAt
      - updatedAt
    BlobStorageIntegrationStatusResponse:
      title: BlobStorageIntegrationStatusResponse
      type: object
      properties:
        id:
          type: string
        projectId:
          type: string
        syncStatus:
          $ref: '#/components/schemas/BlobStorageSyncStatus'
        enabled:
          type: boolean
        lastSyncAt:
          type: string
          format: date-time
          nullable: true
          description: End of the last successfully exported time window. Compare against your ETL bookmark to determine if new data is available. Null if the integration has never synced.
        nextSyncAt:
          type: string
          format: date-time
          nullable: true
          description: When the next export is scheduled. Null if no sync has occurred yet.
        lastError:
          type: string
          nullable: true
          description: Raw error message from the storage provider (S3/Azure/GCS) if the last export failed. Cleared on successful export.
        lastErrorAt:
          type: string
          format: date-time
          nullable: true
          description: When the last error occurred. Cleared on successful export.
      required:
      - id
      - projectId
      - syncStatus
      - enabled
    BlobStorageExportMode:
      title: BlobStorageExportMode
      type: string
      enum:
      - FULL_HISTORY
      - FROM_TODAY
      - FROM_CUSTOM_DATE
    BlobStorageIntegrationFileType:
      title: BlobStorageIntegrationFileType
      type: string
      enum:
      - JSON
      - CSV
      - JSONL
    CreateBlobStorageIntegrationRequest:
      title: CreateBlobStorageIntegrationRequest
      type: object
      properties:
        projectId:
          type: string
          description: ID of the project in which to configure the blob storage integration
        type:
          $ref: '#/components/schemas/BlobStorageIntegrationType'
        bucketName:
          type: string
          description: Name of the storage bucket. For AZURE_BLOB_STORAGE, must be a valid Azure container name (3-63 chars, lowercase letters, numbers, and hyphens only, must start and end with a letter or number, no consecutive hyphens).
        endpoint:
          type: string
          nullable: true
          description: Custom endpoint URL (required for S3_COMPATIBLE type)
        region:
          type: string
          description: Storage region
        accessKeyId:
          type: string
          nullable: true
          description: Access key ID for authentication
        secretAccessKey:
          type: string
          nullable: true
          description: Secret access key for authentication (will be encrypted when stored)
        prefix:
          type: string
          nullable: true
          description: Path prefix for exported files (must end with forward slash if provided)
        exportFrequency:
          $ref: '#/components/schemas/BlobStorageExportFrequency'
        enabled:
          type: boolean
          description: Whether the integration is active
        forcePathStyle:
          type: boolean
          description: Use path-style URLs for S3 requests
        fileType:
          $ref: '#/components/schemas/BlobStorageIntegrationFileType'
        exportMode:
          $ref: '#/components/schemas/BlobStorageExportMode'
        exportStartDate:
          type: string
          format: date-time
          nullable: true
          description: Custom start date for exports (required when exportMode is FROM_CUSTOM_DATE)
        compressed:
          type: boolean
          nullable: true
          description: Enable gzip compression for exported files (.csv.gz, .json.gz, .jsonl.gz). Defaults to true.
      required:
      - projectId
      - type
      - bucketName
      - region
      - exportFrequency
      - enabled
      - forcePathStyle
      - fileType
      - exportMode
    BlobStorageSyncStatus:
      title: BlobStorageSyncStatus
      type: string
      enum:
      - idle
      - queued
      - up_to_date
      - disabled
      - error
      description: 'Sync status of the blob storage integration:

        - `disabled` — integration is not enabled

        - `error` — last export failed (see `lastError` for details)

        - `idle` — enabled but has never exported yet

        - `queued` — next export is overdue (`nextSyncAt` is in the past) and waiting to be picked up by the worker

        - `up_to_date` — all available data has been exported; next export is scheduled for the future


        **ETL usage**: poll this endpoint and check for `up_to_date` status. Compare `lastSyncAt` against your

        ETL bookmark to determine if new data is available. Note that exports run with a 30-minute lag buffer,

        so `lastSyncAt` will always be at least 30 minutes behind real-time.'
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic