---
title: "Create a Databricks integration account"
method: POST
path: "/api/v2/integration-interfaces/databricks/accounts"
tags: ["Databricks Integration"]
---

# Create a Databricks integration account

`POST /api/v2/integration-interfaces/databricks/accounts`

## Request

- Base URL: `https://api.datadoghq.com`
- URL: `https://api.datadoghq.com/api/v2/integration-interfaces/databricks/accounts`
- Auth: one of:
  - API key in header `DD-API-KEY` and API key in header `DD-APPLICATION-KEY`
  - OAuth 2
    - Authorization code: `/oauth2/v1/authorize`
    - Token URL: `/oauth2/v1/token`
- TypeScript: <https://skmtc.dev/datadog/apis/datadog-api-v2-collection/docs/api/v2/integration-interfaces/databricks/accounts/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a Databricks integration account.

## Request body

- DatabricksIntegrationAccountCreateRequest: Request payload to create a Databricks integration account.
  - `data` DatabricksIntegrationAccountCreateData, required: Data envelope for creating a Databricks integration account.
    - `attributes` DatabricksIntegrationAccountCreateAttributes, required: Writable attributes used to create a Databricks integration account.
      - `authentication` union, required: Authentication for creating the Databricks integration account. Exactly one method is set. Choosing `private_action_runner` leaves the `databricks-model-serving-metrics` dataflow unable to collect data. `bearer_token` is not available on creation: Databricks accepts it only on accounts that already use it, so it can only appear on read and update.
        - DatabricksIntegrationAccountOAuthAuthRequest: Databricks OAuth machine-to-machine authentication using a service principal.
          - `auth_type` 'databricks_oauth', required: The authentication method type.
          - `azure_tenant_id` string: Microsoft Entra ID tenant of the service principal, for Azure Databricks workspaces.
          - `client_id` string, required: Client ID of the Databricks service principal.
          - `client_secret` string, required: Secret of the Databricks service principal. Generate it under User management > Service principals > Credentials & secrets in Databricks.
        - DatabricksIntegrationAccountPrivateActionRunnerAuthRequest: Private Action Runner authentication. The runner holds the Databricks credentials, so this method carries no secrets.
          - `auth_type` 'private_action_runner', required: The authentication method type.
          - `connection_id` string, uuid, required: Unique identifier of the Private Action Runner connection holding the credentials.
          - `secret_path` string: Path of the credential inside the secret backend configured on the runner.
          - `user_uuid` string, uuid, required: Unique identifier of the user the Private Action Runner connection belongs to.
      - `dataflows` DatabricksIntegrationDataflowsRequest: Data Datadog collects from Databricks, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Some dataflows have prerequisites, noted on each; unless one is documented as rejecting the request, it is not verified, so a dataflow enabled without it is stored but collects no data.
        - `databricks-cloud-cost-metrics` DatabricksCloudCostMetricsIntegrationDataflowRequest: Cost data collected from your Databricks system tables. [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) must be enabled for your organization while this dataflow is on; any request that leaves it enabled without that is rejected with a `422` response.
          - `enabled` boolean: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection.
          - `settings` DatabricksCloudCostMetricsIntegrationDataflowSettingsRequest: Settings of the Cloud Cost Management dataflow. Only the fields provided are changed.
            - `ccm_collect_all_workspaces` boolean: Whether cost data is collected for every workspace in the Databricks account rather than this workspace only. This takes effect across the Databricks account: if any one workspace enables it, Datadog collects cost data for all of them regardless of their individual settings, and every covered workspace incurs Cloud Cost Management charges. Defaults to `true`.
        - `databricks-data-observability-jobs-monitoring` DatabricksDataObservabilityJobsMonitoringIntegrationDataflowRequest: Data Jobs Monitoring, which collects performance, reliability, and cost data for your Databricks jobs.
          - `enabled` boolean: Whether Datadog collects this data. Defaults to `true`; set to `false` to stop collection.
          - `settings` DatabricksDataObservabilityJobsMonitoringIntegrationDataflowSettingsRequest: Settings of the Data Jobs Monitoring dataflow. Only the fields provided are changed.
            - `dd_api_key_id` string: ID of the Datadog API key the global init script uses to submit data. Setting or changing it requires `dd_api_key_secret` in the same request.
            - `dd_api_key_secret` string: Secret value of the Datadog API key identified by `dd_api_key_id`.
            - `djm_global_init_script_enabled` boolean: Whether Datadog installs and manages the Agent on your Databricks clusters through a global init script. Installation can take up to 15 minutes and requires Databricks Workspace Admin permissions. The script does not apply to clusters in Standard access mode. Leave this `false` to install the Agent yourself. Defaults to `false`.
            - `script_gpum_enabled` boolean: Whether GPU metrics are collected from your Databricks clusters. The Agent installed by the global init script performs the collection, so this requires the dataflow to be enabled with `djm_global_init_script_enabled` set to `true`. Defaults to `false`.
            - `script_logs_enabled` boolean: Whether driver and worker logs are collected from your Databricks clusters. The Agent installed by the global init script performs the collection, so this requires the dataflow to be enabled with `djm_global_init_script_enabled` set to `true`. Defaults to `false`.
            - `serverless_jobs_enabled` boolean: Whether health and cost data is collected for jobs running on Serverless or SQL Warehouse compute. This compute has no clusters for the global init script to target, so collection reads the Databricks system tables and requires `system_tables_sql_warehouse_id`. Defaults to `true`.
        - `databricks-data-observability-quality-monitoring` DatabricksDataObservabilityQualityMonitoringIntegrationDataflowRequest: Data Observability, which collects lineage and data quality information from your Databricks catalogs so you can explore how data flows and detect, resolve, and prevent quality issues.
          - `enabled` boolean: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection.
          - `settings` DatabricksDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest: Settings of the Data Observability dataflow. Only the fields provided are changed.
            - `do_crawlers_cron` string: Cron expression setting how often Datadog connects to your Databricks warehouse to collect metadata. Currently, only hourly (`0 * * * *`) and daily (`0 0 * * *`) are supported. Defaults to hourly (`0 * * * *`).
            - `sync_system_catalog` boolean: Whether metadata from the Databricks `system` catalog is included in Data Observability alongside your data catalogs. Defaults to `false`.
        - `databricks-model-serving-metrics` DatabricksModelServingMetricsIntegrationDataflowRequest: Health and usage metrics for your Databricks model serving endpoints. Not supported on accounts that authenticate with `private_action_runner`; on those accounts this dataflow collects no data.
          - `enabled` boolean: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection.
      - `name` string, required: Human-readable name of the Databricks integration account.
      - `settings` DatabricksIntegrationAccountSettingsRequest, required: Settings for creating the Databricks integration account.
        - `system_tables_sql_warehouse_id` string: ID of the SQL warehouse used to query the Databricks system tables. Find it at the end of the HTTP Path under Warehouses > Connection Details in the Databricks console. Required when the cloud cost metrics or the Data Observability dataflow is enabled, or when `serverless_jobs_enabled` is on; since serverless jobs are on unless explicitly disabled, omitting this field otherwise causes the request to be rejected with a `422` response.
        - `workspace_url` string, required: URL of the Databricks workspace.
    - `type` 'integration-account', required: The type of the integration account resource. Always `integration-account`.

## Response `201`

Created

- DatabricksIntegrationAccountResponse: Response payload for a single Databricks integration account.
  - `data` DatabricksIntegrationAccountResponseData, required: Data envelope of a Databricks integration account, including server-assigned identity.
    - `attributes` DatabricksIntegrationAccountResponseAttributes, required: Attributes of a Databricks integration account returned in responses.
      - `authentication` union: Authentication configured on the Databricks integration account. A `bearer_token` method indicates an account still on token authentication, which Databricks accepts only on accounts that already use it.
        - DatabricksIntegrationAccountOAuthAuthResponse: The Databricks OAuth authentication method and service principal configured on the account.
          - `auth_type` 'databricks_oauth', required: The authentication method type.
          - `azure_tenant_id` string: Microsoft Entra ID tenant of the service principal, for Azure Databricks workspaces.
          - `client_id` string, required: Client ID of the Databricks service principal.
        - DatabricksIntegrationAccountPrivateActionRunnerAuthResponse: The Private Action Runner authentication method configured on the account.
          - `auth_type` 'private_action_runner', required: The authentication method type.
          - `connection_id` string, uuid, required: Unique identifier of the Private Action Runner connection holding the credentials.
          - `secret_path` string: Path of the credential inside the secret backend configured on the runner.
          - `user_uuid` string, uuid, required: Unique identifier of the user the Private Action Runner connection belongs to.
        - DatabricksIntegrationAccountBearerTokenAuthResponse: The bearer token authentication method configured on the account.
          - `auth_type` 'bearer_token', required: The authentication method type.
      - `dataflows` DatabricksIntegrationDataflowsResponse: Data Datadog collects from Databricks, keyed by dataflow id.
        - `databricks-cloud-cost-metrics` DatabricksCloudCostMetricsIntegrationDataflowResponse: Cost data collected from your Databricks system tables. Requires [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) to be set up for your organization.
          - `enabled` boolean: Whether Datadog collects this data.
          - `settings` DatabricksCloudCostMetricsIntegrationDataflowSettingsResponse: Settings of the Cloud Cost Management dataflow.
            - `ccm_collect_all_workspaces` boolean: Whether cost data is collected for every workspace in the Databricks account rather than this workspace only. This takes effect across the Databricks account: if any one workspace enables it, Datadog collects cost data for all of them regardless of their individual settings, and every covered workspace incurs Cloud Cost Management charges.
        - `databricks-data-observability-jobs-monitoring` DatabricksDataObservabilityJobsMonitoringIntegrationDataflowResponse: Data Jobs Monitoring, which collects performance, reliability, and cost data for your Databricks jobs.
          - `enabled` boolean: Whether Datadog collects this data.
          - `settings` DatabricksDataObservabilityJobsMonitoringIntegrationDataflowSettingsResponse: Settings of the Data Jobs Monitoring dataflow.
            - `dd_api_key_id` string: ID of the Datadog API key the global init script uses to submit data.
            - `djm_global_init_script_enabled` boolean: Whether Datadog installs and manages the Agent on your Databricks clusters through a global init script. The script does not apply to clusters in Standard access mode. When `false`, the Agent is installed manually.
            - `script_gpum_enabled` boolean: Whether GPU metrics are collected from your Databricks clusters. The Agent installed by the global init script performs the collection, so this requires the dataflow to be enabled with `djm_global_init_script_enabled` set to `true`.
            - `script_logs_enabled` boolean: Whether driver and worker logs are collected from your Databricks clusters. The Agent installed by the global init script performs the collection, so this requires the dataflow to be enabled with `djm_global_init_script_enabled` set to `true`.
            - `serverless_jobs_enabled` boolean: Whether health and cost data is collected for jobs running on Serverless or SQL Warehouse compute. This compute has no clusters for the global init script to target, so collection reads the Databricks system tables and requires `system_tables_sql_warehouse_id`.
        - `databricks-data-observability-quality-monitoring` DatabricksDataObservabilityQualityMonitoringIntegrationDataflowResponse: Data Observability, which collects lineage and data quality information from your Databricks catalogs so you can explore how data flows and detect, resolve, and prevent quality issues.
          - `enabled` boolean: Whether Datadog collects this data.
          - `settings` DatabricksDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse: Settings of the Data Observability dataflow.
            - `do_crawlers_cron` string: Cron expression setting how often Datadog connects to your Databricks warehouse to collect metadata. Currently, only hourly (`0 * * * *`) and daily (`0 0 * * *`) are supported.
            - `sync_system_catalog` boolean: Whether metadata from the Databricks `system` catalog is included in Data Observability alongside your data catalogs.
        - `databricks-model-serving-metrics` DatabricksModelServingMetricsIntegrationDataflowResponse: Health and usage metrics for your Databricks model serving endpoints. Not supported on accounts that authenticate with `private_action_runner`; on those accounts this dataflow collects no data.
          - `enabled` boolean: Whether Datadog collects this data.
      - `name` string, required: Human-readable name of the Databricks integration account.
      - `settings` DatabricksIntegrationAccountSettingsResponse, required: Settings configured on the Databricks integration account.
        - `system_tables_sql_warehouse_id` string: ID of the SQL warehouse used to query the Databricks system tables.
        - `workspace_url` string, required: URL of the Databricks workspace.
    - `id` string, required: Server-generated unique identifier of the Databricks integration account.
    - `type` 'integration-account', required: The type of the integration account resource. Always `integration-account`.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `422`: The server cannot process the request because it contains invalid data.
- `429`: Too many requests

---

[API](https://skmtc.dev/datadog/apis/datadog-api-v2-collection.md) - [All operations](https://skmtc.dev/datadog/apis/datadog-api-v2-collection/llms.txt) - [OpenAPI document](https://skmtc.dev/datadog/apis/datadog-api-v2-collection/revisions/3f70db624329?raw)
