Lakekeeper Generic Table (Data) API

Lakekeeper's data-plane API served under /lakekeeper/v1, cataloging non-Iceberg table formats — Lance, Delta, CSV, Parquet — alongside Iceberg tables in the same Warehouse and Namespace, with the same credential vending and access control. Six operations across four paths covering list, create, load and drop of generic tables, plus a referenced-by lookup. Consumed by the official pylakekeeper Python client and the Lakekeeper Java/Spark clients.

Operations 6

POST /lakekeeper/v1/{prefix}/generic-tables/rename Rename a generic table #
GET /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables List generic tables in a namespace #
POST /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables Create a generic table #
GET /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables/{table} Load a generic table #
DELETE /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables/{table} Drop a generic table #
GET /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables/{table}/credentials Load credentials for a generic table #

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/lakekeeper-generic-table-data-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

lakekeeper-generic-table-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lakekeeper Generic Table API
  description: Lakekeeper data-plane API for non-Iceberg formats (Lance, Delta, ...).
  license:
    name: Apache-2.0
    identifier: Apache-2.0
  version: 0.0.0
servers:
- url: '{scheme}://{host}{basePath}'
  description: Lakekeeper Generic Table API
  variables:
    basePath:
      default: ''
      description: Optional path prefix (starting with '/') to be prepended to all routes
    host:
      default: localhost
      description: The host (and optional port) for the specified server
    scheme:
      default: https
      description: The scheme of the URI, either http or https
security:
- bearerAuth: []
tags:
- name: generic-table
  description: Manage generic (non-Iceberg) tables
paths:
  /lakekeeper/v1/{prefix}/generic-tables/rename:
    post:
      tags:
      - generic-table
      summary: Rename a generic table
      operationId: rename_generic_table
      parameters:
      - name: prefix
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameGenericTableRequest'
        required: true
      responses:
        '204':
          description: Generic table renamed successfully
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
  /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables:
    get:
      tags:
      - generic-table
      summary: List generic tables in a namespace
      operationId: list_generic_tables
      parameters:
      - name: prefix
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: pageToken
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: pageSize
        in: query
        required: false
        schema:
          type:
          - integer
          - 'null'
          format: int64
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListGenericTablesResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    post:
      tags:
      - generic-table
      summary: Create a generic table
      operationId: create_generic_table
      parameters:
      - name: prefix
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGenericTableRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoadGenericTableResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
  /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables/{table}:
    get:
      tags:
      - generic-table
      summary: Load a generic table
      operationId: load_generic_table
      parameters:
      - name: prefix
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoadGenericTableResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    delete:
      tags:
      - generic-table
      summary: Drop a generic table
      operationId: drop_generic_table
      parameters:
      - name: prefix
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Generic table dropped successfully
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
  /lakekeeper/v1/{prefix}/namespaces/{namespace}/generic-tables/{table}/credentials:
    get:
      tags:
      - generic-table
      summary: Load credentials for a generic table
      operationId: load_generic_table_credentials
      parameters:
      - name: prefix
        in: path
        required: true
        schema:
          type: string
      - name: namespace
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      - name: referenced-by
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoadGenericTableCredentialsResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
components:
  schemas:
    ListGenericTablesResponse:
      type: object
      required:
      - identifiers
      properties:
        identifiers:
          type: array
          items:
            $ref: '#/components/schemas/GenericTableIdentifier'
        next-page-token:
          type:
          - string
          - 'null'
    LoadGenericTableCredentialsResponse:
      type: object
      required:
      - storage-credentials
      properties:
        storage-credentials:
          type: array
          items:
            $ref: '#/components/schemas/StorageCredential'
    StorageCredential:
      type: object
      required:
      - prefix
      - config
      properties:
        config:
          type: object
          additionalProperties:
            type: string
          propertyNames:
            type: string
        prefix:
          type: string
    GenericTableData:
      type: object
      required:
      - name
      - format
      - base-location
      - protected
      properties:
        base-location:
          type: string
        doc:
          type:
          - string
          - 'null'
        format:
          type: string
        name:
          type: string
        properties:
          type: object
          additionalProperties:
            type: string
          propertyNames:
            type: string
        protected:
          type: boolean
          description: Whether the generic table is protected from being deleted.
        schema: {}
        statistics: {}
    GenericTableIdentifier:
      type: object
      required:
      - namespace
      - name
      properties:
        format:
          type:
          - string
          - 'null'
        id:
          type:
          - string
          - 'null'
          format: uuid
        name:
          type: string
        namespace:
          type: array
          items:
            type: string
    RenameGenericTableRequest:
      type: object
      required:
      - source
      - destination
      properties:
        destination:
          $ref: '#/components/schemas/RenameGenericTableTarget'
        source:
          $ref: '#/components/schemas/RenameGenericTableTarget'
    RenameGenericTableTarget:
      type: object
      required:
      - namespace
      - name
      properties:
        name:
          type: string
        namespace:
          type: array
          items:
            type: string
    CreateGenericTableRequest:
      type: object
      required:
      - name
      - format
      properties:
        base-location:
          type:
          - string
          - 'null'
        doc:
          type:
          - string
          - 'null'
        format:
          type: string
        name:
          type: string
        properties:
          type: object
          additionalProperties:
            type: string
          propertyNames:
            type: string
        schema: {}
        statistics: {}
    IcebergErrorResponse:
      type: object
      description: JSON wrapper for all error responses (non-2xx)
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorModel'
    LoadGenericTableResponse:
      type: object
      required:
      - table
      properties:
        config:
          type:
          - object
          - 'null'
          additionalProperties:
            type: string
          propertyNames:
            type: string
        storage-credentials:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/StorageCredential'
        table:
          $ref: '#/components/schemas/GenericTableData'
    ErrorModel:
      type: object
      description: JSON error payload returned in a response with further details on the error
      required:
      - message
      - type
      - code
      properties:
        code:
          type: integer
          format: int32
          description: HTTP response code
          minimum: 0
        message:
          type: string
          description: Human-readable error message
        stack:
          type: array
          items:
            type: string
        type:
          type: string
          description: Internal type definition of the error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT