Lakekeeper Project API

Manage Projects

Operations 10

POST /management/v1/endpoint-statistics Get API Statistics #
GET /management/v1/project Get Project #
POST /management/v1/project Create Project #
DELETE /management/v1/project Delete Project #
GET /management/v1/project-list List Projects #
GET /management/v1/project/actions Get allowed actions for a project #
POST /management/v1/project/rename Rename Project #
GET /management/v1/project/{project_id} Get Project #
DELETE /management/v1/project/{project_id} Delete Project by ID #
POST /management/v1/project/{project_id}/rename Rename Project by ID #

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-project-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lakekeeper-project-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lakekeeper Project API
  version: 0.0.0
  description: 'Operations tagged project across 2 of this provider''s published API definitions: lakekeeper-management-api-openapi.yml, lakekeeper-management-plus-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: '{scheme}://{host}{basePath}'
  description: Lakekeeper Management 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: project
  description: Manage Projects
paths:
  /management/v1/endpoint-statistics:
    post:
      tags:
      - project
      summary: Get API Statistics
      description: "Retrieves detailed endpoint call statistics for your project, allowing you to monitor API usage patterns,\ntrack frequency of operations, and analyze response codes.\n\n## Data Collection\n\nThe statistics include:\n- Endpoint paths and HTTP methods\n- Response status codes\n- Call counts per endpoint\n- Warehouse context (when applicable)\n- Timestamps of activity\n\n## Time Aggregation\n\nStatistics are aggregated hourly. Within each hour window:\n- An initial entry is created on the first API call\n- Subsequent calls update the existing hourly entry\n- Each hour boundary creates a new aggregation bucket\n- Hours with no API activity have no entries (gaps in data)\n\n## Response Format\n\nThe response includes timestamp buckets (in UTC) and corresponding endpoint metrics,\nallowing for time-series analysis of API usage patterns.\n\nExample:\n- 00:00:00-00:16:32: no activity\n    - `timestamps: []`\n- 00:16:32: warehouse created:\n    - `{timestamps: [\"01:00:00\"], called_endpoints: [[{\"count\": 1, \"http_route\": \"POST /management/v1/warehouse\", \"status_code\": 201, \"warehouse_id\": null, \"warehouse_name\": null, \"created_at\": \"00:16:32\", \"updated_at\": null}]]}`\n- 00:30:00: table created:\n    - `timestamps: [\"01:00:00\"], called_endpoints: [[{\"count\": 1, \"http_route\": \"POST /management/v1/warehouse\", \"status_code\": 201, \"warehouse_id\": null, \"warehouse_name\": null, \"created_at\": \"00:16:32\", \"updated_at\": null}, {\"count\": 1, \"http_route\": \"POST /catalog/v1/{prefix}/namespaces/{namespace}/tables\", \"status_code\": 201, \"warehouse_id\": \"ff17f1d0-90ad-4e7d-bf02-be718b78c2ee\", \"warehouse_name\": \"staging\", \"created_at\": \"00:30:00\", \"updated_at\": null}]]`\n- 00:45:00: table created:\n    - `timestamps: [\"01:00:00\"], called_endpoints: [[{\"count\": 1, \"http_route\": \"POST /management/v1/warehouse\", \"status_code\": 201, \"warehouse_id\": null, \"warehouse_name\": null, \"created_at\": \"00:16:32\", \"updated_at\": null}, {\"count\": 1, \"http_route\": \"POST /catalog/v1/{prefix}/namespaces/{namespace}/tables\", \"status_code\": 201, \"warehouse_id\": \"ff17f1d0-90ad-4e7d-bf02-be718b78c2ee\", \"warehouse_name\": \"staging\", \"created_at\": \"00:30:00\", \"updated_at\": \"00:45:00\"}]]`\n- 01:00:36: table deleted:\n    - `timestamps: [\"01:00:00\",\"02:00:00\"], called_endpoints: [[{\"count\": 1, \"http_route\": \"POST /management/v1/warehouse\", \"status_code\": 201, \"warehouse_id\": null, \"warehouse_name\": null, \"created_at\": \"00:16:32\", \"updated_at\": null},{\"count\": 1, \"http_route\": \"POST /catalog/v1/{prefix}/namespaces/{namespace}/tables\", \"status_code\": 201, \"warehouse_id\": \"ff17f1d0-90ad-4e7d-bf02-be718b78c2ee\", \"warehouse_name\": \"staging\", \"created_at\": \"00:30:00\", \"updated_at\": \"00:45:00\"}],[{\"count\": 1, \"http_route\": \"DELETE /catalog/v1/{prefix}/namespaces/{namespace}/tables/{table}\", \"status_code\": 200, \"warehouse_id\": \"ff17f1d0-90ad-4e7d-bf02-be718b78c2ee\", \"warehouse_name\": \"staging\", \"created_at\": \"01:00:36\", \"updated_at\": \"null\"}]]`"
      operationId: get_endpoint_statistics
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetEndpointStatisticsRequest'
        required: true
      responses:
        '200':
          description: Endpoint statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointStatisticsResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
  /management/v1/project:
    get:
      tags:
      - project
      summary: Get Project
      description: Retrieves information about the user's default project.
      operationId: get_project
      parameters:
      - name: x-project-id
        in: header
        description: Project ID (optional; falls back to the default project if not provided)
        required: false
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: Project details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProjectResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    post:
      tags:
      - project
      summary: Create Project
      description: Creates a new project with the specified configuration.
      operationId: create_project
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequest'
        required: true
      responses:
        '201':
          description: Project created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProjectResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    delete:
      tags:
      - project
      summary: Delete Project
      operationId: delete_project
      parameters:
      - name: x-project-id
        in: header
        description: Project ID (optional; falls back to the default project if not provided)
        required: false
        schema:
          type:
          - string
          - 'null'
      responses:
        '204':
          description: Project deleted successfully
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
  /management/v1/project-list:
    get:
      tags:
      - project
      summary: List Projects
      description: Lists all projects that the requesting user has access to.
      operationId: list_projects
      responses:
        '200':
          description: List of projects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectsResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
  /management/v1/project/actions:
    get:
      tags:
      - project
      summary: Get allowed actions for a project
      operationId: get_project_actions
      parameters:
      - name: principalUser
        in: query
        description: 'The user to show actions for.

          If neither user nor role is specified, shows actions for the current user.'
        required: false
        schema:
          type: string
      - name: principalRole
        in: query
        description: 'The role to show actions for.

          If neither user nor role is specified, shows actions for the current user.'
        required: false
        schema:
          type: string
          format: uuid
      - name: x-project-id
        in: header
        description: Project ID (optional; falls back to the default project if not provided)
        required: false
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLakekeeperProjectActionsResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
  /management/v1/project/rename:
    post:
      tags:
      - project
      summary: Rename Project
      operationId: rename_project
      parameters:
      - name: x-project-id
        in: header
        description: Project ID (optional; falls back to the default project if not provided)
        required: false
        schema:
          type:
          - string
          - 'null'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameProjectRequest'
        required: true
      responses:
        '200':
          description: Project renamed successfully
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
  /management/v1/project/{project_id}:
    get:
      tags:
      - project
      summary: Get Project
      operationId: get_project_by_id_deprecated
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Project details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProjectResponse'
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
      deprecated: true
    delete:
      tags:
      - project
      summary: Delete Project by ID
      description: Permanently removes a specific project and all its associated resources.
      operationId: delete_project_by_id_deprecated
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Project deleted successfully
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
      deprecated: true
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
  /management/v1/project/{project_id}/rename:
    post:
      tags:
      - project
      summary: Rename Project by ID
      description: Updates the name of a specific project.
      operationId: rename_project_by_id_deprecated
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameProjectRequest'
        required: true
      responses:
        '200':
          description: Project renamed successfully
        4XX:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IcebergErrorResponse'
      deprecated: true
    servers:
    - url: '{scheme}://{host}{basePath}'
      description: Lakekeeper Management 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
components:
  schemas:
    EndpointStatisticsResponse:
      type: object
      required:
      - timestamps
      - called-endpoints
      - previous-page-token
      - next-page-token
      properties:
        called-endpoints:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/EndpointStatistic'
          description: 'Array of arrays of statistics detailing each called endpoint for each `timestamp`.


            See docs of `timestamps` for more details.'
        next-page-token:
          type: string
          description: 'Token to get the next page of results.


            Inverse of `previous-page-token`, see its documentation above.'
        previous-page-token:
          type: string
          description: 'Token to get the previous page of results.


            Endpoint statistics are not paginated through page-limits, we paginate them by stepping

            through time. By default, the list-statistics endpoint will return all statistics for

            `now()` - 1 day to `now()`. In the request, you can specify a `range_specifier` to set the end

            date and step interval. The `previous-page-token` will then move to the neighboring window.

            E.g. in the default case of `now()` and 1 day, it''d be `now()` - 2 days to `now()` - 1 day.'
        timestamps:
          type: array
          items:
            type: string
            format: date-time
          description: 'Array of timestamps indicating the time at which each entry in the `called_endpoints` array

            is valid.


            We lazily create a new statistics entry every hour, in between hours, the existing entry

            is being updated. If any endpoint is called in the following hour, there''ll be an entry in

            `timestamps` for the following hour. If not, then there''ll be no entry.'
    CreateProjectRequest:
      type: object
      required:
      - project-name
      properties:
        project-id:
          type:
          - string
          - 'null'
          description: 'Request a specific project ID - optional.

            If not provided, a new project ID will be generated (recommended).'
        project-name:
          type: string
          description: Name of the project to create.
    EndpointStatistic:
      type: object
      required:
      - count
      - http-route
      - status-code
      - created-at
      properties:
        count:
          type: integer
          format: int64
          description: Number of requests to this endpoint for the current time-slice.
        created-at:
          type: string
          format: date-time
          description: 'Timestamp at which the datapoint was created in the database.


            This is the exact time at which the current endpoint-status-warehouse combination was called

            for the first time in the current time-slice.'
        http-route:
          type: string
          description: 'The route of the endpoint.


            Format: `METHOD /path/to/endpoint`'
        status-code:
          type: integer
          format: int32
          description: The status code of the response.
          minimum: 0
        updated-at:
          type:
          - string
          - 'null'
          format: date-time
          description: 'Timestamp at which the datapoint was last updated.


            This is the exact time at which the current datapoint was last updated.'
        warehouse-id:
          type:
          - string
          - 'null'
          format: uuid
          description: 'The ID of the warehouse that handled the request.


            Only present for requests that could be associated with a warehouse. Some management

            endpoints cannot be associated with a warehouse, e.g. warehouse creation or user management

            will not have a `warehouse-id`.'
        warehouse-name:
          type:
          - string
          - 'null'
          description: 'The name of the warehouse that handled the request.


            Only present for requests that could be associated with a warehouse. Some management

            endpoints cannot be associated with a warehouse, e.g. warehouse creation or user management

            will not have a `warehouse-id`'
    GetEndpointStatisticsRequest:
      type: object
      required:
      - warehouse
      properties:
        range-specifier:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/TimeWindowSelector'
            description: 'Range specifier


              Either for an explicit range or a page token to paginate through the results. See the docs of

              `TimeWindowSelector` for more details.'
        status-codes:
          type:
          - array
          - 'null'
          items:
            type: integer
            format: int32
            minimum: 0
          description: 'Status code filter


            Optional filter to only return statistics for requests with specific status codes.'
        warehouse:
          $ref: '#/components/schemas/WarehouseFilter'
          description: 'Warehouse filter


            Can return statistics for a specific warehouse, all warehouses or requests that could not be

            associated to any warehouse.'
    GetLakekeeperProjectActionsResponse:
      type: object
      required:
      - allowed-actions
      properties:
        allowed-actions:
          type: array
          items:
            $ref: '#/components/schemas/LakekeeperProjectActionKind'
    TimeWindowSelector:
      oneOf:
      - type: object
        required:
        - end
        - interval
        - type
        properties:
          end:
            type: string
            format: date-time
            description: 'End timestamp of the time window

              Specify'
            example: 2023-12-31 23:59:59+00:00
          interval:
            type: string
            description: 'Duration/span of the time window


              The returned statistics will be for the time window from `end` - `interval` to `end`.

              Specify a ISO8601 duration string, e.g. `PT1H` for 1 hour, `P1D` for 1 day.'
            example: P1D
          type:
            type: string
            enum:
            - window
        example:
          type: window
          end: 2023-12-31 23:59:59+00:00
          interval: P1D
      - type: object
        required:
        - token
        - type
        properties:
          token:
            type: string
            description: 'Opaque Token from previous response for paginating through time windows


              Use the `next_page_token` or `previous_page_token` from a previous response'
          type:
            type: string
            enum:
            - page-token
        example:
          type: page-token
          token: xyz
    LakekeeperProjectActionKind:
      oneOf:
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - create_warehouse
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - delete
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - rename
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - get_metadata
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - list_warehouses
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - include_in_list
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - create_role
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - list_roles
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - search_roles
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - get_endpoint_statistics
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - modify_task_queue_config
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - get_task_queue_config
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - get_project_tasks
      - type: object
        required:
        - action
        properties:
          action:
            type: string
            enum:
            - control_project_tasks
    GetProjectResponse:
      type: object
      required:
      - project-id
      - project-name
      properties:
        project-id:
          type: string
          description: ID of the project.
        project-name:
          type: string
          description: Name of the project
    ListProjectsResponse:
      type: object
      required:
      - projects
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/GetProjectResponse'
          description: List of projects
    WarehouseFilter:
      oneOf:
      - type: object
        description: Filter for a specific warehouse
        required:
        - id
        - type
        properties:
          id:
            type: string
            format: uuid
          type:
            type: string
            enum:
            - warehouse-id
      - type: object
        description: Filter for items that are not associated with a warehouse
        required:
        - type
        properties:
          type:
            type: string
            enum:
            - unmapped
      - type: object
        description: Return all items in the current project, regardless of warehouse association
        required:
        - type
        properties:
          type:
            type: string
            enum:
            - all
    IcebergErrorResponse:
      type: object
      description: JSON wrapper for all error responses (non-2xx)
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorModel'
    CreateProjectResponse:
      type: object
      required:
      - project-id
      properties:
        project-id:
          type: string
          description: ID of the created project.
    RenameProjectRequest:
      type: object
      required:
      - new-name
      properties:
        new-name:
          type: string
          description: New name for the project.
    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
x-refined-from:
- lakekeeper-management-api-openapi.yml
- lakekeeper-management-plus-api-openapi.yml