Views and dashboards
Saved views, rendered and published views, live dashboards.
Start with: views_create, views_run, dashboards_create, views_publish.
43 operations. Discover them from an agent with agentdb_capabilities {"category": "views_dashboards"}.
#dashboard_sites.complete
Finish a version: index.html required, manifest.json data sources checked; ready or failed with every problem
Experimental: may change before 2.0.
- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/completescope records:write
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
site | path | string | yes | string |
version | path | string | yes | string |
Example
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/<site>/versions/<version>/complete" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#dashboard_sites.put_file
Upload one file's raw bytes (application/octet-stream) into an uploading version
Experimental: may change before 2.0.
- REST
PUT /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/files/*scope records:write
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
site | path | string | yes | string |
version | path | string | yes | string |
Example
curl -s -X PUT "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/<site>/versions/<version>/files/*" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#dashboard_sites.put_zip
Upload the package as one zip (application/octet-stream); ?complete=false to add more files after
Experimental: may change before 2.0.
- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/zipscope records:write
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
site | path | string | yes | string |
version | path | string | yes | string |
Example
curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/<site>/versions/<version>/zip" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#dashboard_sites_create
Create a CUSTOM dashboard: a website YOU build (HTML, CSS, JS, images, fonts) that AgentDB hosts at its own secure address https://<id>.<dashboard domain>/ with live, read-only data and no API key in the page. Sharing mode: only_me (default: only the owner, signed in with two-step sign-in), link_password (anyone with the URL and a shared password; you may set it), people (invited email addresses, no account needed; dashboard_sites_invite), link (anyone with the URL; on a dashboard with workspace data a person must approve it). Nothing is live until you upload (dashboard_sites_upload) and publish (dashboard_sites_publish). For a team: link_password and tell the user to share the password separately, or people and invite them. For a quick panel dashboard without your own HTML, use dashboards_create instead. Example: {"title": "Sales team dashboard", "mode": "link_password", "password": "violet harbour lantern 42"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_create- REST
POST /v1/workspaces/{ws}/dashboard-sitesscope records:write- CLI
agentdb dashboard-sites create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
title | string | yes | Title shown to people. (min length 1, max length 100) |
mode | "only_me" | "link" | "link_password" | "people" | string, one of: only_me, link, link_password, people | |
password | string | string, 10–200 characters | |
expires_in_days | integer | null | integer | null | |
expires_at | string | string | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_create",
"arguments": {
"title": "Sales team dashboard",
"mode": "link_password",
"password": "violet harbour lantern 42"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_create",
"arguments": {
"title": "Sales team dashboard",
"mode": "link_password",
"password": "violet harbour lantern 42"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Sales team dashboard","mode":"link_password","password":"violet harbour lantern 42"}'agentdb dashboard-sites create [options]#dashboard_sites_delete
Delete a custom dashboard and all its stored files (the audit trail stays). Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_delete- REST
DELETE /v1/workspaces/{ws}/dashboard-sites/{site}scope records:write- CLI
agentdb dashboard-sites delete
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_delete",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_delete",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites delete [options] <site_id>#dashboard_sites_get
One custom dashboard: its versions (status uploading | ready | published | failed | discarded, files with size and sha256, data sources, and every validation problem with path and reason) and recent audit events. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_get- REST
GET /v1/workspaces/{ws}/dashboard-sites/{site}scope records:read- CLI
agentdb dashboard-sites get
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_get",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_get",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites get [options] <site_id>#dashboard_sites_invite
Invite people to view a custom dashboard in mode people: each address gets a personal, single-use link by email (valid 7 days, valid_days 1-30). They need no AgentDB account and see only this dashboard. The owner gets an email listing who you invited. Example: {"site_id": "dsite-…", "emails": ["ana@example.test"]} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_invite- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/viewersscope records:write- CLI
agentdb dashboard-sites invite
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
emails | string[] | yes | string[], up to 50 items |
valid_days | integer | integer, 1–30 | |
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_invite",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"emails": [
"ana@example.test",
"bo@example.test"
]
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_invite",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"emails": [
"ana@example.test",
"bo@example.test"
]
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/viewers" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"emails":["ana@example.test","bo@example.test"]}'agentdb dashboard-sites invite [options] <site_id> <emails...>#dashboard_sites_list
List the custom dashboards of the workspace: id, title, url, access, status (live | unpublished | revoked | expired), current_version, expiry. Example: {} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_list- REST
GET /v1/workspaces/{ws}/dashboard-sitesscope records:read- CLI
agentdb dashboard-sites list
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites list [options]#dashboard_sites_pause
Pause a custom dashboard: its address shows a neutral "paused" page, no data is served and every session ends. dashboard_sites_resume brings it back. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_pause- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/pausescope records:write- CLI
agentdb dashboard-sites pause
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_pause",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_pause",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/pause" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites pause [options] <site_id>#dashboard_sites_preview
An owner-only, single-use preview link (valid 10 minutes) of a ready version, before you publish it. Give it only to the person who asked. Example: {"site_id": "dsite-…", "version": 2} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_preview- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versions/{version}/previewscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | yes | The current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1) |
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_preview",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"version": 2
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_preview",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"version": 2
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/versions/2/preview" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#dashboard_sites_publish
Make a ready version live at once (an atomic switch; viewers never see a mix). The access policy stays as it is. Publish an older ready version to roll back. Returns the url. Example: {"site_id": "dsite-…", "version": 2} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_publish- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/publishscope records:write- CLI
agentdb dashboard-sites publish
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | yes | The current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1) |
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_publish",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"version": 2
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_publish",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"version": 2
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/publish" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"version":2}'agentdb dashboard-sites publish [options] <site_id>#dashboard_sites_regenerate_link
Link mode: make a new link (a new ?k= key). The old link stops at once and everyone who opened it must use the new one. The new URL is shown only in this answer. Owners, admins and the dashboard's creator. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_regenerate_link- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/regenerate-linkscope records:write- CLI
agentdb dashboard-sites regenerate-link
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_regenerate_link",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_regenerate_link",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/regenerate-link" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites regenerate-link [options] <site_id>#dashboard_sites_resume
Resume a paused custom dashboard; viewers sign in again under its sharing mode. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_resume- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/resumescope records:write- CLI
agentdb dashboard-sites resume
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_resume",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_resume",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/resume" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites resume [options] <site_id>#dashboard_sites_revoke
Revoke a custom dashboard for good: the URL, open pages and every viewer session stop at once. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_revoke- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/revokescope records:write- CLI
agentdb dashboard-sites revoke
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_revoke",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_revoke",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/revoke" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites revoke [options] <site_id>#dashboard_sites_revoke_viewer
Remove one invited viewer (by viewer_id or email): only that person's sessions and links end. Example: {"site_id": "dsite-…", "email": "bo@example.test"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_revoke_viewer- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/viewers/revokescope records:write- CLI
agentdb dashboard-sites revoke-viewer
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
viewer_id | string | string, up to 64 characters | |
email | string | string, up to 254 characters | |
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_revoke_viewer",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"email": "bo@example.test"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_revoke_viewer",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"email": "bo@example.test"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/viewers/revoke" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"email":"bo@example.test"}'agentdb dashboard-sites revoke-viewer [options] <site_id>#dashboard_sites_unpublish
Take a custom dashboard offline (its URL answers "not found"); versions are kept and can be published again. Example: {"site_id": "dsite-…"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_unpublish- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/unpublishscope records:write- CLI
agentdb dashboard-sites unpublish
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_unpublish",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_unpublish",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/unpublish" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboard-sites unpublish [options] <site_id>#dashboard_sites_update
Rename a custom dashboard. Sharing: dashboard_sites_share_set. Content: upload and publish a new version. Example: {"site_id": "dsite-…", "title": "Sales (EUR)"} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_update- REST
PATCH /v1/workspaces/{ws}/dashboard-sites/{site}scope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
title | string | yes | Title shown to people. (min length 1, max length 100) |
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_update",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"title": "Sales (EUR)"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_update",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"title": "Sales (EUR)"
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Sales (EUR)"}'#dashboard_sites_upload
Upload a version of a custom dashboard: files as base64 (small files; the request stays under ~1 MB) or the whole package as zip_base64. Without version a new version starts; pass version to add files to an uploading version and complete: false to keep it open. Rules: index.html required; types html css js mjs json svg png jpg jpeg webp gif ico woff2 woff txt; at most 200 files and 10 MB; plain relative paths (no .., absolute paths, backslashes or hidden files). manifest.json declares read-only data sources: {"data": {"open_deals": {"aggregate": {...records_aggregate...}}, "latest": {"query": {...records_query, limit <= 200...}, "fields": ["name", "amount"]}}}; the page fetches /_data/<name> on its own origin (?since=<marker>&wait=1 long-polls). The page may only load files from its own package (strict CSP: no outside scripts, fonts or API calls; bundle libraries). Any problem fails the version, lists every problem (details.errors: path and reason) and removes its files; the live version is never touched. Bigger packages: the REST upload (PUT raw files or a zip). Example: {"site_id": "dsite-…", "files": [{"path": "index.html", "content_base64": "…"}]} Experimental: may change before 2.0.
Experimental: may change before 2.0. Custom dashboards (D-097) are new and off unless the operator sets AGENTDB_DASH_DOMAIN; the package and manifest format may change before 2.0.
- MCP tool
dashboard_sites_upload- REST
POST /v1/workspaces/{ws}/dashboard-sites/{site}/versionsscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | The current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1) | |
files | object[] | object[], up to 200 items | |
zip_base64 | string | string, up to 955742 characters | |
complete | boolean | boolean | |
site_id | string | yes | Custom dashboard id (dsite-...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboard_sites_upload",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"files": [
{
"path": "index.html",
"content_base64": "PCFkb2N0eXBlIGh0bWw+PHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+"
},
{
"path": "app.js",
"content_base64": "ZmV0Y2goIi9fZGF0YS9vcGVuX2RlYWxzIik="
},
{
"path": "manifest.json",
"content_base64": "eyJkYXRhIjp7fX0="
}
]
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboard_sites_upload",
"arguments": {
"site_id": "dsite-0123456789abcdef01234567",
"files": [
{
"path": "index.html",
"content_base64": "PCFkb2N0eXBlIGh0bWw+PHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+"
},
{
"path": "app.js",
"content_base64": "ZmV0Y2goIi9fZGF0YS9vcGVuX2RlYWxzIik="
},
{
"path": "manifest.json",
"content_base64": "eyJkYXRhIjp7fX0="
}
]
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboard-sites/dsite-0123456789abcdef01234567/versions" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"files":[{"path":"index.html","content_base64":"PCFkb2N0eXBlIGh0bWw+PHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+"},{"path":"app.js","content_base64":"ZmV0Y2goIi9fZGF0YS9vcGVuX2RlYWxzIik="},{"path":"manifest.json","content_base64":"eyJkYXRhIjp7fX0="}]}'#dashboards.page
Hosted dashboard page (/d/<id>#<token>; the token stays in the URL fragment)
- REST
GET /d/{dashboard}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
dashboard | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/d/<dashboard>"#dashboards.session
Trade a dashboard password for a 12 h viewer session
- REST
POST /v1/dashboards/{token}/sessionno authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes | string |
Example
curl -s -X POST "https://app.agentdb.link/v1/dashboards/<token>/session"#dashboards.view
Dashboard data (public link; ?since=<marker>&wait=1 long-polls)
- REST
GET /v1/dashboards/{token}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/v1/dashboards/<token>"#dashboards_create
Create a LIVE read-only dashboard: fixed panels of server-side totals (aggregate, as in records_aggregate) or short lists (query, max 50 rows). Returns page_url (a page AgentDB hosts: live, phone-friendly, light/dark; the part after # is the access token) and data_url (JSON, no API key, CORS open) for a page YOU design, with usage notes and a ready fetch loop (long-poll ?since=<marker>&wait=1). Hosted page: display number | bar | line | table, width (1-4 columns), metric, format {style: number|integer|percent|currency|compact|date|datetime|month|text, currency, decimals}, column_formats for tables, layout {columns 1-4, rows: [[panel indexes]]}. All text is shown as plain text; no HTML or scripts. Never put an API key in a page. Sharing: access link (default) | password (+ password; the viewer types it, never hard-code it) | key (server-side apps only, no hosted page). New link dashboards expire after 90 days: pass expires_in_days (1-365, or null for none) or expires_in_hours/expires_at. Tell the user who can read it; dashboards_rotate_token replaces the link, dashboards_revoke stops it. Example: {"title": "Sales", "panels": [{"title": "Won by month", "display": "line", "aggregate": {"object": "deal", "group_by": [{"field": "closed_on", "bucket": "month"}], "metrics": [{"op": "sum", "field": "amount"}]}, "format": {"style": "currency", "currency": "EUR"}}]}
- MCP tool
dashboards_create- REST
POST /v1/workspaces/{ws}/dashboardsscope records:write- CLI
agentdb dashboards create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
title | string | yes | Title shown to people. (min length 1, max length 100) |
access | "link" | "password" | "key" | string, one of: link, password, key | |
password | string | string, 10–200 characters | |
expires_at | string | string | |
expires_in_hours | integer | integer, 1–8760 | |
expires_in_days | integer | null | integer | null | |
allowed_origins | string[] | string[], up to 10 items | |
panels | object[] | yes | The panels: each one a title and a query or aggregate (1 to 12). (max 12 items) |
layout | object | object | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboards_create",
"arguments": {
"title": "Sales",
"panels": [
{
"title": "Won this year",
"aggregate": {
"object": "deal",
"where": {
"all": [
{
"field": "stage",
"op": "eq",
"value": "won"
}
]
},
"metrics": [
{
"op": "sum",
"field": "amount"
}
]
},
"format": {
"style": "currency",
"currency": "EUR"
}
},
{
"title": "Won by month",
"display": "line",
"width": 2,
"aggregate": {
"object": "deal",
"group_by": [
{
"field": "closed_on",
"bucket": "month"
}
],
"metrics": [
{
"op": "sum",
"field": "amount"
}
]
},
"format": {
"style": "compact"
}
},
{
"title": "Latest deals",
"query": {
"object": "deal",
"sort": [
{
"field": "created_at",
"order": "desc"
}
],
"limit": 10
},
"fields": [
"name",
"stage",
"amount"
],
"column_formats": {
"amount": {
"style": "currency",
"currency": "EUR"
}
}
}
],
"layout": {
"columns": 2,
"rows": [
[
0
],
[
1
],
[
2
]
]
}
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboards_create",
"arguments": {
"title": "Sales",
"panels": [
{
"title": "Won this year",
"aggregate": {
"object": "deal",
"where": {
"all": [
{
"field": "stage",
"op": "eq",
"value": "won"
}
]
},
"metrics": [
{
"op": "sum",
"field": "amount"
}
]
},
"format": {
"style": "currency",
"currency": "EUR"
}
},
{
"title": "Won by month",
"display": "line",
"width": 2,
"aggregate": {
"object": "deal",
"group_by": [
{
"field": "closed_on",
"bucket": "month"
}
],
"metrics": [
{
"op": "sum",
"field": "amount"
}
]
},
"format": {
"style": "compact"
}
},
{
"title": "Latest deals",
"query": {
"object": "deal",
"sort": [
{
"field": "created_at",
"order": "desc"
}
],
"limit": 10
},
"fields": [
"name",
"stage",
"amount"
],
"column_formats": {
"amount": {
"style": "currency",
"currency": "EUR"
}
}
}
],
"layout": {
"columns": 2,
"rows": [
[
0
],
[
1
],
[
2
]
]
}
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Sales","panels":[{"title":"Won this year","aggregate":{"object":"deal","where":{"all":[{"field":"stage","op":"eq","value":"won"}]},"metrics":[{"op":"sum","field":"amount"}]},"format":{"style":"currency","currency":"EUR"}},{"title":"Won by month","display":"line","width":2,"aggregate":{"object":"deal","group_by":[{"field":"closed_on","bucket":"month"}],"metrics":[{"op":"sum","field":"amount"}]},"format":{"style":"compact"}},{"title":"Latest deals","query":{"object":"deal","sort":[{"field":"created_at","order":"desc"}],"limit":10},"fields":["name","stage","amount"],"column_formats":{"amount":{"style":"currency","currency":"EUR"}}}],"layout":{"columns":2,"rows":[[0],[1],[2]]}}'agentdb dashboards create [options]#dashboards_get
One dashboard's full definition (spec: title, panels, layout), its current version and the last 10 versions (history). Pass version to read one stored version. Read it before dashboards_update. Example: {"dashboard_id": "dsh_…", "version": 2}
- MCP tool
dashboards_get- REST
GET /v1/workspaces/{ws}/dashboards/{dashboard}scope records:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | The current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1) | |
dashboard_id | string | yes | Dashboard id (dsh_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboards_get",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboards_get",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'#dashboards_list
List the dashboards of the workspace: id, title, panels, version, access, expiry, status, created_by (key:<id>) with created_by_label ("…, revoked key" when the creating key is gone; dashboards belong to the workspace), created_at, and access_stats (last_accessed_at, views per day, counts only). Links are only shown at creation and rotation. Example: {}
- MCP tool
dashboards_list- REST
GET /v1/workspaces/{ws}/dashboardsscope records:read- CLI
agentdb dashboards list
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboards_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboards_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboards list [options]#dashboards_revoke
Revoke a dashboard immediately: its page and data link stop, including open pages and password sessions. The data is not changed. Example: {"dashboard_id": "dsh_…"}
- MCP tool
dashboards_revoke- REST
DELETE /v1/workspaces/{ws}/dashboards/{dashboard}scope records:write- CLI
agentdb dashboards revoke
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
dashboard_id | string | yes | Dashboard id (dsh_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
dashboard_id comes from dashboards_create or dashboards_list.
{
"tool": "dashboards_revoke",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboards_revoke",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb dashboards revoke [options] <dashboard_id>#dashboards_rotate_token
Give a dashboard a new link: returns a new page_url and data_url for the same id, panels and settings. The old link stops at once, including open pages and password sessions. Use it when a link was shared too widely. Example: {"dashboard_id": "dsh_…"}
- MCP tool
dashboards_rotate_token- REST
POST /v1/workspaces/{ws}/dashboards/{dashboard}/rotate-tokenscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
dashboard_id | string | yes | Dashboard id (dsh_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "dashboards_rotate_token",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboards_rotate_token",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa/rotate-token" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#dashboards_update
Change a dashboard; the id and link stay the same. Content: title, panels (replaces all) and/or layout (null = automatic) need the current version (from dashboards_get or dashboards_list); a different version answers VERSION_CONFLICT: re-read, re-apply, retry. The last 10 versions are kept. Sharing (no version needed): access ("link", "password" with a new password, or "key"), expires_at / expires_in_hours / expires_in_days (null or clear_expiry to remove), allowed_origins (clear_allowed_origins to remove). A new password or access mode ends open viewer sessions. Example: {"dashboard_id": "dsh_…", "version": 3, "layout": {"columns": 3, "rows": [[0, 1, 2]]}}
- MCP tool
dashboards_update- REST
PATCH /v1/workspaces/{ws}/dashboards/{dashboard}scope records:write- CLI
agentdb dashboards update
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
access | "link" | "password" | "key" | string, one of: link, password, key | |
password | string | string, 10–200 characters | |
expires_at | string | string | |
expires_in_hours | integer | integer, 1–8760 | |
expires_in_days | integer | null | integer | null | |
allowed_origins | string[] | string[], up to 10 items | |
clear_expiry | boolean | boolean | |
clear_allowed_origins | boolean | boolean | |
version | integer | The current version of the item. The call fails with VERSION_CONFLICT if it changed. (min 1) | |
title | string | Title shown to people. (min length 1, max length 100) | |
panels | object[] | object[], up to 12 items | |
layout | object | null | object | null | |
dashboard_id | string | yes | Dashboard id (dsh_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
dashboard_id comes from dashboards_create or dashboards_list.
{
"tool": "dashboards_update",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa",
"version": 3,
"title": "Sales (EUR)",
"layout": {
"columns": 3,
"rows": [
[
0,
1,
2
]
]
},
"expires_in_days": 30
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "dashboards_update",
"arguments": {
"dashboard_id": "dsh_aaaaaaaaaaaaaaaaaaaaaaaa",
"version": 3,
"title": "Sales (EUR)",
"layout": {
"columns": 3,
"rows": [
[
0,
1,
2
]
]
},
"expires_in_days": 30
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/dashboards/dsh_aaaaaaaaaaaaaaaaaaaaaaaa" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"version":3,"title":"Sales (EUR)","layout":{"columns":3,"rows":[[0,1,2]]},"expires_in_days":30}'agentdb dashboards update [options] <dashboard_id>#views.published.revoke
Revoke a published view at once
- REST
DELETE /v1/workspaces/{ws}/published-views/{published}scope records:write
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
published | path | string | yes | string |
Example
curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/published-views/<published>" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#views.published.session
Trade a published view's password for a 12 h viewer session
- REST
POST /v1/published-views/{token}/sessionno authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes | string |
Example
curl -s -X POST "https://app.agentdb.link/v1/published-views/<token>/session"#views.published.view
A published view's data (public link, read-only)
- REST
GET /v1/published-views/{token}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
token | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/v1/published-views/<token>"#views_create
Save a named query (where, sort, fields projection, limit) on one object. visibility private (you) or workspace (everyone, each with their own permissions). Field renames keep views working.
- MCP tool
views_create- REST
POST /v1/workspaces/{ws}/viewsscope records:write- CLI
agentdb views create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | yes | View name: lowercase letters, digits and _. |
object | string | yes | Object type name, e.g. contact. |
description | string | string, up to 1000 characters | |
definition | object | yes | What the view shows: filter, sort, columns and layout. |
visibility | "private" | "workspace" | string, one of: private, workspace, default "private" | |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_create",
"arguments": {
"name": "open_deals",
"object": "deal",
"definition": {
"where": {
"all": [
{
"field": "stage",
"op": "eq",
"value": "open"
}
]
},
"sort": [
{
"field": "amount",
"order": "desc"
}
]
},
"visibility": "workspace"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_create",
"arguments": {
"name": "open_deals",
"object": "deal",
"definition": {
"where": {
"all": [
{
"field": "stage",
"op": "eq",
"value": "open"
}
]
},
"sort": [
{
"field": "amount",
"order": "desc"
}
]
},
"visibility": "workspace"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"open_deals","object":"deal","definition":{"where":{"all":[{"field":"stage","op":"eq","value":"open"}]},"sort":[{"field":"amount","order":"desc"}]},"visibility":"workspace"}'agentdb views create [options]#views_delete
Delete a saved view.
- MCP tool
views_delete- REST
DELETE /v1/workspaces/{ws}/views/{view}scope records:write- CLI
agentdb views delete
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
view | string | yes | View id (viw_...) or name |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_delete",
"arguments": {
"view": "open_deals"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_delete",
"arguments": {
"view": "open_deals"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb views delete [options] <view>#views_get
One saved view with its version history.
- MCP tool
views_get- REST
GET /v1/workspaces/{ws}/views/{view}scope records:read- CLI
agentdb views get
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
view | string | yes | View id (viw_...) or name |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_get",
"arguments": {
"view": "open_deals"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_get",
"arguments": {
"view": "open_deals"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb views get [options] <view>#views_list
Saved views you can use (optionally of one object).
- MCP tool
views_list- REST
GET /v1/workspaces/{ws}/viewsscope records:read- CLI
agentdb views list
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
object | string | Object type name, e.g. contact. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_list",
"arguments": {
"object": "deal"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_list",
"arguments": {
"object": "deal"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb views list [options]#views_publish
Publish a saved view READ-ONLY through an expiring, revocable link (url for people, data_url JSON for pages; no API key). Runs with YOUR permissions now and later (never more); display.hidden_fields are never shown; optional fields narrows it further; files become short-lived signed links. Default expiry 7 days (expires_in_hours up to 8760); access password (+ password) to require one. Tell the user who can see it and that views_unpublish stops it.
- MCP tool
views_publish- REST
POST /v1/workspaces/{ws}/views/{view}/publishscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
title | string | Title shown to people. (min length 1, max length 100) | |
access | "link" | "password" | string, one of: link, password | |
password | string | string, 10–200 characters | |
expires_at | string | string | |
expires_in_hours | integer | integer, 1–8760 | |
allowed_origins | string[] | string[], up to 10 items | |
fields | string[] | string[], up to 50 items | |
view | string | yes | View id (viw_...) or name |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_publish",
"arguments": {
"view": "open_deals",
"title": "Open deals",
"access": "link",
"expires_in_hours": 168
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_publish",
"arguments": {
"view": "open_deals",
"title": "Open deals",
"access": "link",
"expires_in_hours": 168
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals/publish" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Open deals","access":"link","expires_in_hours":168}'#views_published_list
Published view links of the workspace (yours, or all for owners and admins). Links are only shown at creation.
- MCP tool
views_published_list- REST
GET /v1/workspaces/{ws}/published-viewsscope records:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_published_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_published_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/published-views" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#views_published_update
Change a published view: title, access/password, expiry, allowed_origins (clear_allowed_origins), fields (clear_fields). Open viewer sessions end.
- MCP tool
views_published_update- REST
PATCH /v1/workspaces/{ws}/published-views/{published}scope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
title | string | Title shown to people. (min length 1, max length 100) | |
access | "link" | "password" | string, one of: link, password | |
password | string | string, 10–200 characters | |
expires_at | string | string | |
expires_in_hours | integer | integer, 1–8760 | |
allowed_origins | string[] | string[], up to 10 items | |
fields | string[] | string[], up to 50 items | |
clear_allowed_origins | boolean | boolean | |
clear_fields | boolean | boolean | |
published_view_id | string | yes | Published view id (pvw_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
published_view_id comes from views_publish or views_published_list.
{
"tool": "views_published_update",
"arguments": {
"published_view_id": "pvw_example",
"expires_in_hours": 24
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_published_update",
"arguments": {
"published_view_id": "pvw_example",
"expires_in_hours": 24
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/published-views/<published>" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"published_view_id":"pvw_example","expires_in_hours":24}'#views_render
A saved view rendered by its definition.display (table, list, kanban, calendar, timeline, report; docs/APP-VIEWS.md): only the fields the display uses, Kanban column counts and WIP limits, calendar/timeline window (from/to YYYY-MM-DD), report groups. Use it to build a page for people.
- MCP tool
views_render- REST
GET /v1/workspaces/{ws}/views/{view}/renderscope records:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
cursor | string | string, up to 2000 characters | |
limit | integer | integer, 1–200 | |
from | string | Start of the time range (ISO 8601 date-time with time zone). | |
to | string | End of the time range (ISO 8601 date-time with time zone). | |
view | string | yes | View id (viw_...) or name |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_render",
"arguments": {
"view": "open_deals",
"from": "2026-01-01",
"to": "2026-01-31"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_render",
"arguments": {
"view": "open_deals",
"from": "2026-01-01",
"to": "2026-01-31"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals/render" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#views_run
Run a saved view (with your permissions). Optional limit, cursor (next_cursor) and version (an earlier definition).
- MCP tool
views_run- REST
POST /v1/workspaces/{ws}/views/{view}/runscope records:read- CLI
agentdb views run
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
limit | integer | integer, 1–200 | |
cursor | string | string, up to 2000 characters | |
version | integer | The current version of the item. The call fails with VERSION_CONFLICT if it changed. | |
view | string | yes | View id (viw_...) or name |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "views_run",
"arguments": {
"view": "open_deals",
"limit": 50
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_run",
"arguments": {
"view": "open_deals",
"limit": 50
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals/run" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"limit":50}'agentdb views run [options] <view>#views_unpublish
Revoke a published view link immediately. The view and its data stay.
- MCP tool
views_unpublish
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
published_view_id | string | yes | Published view id (pvw_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
published_view_id comes from views_publish or views_published_list.
{
"tool": "views_unpublish",
"arguments": {
"published_view_id": "pvw_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_unpublish",
"arguments": {
"published_view_id": "pvw_example"
}
}
}#views_update
Change a view's name, description, definition or visibility. Needs the current version; the previous definition is kept.
- MCP tool
views_update- REST
PATCH /v1/workspaces/{ws}/views/{view}scope records:write- CLI
agentdb views update
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | yes | The current version of the item. The call fails with VERSION_CONFLICT if it changed. |
name | string | string | |
description | string | null | string | null | |
definition | object | object | |
visibility | "private" | "workspace" | string, one of: private, workspace | |
view | string | yes | View id (viw_...) or name |
idempotency_key | string | Optional retry key ([A-Za-z0-9._:-], max 255). Repeating a call with the same key and arguments returns the original result without writing again. | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
version comes from views_get.
{
"tool": "views_update",
"arguments": {
"view": "open_deals",
"version": 1,
"description": "Deals still open, largest first"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "views_update",
"arguments": {
"view": "open_deals",
"version": 1,
"description": "Deals still open, largest first"
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/views/open_deals" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"version":1,"description":"Deals still open, largest first"}'agentdb views update [options] <view>