# Run a Notebook

> Run a Notebook activity in the Databricks connector.

## Project compatibility

Windows | Cross-platform

## Overview

| Description | API Method | API Path |
| --- | --- | --- |
| Submit a one-time Databricks job run that executes a notebook. Use tasks[] (the only shape that supports serverless compute) or the legacy flat notebook_task with New Cluster / Existing Cluster ID. | POST | `/jobs_runs_submit` |

## Input

| Parameter | Description | Data Type |
| --- | --- | --- |
| Run Name | Optional name for the one-time run. For example, `nightly_ingest`. | string |
| Tasks | Multi-task shape (recommended, and the only shape that supports serverless): [{"task_key":"t1","notebook_task":{"notebook_path":"/Users/me/nb","base_parameters":{"input":"x"}}}]. Omit any cluster spec to run serverless. Pass values to dbutils.widgets via base_parameters. | array |
| Notebook Task (legacy flat) | Legacy single-task shape: {"notebook_path":"/Users/me/nb","base_parameters":{...}}. Requires a cluster - pair with New Cluster or Existing Cluster ID. | object |
| Existing Cluster ID | Run on an existing all-purpose cluster instead of a new job cluster. For example, `0712-215021-abc123de`. | string |
| New Cluster | Job-cluster spec: {"spark_version":"15.4.x-scala2.12","node_type_id":"Standard_D3_v2","num_workers":2}. Not accepted on serverless-only workspaces. | object |
| Libraries | Libraries to install before the notebook runs, for example [{"pypi":{"package":"requests"}}]. | array |
| Timeout Seconds | Maximum time in seconds the run is allowed to take before it is cancelled. For example, `3600`. | integer |
| Idempotency Token | Guarantees at-most-once submission for the same token. For example, `8f0a1b2c-3d4e-5f60-7a8b-9c0d1e2f3a4b`. | string |

## Output

| Parameter | Description | Data Type |
| --- | --- | --- |
| Run ID | Server-assigned run id; poll it with Get a Job Run. | integer |
| Number in Job | Sequence number of this run within the job. | integer |

:::note
You might see variations in the output depending on where you run the activity. In API workflows and Maestro Flow, a single response object containing all the fields is returned. In RPA workflows, not all fields are exposed, but you can still retrieve them from the exposed response object.
:::
