Public actions
15 actions. Each action calls the same API route with the same scopes on every surface.
edit_read
Section titled “edit_read”Read a public document.
| Route | GET /api/v1/public/{slug}/edit |
| Tool name | calternal_api_edit_read |
| Surfaces | none (browser flow only) |
| Scopes | none |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
edit_session
Section titled “edit_session”Start a guest editing session.
| Route | POST /api/v1/public/{slug}/edit/session |
| Tool name | calternal_api_edit_session |
| Surfaces | none (browser flow only) |
| Scopes | none |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
edit_write
Section titled “edit_write”Write a Public link text file with If-Match set to its current ETag.. Required headers: If-Match..
| Route | PUT /api/v1/public/{slug}/edit |
| Tool name | calternal_api_edit_write |
| Surfaces | none (browser flow only) |
| Scopes | none |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-Match |
string |
yes | |
X-Public-Password |
string |
no |
entries
Section titled “entries”List visible Files and folders below a Public link folder, with stable IDs and a page cursor..
| Route | GET /api/v1/public/{slug}/entries |
| Tool name | calternal_public_list_folder_entries |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
query
| Field | Type | Required | Description |
|---|---|---|---|
item |
string |
no | |
path |
string |
no |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run entries --input '{"path":{"slug":"<slug>"}}' --jsonRead the public details and allowed actions for a Public link..
| Route | GET /api/v1/public/{slug} |
| Tool name | calternal_public_read_link_details |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run info --input '{"path":{"slug":"<slug>"}}' --jsonlinked_note
Section titled “linked_note”Read a Note linked from a public link.
| Route | GET /api/v1/public/{slug}/linked-notes/{id} |
| Tool name | calternal_api_linked_note |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response text |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | |
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run linked_note --input '{"path":{"slug":"<slug>","id":"<id>"}}' --jsonpublic_canvas_view
Section titled “public_canvas_view”Read the current view-only Canvas drawing from a public link. Unavailable linked items appear as placeholders..
| Route | GET /api/v1/public/{slug}/canvas |
| Tool name | calternal_api_public_canvas_view |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run public_canvas_view --input '{"path":{"slug":"<slug>"}}' --jsonpublic_download
Section titled “public_download”Download a file from a public link.
| Route | GET /api/v1/public/{slug}/download |
| Tool name | calternal_api_public_download |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response base64 |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
query
| Field | Type | Required | Description |
|---|---|---|---|
item |
string |
no | |
path |
string |
no |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run public_download --input '{"path":{"slug":"<slug>"}}' --jsonpublic_linked_notes
Section titled “public_linked_notes”List Notes linked from a public link.
| Route | GET /api/v1/public/{slug}/linked-notes |
| Tool name | calternal_api_public_linked_notes |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run public_linked_notes --input '{"path":{"slug":"<slug>"}}' --jsonpublic_preview
Section titled “public_preview”Preview public file contents Continuation: Use the declared Range header or the existing streaming transfer command..
| Route | GET /api/v1/public/{slug}/preview |
| Tool name | calternal_api_public_preview |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response base64 |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
query
| Field | Type | Required | Description |
|---|---|---|---|
item |
string |
no | |
path |
string |
no |
headers
| Field | Type | Required | Description |
|---|---|---|---|
If-None-Match |
string | null |
no | |
Range |
string | null |
no | |
X-Public-Password |
string |
no |
calternal action run public_preview --input '{"path":{"slug":"<slug>"}}' --jsonpublic_thumb
Section titled “public_thumb”Get a public link thumbnail.
| Route | GET /api/v1/public/{slug}/thumb |
| Tool name | calternal_api_public_thumb |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response base64 |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
query
| Field | Type | Required | Description |
|---|---|---|---|
item |
string |
no | |
path |
string |
no | |
s |
integer, int32 (0–) |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
X-Public-Password |
string |
no |
calternal action run public_thumb --input '{"path":{"slug":"<slug>"},"query":{"s":"<s>"}}' --jsonpublic_upload_create
Section titled “public_upload_create”Start a public file drop upload. Required headers: Tus-Resumable, Upload-Length, Upload-Metadata..
| Route | POST /api/v1/public/{slug}/uploads |
| Tool name | calternal_api_public_upload_create |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | destructive, needs --confirm |
| Encoding | request base64, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
Tus-Resumable |
string |
yes | |
Upload-Checksum |
string | null |
no | |
Upload-Conflict-Policy |
string | null |
no | |
Upload-Length |
string |
yes | |
Upload-Metadata |
string |
yes | |
X-Public-Password |
string |
no |
body: string. Base64 encoded bytes; send large uploads in chunks
calternal action run public_upload_create --input '{"path":{"slug":"<slug>"},"headers":{"Tus-Resumable":"<Tus-Resumable>","Upload-Length":"<Upload-Length>","Upload-Metadata":"<Upload-Metadata>"}}' --confirm --jsonpublic_upload_head
Section titled “public_upload_head”Check a public upload. Required headers: Tus-Resumable..
| Route | HEAD /api/v1/public/{slug}/uploads/{id} |
| Tool name | calternal_api_public_upload_head |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | read only |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | |
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
Tus-Resumable |
string |
yes | |
X-Public-Password |
string |
no |
calternal action run public_upload_head --input '{"path":{"slug":"<slug>","id":"<id>"},"headers":{"Tus-Resumable":"<Tus-Resumable>"}}' --jsonpublic_upload_patch
Section titled “public_upload_patch”Send bytes to a public upload. Required headers: Tus-Resumable, Upload-Offset..
| Route | PATCH /api/v1/public/{slug}/uploads/{id} |
| Tool name | calternal_api_public_upload_patch |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | destructive, needs --confirm |
| Encoding | request base64, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | |
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
Tus-Resumable |
string |
yes | |
Upload-Checksum |
string | null |
no | |
Upload-Offset |
string |
yes | |
X-Public-Password |
string |
no |
body: string. Base64 encoded bytes; send large uploads in chunks
calternal action run public_upload_patch --input '{"path":{"slug":"<slug>","id":"<id>"},"headers":{"Tus-Resumable":"<Tus-Resumable>","Upload-Offset":"<Upload-Offset>"}}' --confirm --jsonpublic_upload_terminate
Section titled “public_upload_terminate”Cancel a public upload. Required headers: Tus-Resumable..
| Route | DELETE /api/v1/public/{slug}/uploads/{id} |
| Tool name | calternal_api_public_upload_terminate |
| Surfaces | cli, mcp, webmcp |
| Scopes | none |
| Effect | destructive, needs --confirm |
| Encoding | request none, response json |
path
| Field | Type | Required | Description |
|---|---|---|---|
id |
string |
yes | |
slug |
string |
yes |
headers
| Field | Type | Required | Description |
|---|---|---|---|
Tus-Resumable |
string |
yes | |
X-Public-Password |
string |
no |
calternal action run public_upload_terminate --input '{"path":{"slug":"<slug>","id":"<id>"},"headers":{"Tus-Resumable":"<Tus-Resumable>"}}' --confirm --json