Skip to content

DeltaApiService — REST API for Delta Tables

DeltaApiService is a Unity Catalog API service to handle the API endpoints under /api/2.1/unity-catalog/ path.

Method URL Handler Params
GET /delta/v1/config getConfig
  • catalog
  • protocolVersions
GET /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} loadTable
  • catalog
  • schema
  • table
POST /delta/v1/catalogs/{catalog}/schemas/{schema}/staging-tables createStagingTable
  • catalog
  • schema
POST /delta/v1/catalogs/{catalog}/schemas/{schema}/tables createTable
  • catalog
  • schema
POST /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} updateTable
  • catalog
  • schema
  • table
GET /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials getTableCredentials
  • catalog
  • schema
  • table
  • operation
GET /delta/v1/staging-tables/{table_id}/credentials getStagingTableCredentials
  • table_id

DeltaApiService is an AuthorizedService.

Creating Instance

DeltaApiService takes the following to be created:

While being created, DeltaApiService uses this Repositories for the following repositories:

DeltaApiService is created when:

API Endpoints

DeltaApiService supports the following API endpoints:

API Endpoint HTTP Method
/v1/catalogs/{catalog}/schemas/{schema}/staging-tables POST
/v1/catalogs/{catalog}/schemas/{schema}/tables POST
/v1/catalogs/{catalog}/schemas/{schema}/tables GET
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} GET
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} POST
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} DELETE
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table} HEAD
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/rename POST
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials GET
/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/metrics POST
/v1/staging-tables/{table_id}/credentials GET
/v1/temporary-path-credentials GET

Vend Temporary Storage Credentials for Table Operation

DeltaCredentialsResponse getTableCredentials(
  String catalog,
  String schema,
  String table,
  DeltaCredentialOperation operation)

getTableCredentials requests the TableRepository for the storage location of the table (given the three parts, catalog, schema, and table).

getTableCredentials requests the StorageCredentialVendor for the temporary credentials to execute the given operation on the storage location.


getTableCredentials is used when:

  • DeltaApiService is requested to handle GET requests on /delta/v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials URL

toPrivileges

Set<CredentialContext.Privilege> toPrivileges(
  DeltaCredentialOperation operation)

toPrivileges...FIXME

Demo

$ http http://localhost:8080/api/2.1/unity-catalog/catalogs \
    | jq '.catalogs[].name'
"unity"
$ http http://localhost:8080/api/2.1/unity-catalog/delta/v1/config \
    catalog==unity \
    protocol-versions==1.0
HTTP/1.1 200 OK
content-length: 755
content-type: application/json; charset=utf-8
date: Mon, 22 Jun 2026 18:33:56 GMT
server: Armeria/1.28.4

{
    "endpoints": [
        "POST /v1/catalogs/{catalog}/schemas/{schema}/staging-tables",
        "POST /v1/catalogs/{catalog}/schemas/{schema}/tables",
        "GET /v1/catalogs/{catalog}/schemas/{schema}/tables",
        "GET /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
        "POST /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
        "DELETE /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
        "HEAD /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}",
        "POST /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/rename",
        "GET /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/credentials",
        "POST /v1/catalogs/{catalog}/schemas/{schema}/tables/{table}/metrics",
        "GET /v1/staging-tables/{table_id}/credentials",
        "GET /v1/temporary-path-credentials"
    ],
    "protocol-version": "1.0"
}