| list_notebooksA | List notebooks on the Zeppelin server. Always use name_filter to narrow results — the server may have thousands of notebooks.
Args:
name_filter: Optional substring filter (case-insensitive) matched against the full path.
limit: Maximum number of notebooks to return (default 100, 0 = unlimited).
|
| search_notebooksB | Full-text search across all notebook paragraphs. Args:
query: Search query string
max_results: Maximum number of results to return (default 20, 0 = unlimited).
|
| get_notebookA | Get notebook overview with all paragraph code, titles, and status.
Does not include paragraph output — use get_paragraph to inspect output of specific paragraphs. For large notebooks, prefer list_paragraphs first to identify paragraphs of interest,
then get_paragraph_code for targeted reads.
Args:
notebook_id: The notebook ID to retrieve
include_config: If True, include visualization/chart config and presentation
flags (editorHide, runOnSelectionChange) for each paragraph. Default False.
|
| list_paragraphsA | List paragraph metadata (index, id, title, status) without code or output. Paragraphs whose presentation config deviates from the finalized standard are
marked inline: [editor visible] when editorHide is not true, and
[runs on selection change] when the paragraph has forms but
runOnSelectionChange is not false. Unmarked paragraphs are properly finalized.
Args:
notebook_id: The notebook ID to list paragraphs for
|
| get_paragraphA | Get full content of a single paragraph (code, output, dynamic forms,
chart config, and presentation flags like editorHide / runOnSelectionChange). By default, table output is limited to 50 rows and HTML output is omitted to save tokens.
When investigating data discrepancies, set max_rows=0 for unlimited rows.
If the paragraph uses HTML rendering (without z.show()), set include_html=True to see
text extracted from HTML. Alternatively, query the underlying data via SQL if available.
Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to retrieve
max_rows: Maximum data rows for table output (default 50, 0 = unlimited). Header row always included.
include_html: If True, include HTML output converted to plain text. If False (default), HTML is omitted.
|
| get_paragraph_codeA | Get only the code/text content of a paragraph, without output or forms.
Use this instead of get_paragraph when you only need to read the code to save on output size. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to retrieve
|
| get_paragraph_formsB | Get dynamic form definitions and current parameter values for a paragraph. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to inspect
|
| update_paragraph_formsA | Update dynamic form values without re-executing the paragraph.
Safest way to change form parameters when chart settings must be preserved. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to update
params: Dict of form values to set, e.g. {"city": "Seoul", "limit": "10"}.
|
| update_paragraph_configA | Update paragraph visualization/chart config (graph type, columns, display settings).
Fetches current config and deep-merges provided changes.
Column index and aggr fields are auto-filled from the paragraph's output headers — only provide name.
Auto-fill needs saved output: run the paragraph at least once first, otherwise index/aggr
cannot be auto-filled and columns are passed through as given. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to configure
config: Dict of config fields to set or update. Merged with existing config.
To change chart type, set graph.mode to one of:
"table", "multiBarChart", "stackedAreaChart", "lineChart",
"pieChart", "scatterChart".
Example: {"graph": {"mode": "multiBarChart",
"keys": [{"name": "date_col"}],
"values": [{"name": "amount_col"}]}}
|
| batch_update_paragraph_configA | Update visualization/chart config for multiple paragraphs in one call (batch version of
update_paragraph_config). Each config is deep-merged with that paragraph's existing config.
Column index/aggr auto-fill needs saved output: run each paragraph at least once first,
otherwise index/aggr cannot be auto-filled and columns are passed through as given. Prefer this over many update_paragraph_config calls — it collapses N round-trips into one.
Paragraphs are processed sequentially; one failing item does not stop the rest (failures are
reported in the result).
Args:
notebook_id: The notebook ID containing the paragraphs
configs: List of config changes, each {paragraph_id, config}. See update_paragraph_config
for the config dict format (graph.mode, keys/groups/values, etc.).
|
| update_paragraphA | Update paragraph code/text. Previous content is automatically backed up before changes. Sends the whole new text — for small targeted changes prefer edit_paragraph, which sends
only the changed snippet.
Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to update
text: The new code/content for the paragraph
title: Optional new title for the paragraph
|
| batch_update_paragraphA | Update multiple paragraphs in one call (batch version of update_paragraph). Previous
content of each changed paragraph is automatically backed up. Prefer this over many update_paragraph calls when editing several paragraphs — it collapses
N round-trips into one. Paragraphs are updated sequentially; one failing item does not stop
the rest (failures are reported in the result).
For small targeted changes prefer batch_edit_paragraph, which sends only changed snippets.
Args:
notebook_id: The notebook ID containing the paragraphs
updates: List of edits, each {paragraph_id, text, title?}.
|
| edit_paragraphA | Replace an exact snippet of paragraph code (find-and-replace). Previous content is
automatically backed up before changes. Prefer this over update_paragraph for targeted changes — you send only the changed snippet
instead of the whole paragraph. Use update_paragraph for whole rewrites.
old_string must match the current code exactly, including whitespace and indentation: copy it
from get_paragraph_code (raw text), not from get_notebook/get_paragraph (they indent code by
2 spaces). Keep it minimal but unique — include a neighbouring line if the snippet repeats.
Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to edit
old_string: Exact existing text to replace (must occur once unless replace_all)
new_string: Replacement text
replace_all: Replace every occurrence instead of requiring a unique match (e.g. renames)
|
| batch_edit_paragraphA | Apply several find-and-replace edits in one call (batch version of edit_paragraph),
across one or more paragraphs. Previous content of each changed paragraph is backed up. Edits are grouped by paragraph and applied in the given order, each against the result of
the previous one. Per paragraph it is all-or-nothing: if any of its edits fails, that
paragraph is left untouched. Other paragraphs still proceed (failures are reported).
Args:
notebook_id: The notebook ID containing the paragraphs
edits: List of edits, each {paragraph_id, old_string, new_string, replace_all?}.
|
| delete_paragraphA | Delete a paragraph. Its content is automatically backed up before deletion. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to delete
|
| batch_delete_paragraphA | Delete multiple paragraphs in one call (batch version of delete_paragraph). Each
paragraph's content is automatically backed up before deletion. Prefer this over many delete_paragraph calls — it collapses N round-trips into one.
Paragraphs are deleted sequentially; one failing item does not stop the rest (failures are
reported in the result).
Args:
notebook_id: The notebook ID containing the paragraphs
paragraph_ids: List of paragraph IDs to delete.
|
| move_paragraphA | Move a paragraph to a new position within the same notebook. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to move
new_index: The target position index (0-based)
|
| create_notebookB | Create a new empty notebook. Args:
name: Full path for the new notebook, e.g. "Users/john/ProjectName/Notebook Title"
|
| add_paragraphB | Add a new paragraph to an existing notebook. Args:
notebook_id: The notebook ID to add the paragraph to
text: The code/content for the paragraph
title: Optional title for the paragraph
index: Optional position index to insert the paragraph at
|
| batch_add_paragraphA | Add multiple paragraphs to a notebook in one call (batch version of add_paragraph).
Paragraphs are created sequentially in the given order. Prefer this over many add_paragraph calls when scaffolding several cells — it collapses N
round-trips into one. One failing item does not stop the rest (failures are reported).
Args:
notebook_id: The notebook ID to add paragraphs to
paragraphs: List of paragraphs to create, each {text, title?, index?}.
|
| clone_paragraphA | Clone a paragraph within the same notebook. The copy is created directly below the
source paragraph and carries over its code, title, and visualization/chart config.
The clone's title gets a " (copy)" suffix; untitled paragraphs stay untitled. Zeppelin has no dedicated clone-paragraph endpoint, so this reads the source paragraph,
creates a new one with the same content, then copies its config in a single tool call.
Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to clone
|
| run_paragraphA | Run a paragraph and return the result.
Uses the async job endpoint which preserves chart/visualization settings. By default, table output is limited to 50 rows and HTML output is omitted to save tokens.
Set max_rows=0 for unlimited rows when you need full results for analysis.
Set include_html=True to see HTML output converted to plain text.
On error, the response includes the error output — examine it before retrying.
Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to run
params: Optional dict of dynamic form values, e.g. {"city": "Seoul"}.
max_rows: Maximum data rows for table output (default 50, 0 = unlimited). Header row always included.
include_html: If True, include HTML output converted to plain text. If False (default), HTML is omitted.
|
| batch_run_paragraphA | Run several paragraphs one after another in the given order, in a single call.
Use this instead of many run_paragraph calls when you need a specific sequence of cells run —
e.g. setup cells before the cells that depend on them. Paragraphs run sequentially (not in
parallel) because cells typically share interpreter state, and this collapses N round-trips
into one. Each run item may carry its own dynamic form params. The top-level params dict is a shared
default merged under per-item params (the item wins on key conflicts). The same paragraph_id
may appear multiple times with different params — a parameter sweep in one call.
By default table output is limited to 50 rows and HTML output is omitted to save tokens.
Args:
notebook_id: The notebook ID containing the paragraphs
runs: Paragraphs to run in execution order, each {paragraph_id, params?}. Example:
[{"paragraph_id": "p1"}, {"paragraph_id": "p2", "params": {"city": "Seoul"}}]
params: Optional shared dynamic form values applied to every item, e.g. {"env": "prod"}.
Per-item params override these per key.
max_rows: Maximum data rows per table output (default 50, 0 = unlimited). Header row always included.
include_html: If True, include HTML output converted to plain text. Default False.
stop_on_error: If True (default), stop at the first paragraph that errors and report the
remaining ones as skipped. If False, run every paragraph regardless of failures.
|
| run_paragraph_asyncA | Start paragraph execution and return immediately without waiting for results.
Use this to run multiple paragraphs in parallel, then check status with get_paragraph_status
and read results with get_paragraph. Chart/visualization settings are preserved automatically.
Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to run
params: Optional dict of dynamic form values, e.g. {"city": "Seoul"}.
|
| run_all_paragraphsA | Run all paragraphs in a notebook and wait for completion.
Uses the async job endpoint which preserves chart/visualization settings. Args:
notebook_id: The notebook ID to run
params: Optional dict of dynamic form values, e.g. {"city": "Seoul"}.
|
| get_paragraph_statusA | Get execution status of a specific paragraph (useful after async run). Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to check
|
| stop_paragraphA | Stop a running paragraph. Use this to cancel long-running or stuck queries. Args:
notebook_id: The notebook ID containing the paragraph
paragraph_id: The paragraph ID to stop
|
| get_notebook_permissionsA | Get permission information for a notebook (owners, writers, readers). Args:
notebook_id: The notebook ID to get permissions for
|
| set_notebook_permissionsC | Set permission information for a notebook. Args:
notebook_id: The notebook ID to set permissions for
owners: List of usernames with owner access
writers: List of usernames with write access
readers: List of usernames with read access
runners: List of usernames with runner access
|
| get_notebook_fingerprintA | Get a deterministic content fingerprint of a notebook, plus per-paragraph sub-hashes. Cheap freshness check for cached notebook documentation. Only stable content is
hashed (paragraph id, title, code text); execution status, output, form
values/definitions, chart configs, and paragraph order are all excluded — none of
those flag the notebook stale.
The comparison against the cached doc happens server-side — never hand-compare
hash maps. Preferred: pass `spec_path` (the spec file under $WIKI_DOCS_PATH) and
the server reads the stored fingerprint/units from its frontmatter itself; the
response gains `"match": true|false` and `"diff": {changed, added, removed}`
naming the exact paragraph ids that differ. If the spec can't be used, the
response carries a `spec_note` explaining why and no match/diff. Fallback when
there is no docs repo: pass the stored values explicitly as `known_fingerprint` /
`known_units` (they take precedence over `spec_path` if both are given).
Args:
notebook_id: The notebook ID to fingerprint
spec_path: Optional path to the cached spec file inside $WIKI_DOCS_PATH
known_fingerprint: Optional stored overall fingerprint to compare against
known_units: Optional stored per-paragraph sub-hash map to diff against
|
| export_notebookA | Export notebook as JSON (for cross-server migration or backup).
Warning: output can be very large for notebooks with many paragraphs or large results. Args:
notebook_id: The notebook ID to export
|
| import_notebookA | Import a previously exported notebook JSON. Optionally rename it. Args:
notebook_json: The full notebook JSON string from export_notebook
new_name: Optional new name/path for the imported notebook
|
| clone_notebookA | Clone an existing notebook. Optionally rename the copy. Args:
notebook_id: The notebook ID to clone
new_name: Optional full path/name for the cloned notebook (e.g. "Users/john/Project/Copy").
If omitted, Zeppelin auto-generates a name in the source's parent folder.
|