Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

Databricks integration

In short

Run SQL on a warehouse and start and follow jobs. Connect it on the Integrations page; your app then calls Databricks through Sapilon without ever holding a Databricks credential.

Lets your app run SQL statements on a Databricks SQL warehouse, list warehouses, and list, start and follow jobs in an AWS workspace.

Connecting

On the Integrations page choose Connect on Databricks and fill in:

  • Workspace — The part before .cloud.databricks.com in your workspace address (dbc-…).
  • Access token — Databricks → your user → Settings → Developer → Access tokens → Generate new token.

Sapilon checks the key with the provider before it saves it, and stores it encrypted; it is never shown again.

  • Only workspaces on AWS (….cloud.databricks.com) are supported for now.

What your app can do

Only these requests are available; anything else is refused.

  • GET /2.0/sql/warehouses
  • POST /2.0/sql/statements
  • GET /2.0/sql/statements/*
  • GET /2.1/jobs/list
  • POST /2.1/jobs/run-now
  • GET /2.1/jobs/runs/get

How the agent uses it

Use integrations.request('databricks', …); paths are relative to https://<workspace>.cloud.databricks.com/api.

  • GET /2.0/sql/warehouses — ids and whether they are running.
  • POST /2.0/sql/statements — Example: { method: 'POST', path: '/2.0/sql/statements', body: { warehouse_id: 'abc123', statement: 'SELECT * FROM sales.orders WHERE day = :day LIMIT 100', parameters: [{ name: 'day', value: '2026-10-15' }], wait_timeout: '30s' } }. If status.state is PENDING or RUNNING, poll GET /2.0/sql/statements/{statementId}. Rows are result.data_array.
  • GET /2.1/jobs/list, POST /2.1/jobs/run-now (body: { job_id, job_parameters: {…} }), GET /2.1/jobs/runs/get (query: { run_id }).

Use named parameters, never string concatenation.

More from Databricks: https://docs.databricks.com/api/workspace/introduction

Last updated .

Was this page helpful?