Table Format Commits API

Transaction commits and metadata updates

OpenAPI Specification

table-format-commits-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Apache Iceberg REST Catalog Commits API
  description: The Apache Iceberg REST Catalog API is an open standard (OpenAPI spec) for interacting with Apache Iceberg table catalogs. It provides a common HTTP interface for catalog operations including namespace management, table lifecycle, view management, and metadata operations. Multiple catalog implementations support this specification including Apache Polaris, Project Nessie, AWS Glue, and Google BigLake.
  version: 0.0.1
  contact:
    name: Apache Iceberg Community
    url: https://iceberg.apache.org/community/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://{catalog-host}
  description: Iceberg REST Catalog endpoint
  variables:
    catalog-host:
      default: localhost:8181
      description: Hostname and port of the Iceberg REST catalog service
security:
- BearerAuth: []
- OAuth2:
  - catalog
tags:
- name: Commits
  description: Transaction commits and metadata updates
paths:
  /v1/transactions/commit:
    post:
      operationId: commitTransaction
      summary: Commit Multi-Table Transaction
      description: Atomically commit updates to multiple tables in a single transaction.
      tags:
      - Commits
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommitTransactionRequest'
      responses:
        '204':
          description: Transaction committed
        '409':
          $ref: '#/components/responses/Conflict'
components:
  schemas:
    IcebergErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            type:
              type: string
            code:
              type: integer
    CommitTransactionRequest:
      type: object
      required:
      - table-changes
      properties:
        table-changes:
          type: array
          items:
            $ref: '#/components/schemas/CommitTableRequest'
    TableIdentifier:
      type: object
      properties:
        namespace:
          type: array
          items:
            type: string
        name:
          type: string
    CommitTableRequest:
      type: object
      required:
      - requirements
      - updates
      properties:
        identifier:
          $ref: '#/components/schemas/TableIdentifier'
        requirements:
          type: array
          items:
            type: object
        updates:
          type: array
          items:
            type: object
  responses:
    Conflict:
      description: Commit conflict or resource already exists
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IcebergErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /v1/oauth/tokens
          scopes:
            catalog: Access catalog operations
externalDocs:
  description: Apache Iceberg REST Catalog Specification
  url: https://iceberg.apache.org/rest-catalog-spec/