Publishing
CMS delivery and revisions, public forms, content dispatch.
Start with: cms_configure, cms_publish, forms_create, forms_submissions, cms_revisions.
29 operations. Discover them from an agent with agentdb_capabilities {"category": "publishing"}.
#cms_configure
Make an object a CMS content type (or change its settings): status/slug/locale fields, the ONLY fields the public delivery API shows (public_fields), delivery off | token (default) | public, CORS origins, cache seconds. Install {template: "cms"} first for pages and posts. Nothing is public until you do this.
- MCP tool
cms_configure- REST
POST /v1/workspaces/{ws}/cms/typesscope schema:write- CLI
agentdb cms configure
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
object | string | yes | Object type name, e.g. contact. |
status_field | string | string, default "status" | |
published_status | string | string, 1–64 characters, default "published" | |
slug_field | string | string, default "slug" | |
locale_field | string | null | string | null, default null | |
translation_relationship | string | null | string | null, default null | |
public_fields | string[] | yes | Fields the public content API may return. (max 100 items) |
delivery | "off" | "token" | "public" | string, one of: off, token, public, default "token" | |
allowed_origins | string[] | null | string[] | null, default null | |
cache_seconds | integer | integer, 0–86400, default 60 | |
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": "cms_configure",
"arguments": {
"object": "cms_post",
"public_fields": [
"title",
"slug",
"body"
],
"delivery": "token"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_configure",
"arguments": {
"object": "cms_post",
"public_fields": [
"title",
"slug",
"body"
],
"delivery": "token"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/types" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"object":"cms_post","public_fields":["title","slug","body"],"delivery":"token"}'agentdb cms configure [options]#cms_diff
Field-by-field diff between two revisions (Markdown bodies line by line); to defaults to the current version.
- MCP tool
cms_diff- REST
GET /v1/workspaces/{ws}/records/{record}/diffscope records:read- CLI
agentdb cms diff
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
from | integer | yes | Revision to compare from. |
to | integer | End of the time range (ISO 8601 date-time with time zone). | |
record_id | string | yes | Record id (rec_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "cms_diff",
"arguments": {
"record_id": "rec_example",
"from": 1,
"to": 2
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_diff",
"arguments": {
"record_id": "rec_example",
"from": 1,
"to": 2
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/diff" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb cms diff [options] <record> <from> [to]#cms_get
One content type's delivery settings and published item count.
- MCP tool
cms_get- REST
GET /v1/workspaces/{ws}/cms/types/{object}scope schema:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
object | string | yes | Object name, e.g. cms_post |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "cms_get",
"arguments": {
"object": "cms_post"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_get",
"arguments": {
"object": "cms_post"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/types/cms_post" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#cms_list
CMS content types and their delivery settings.
- MCP tool
cms_list- REST
GET /v1/workspaces/{ws}/cms/typesscope schema: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": "cms_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/types" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#cms_preview
What the delivery API returns for a type (or one slug), without a token.
- MCP tool
cms_preview- REST
POST /v1/workspaces/{ws}/cms/previewscope records:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
object | string | yes | Object type name, e.g. contact. |
slug | string | string, 1–500 characters | |
locale | string | string, 1–35 characters | |
limit | integer | integer, 1–100, default 20 | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "cms_preview",
"arguments": {
"object": "cms_post",
"slug": "hello-world"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_preview",
"arguments": {
"object": "cms_post",
"slug": "hello-world"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/preview" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"object":"cms_post","slug":"hello-world"}'#cms_publish
Publish an item that is in review (or re-publish a published one with its latest edits): takes the immutable snapshot the delivery API serves. Edits made while published are not delivered until you publish again. An approval policy may require approvals_submit instead.
- MCP tool
cms_publish- REST
POST /v1/workspaces/{ws}/records/{record}/publishscope records:write- CLI
agentdb cms publish
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | The current version of the item. The call fails with VERSION_CONFLICT if it changed. | |
record_id | string | yes | Record id (rec_...) |
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": "cms_publish",
"arguments": {
"record_id": "rec_example",
"version": 2
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_publish",
"arguments": {
"record_id": "rec_example",
"version": 2
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/publish" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"version":2}'agentdb cms publish [options] <record>#cms_restore
Restore the content of an earlier revision as a new version (needs the current version; the status stays).
- MCP tool
cms_restore- REST
POST /v1/workspaces/{ws}/records/{record}/restore-revisionscope records:write- CLI
agentdb cms restore
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
revision | integer | yes | Revision to restore. |
version | integer | yes | The current version of the item. The call fails with VERSION_CONFLICT if it changed. |
record_id | string | yes | Record id (rec_...) |
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 is the record's current version; revision comes from cms_revisions.
{
"tool": "cms_restore",
"arguments": {
"record_id": "rec_example",
"revision": 1,
"version": 3
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_restore",
"arguments": {
"record_id": "rec_example",
"revision": 1,
"version": 3
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/restore-revision" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"revision":1,"version":3}'agentdb cms restore [options] <record> <revision>#cms_revision_get
The full data of one revision.
- MCP tool
cms_revision_get- REST
GET /v1/workspaces/{ws}/records/{record}/revisions/{revision}scope records:read
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
record_id | string | yes | Record id (rec_...) |
revision | integer | yes | Version number |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "cms_revision_get",
"arguments": {
"record_id": "rec_example",
"revision": 1
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_revision_get",
"arguments": {
"record_id": "rec_example",
"revision": 1
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/revisions/1" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#cms_revisions
Every version of a CMS item (newest first) with status, author and which one is published; pending_changes says whether edits are unpublished.
- MCP tool
cms_revisions- REST
GET /v1/workspaces/{ws}/records/{record}/revisionsscope records:read- CLI
agentdb cms revisions
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
limit | integer | integer, 1–100, default 50 | |
before | integer | integer, at least 1 | |
record_id | string | yes | Record id (rec_...) |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "cms_revisions",
"arguments": {
"record_id": "rec_example",
"limit": 10
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_revisions",
"arguments": {
"record_id": "rec_example",
"limit": 10
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/revisions" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb cms revisions [options] <record>#cms_schedule_publish
Publish an item at a future time (a one-off scheduler job; owners/admins). The item must then be in a status that may move to published (e.g. in_review).
- MCP tool
cms_schedule_publish- REST
POST /v1/workspaces/{ws}/records/{record}/schedule-publishscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
at | string | yes | When to publish (ISO 8601 date-time). |
record_id | string | yes | Record id (rec_...) |
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": "cms_schedule_publish",
"arguments": {
"record_id": "rec_example",
"at": "2026-12-01T08:00:00Z"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_schedule_publish",
"arguments": {
"record_id": "rec_example",
"at": "2026-12-01T08:00:00Z"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/schedule-publish" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"at":"2026-12-01T08:00:00Z"}'#cms_tokens_create
Create a read-only delivery token for websites (optionally limited to types, origins, an expiry). Shown once; stored as SHA-256.
- MCP tool
cms_tokens_create- REST
POST /v1/workspaces/{ws}/cms/delivery-tokensscope schema:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
label | string | yes | A name for this item, shown in lists. (min length 1, max length 100) |
types | string[] | string[], up to 50 items | |
expires_in_days | integer | integer, 1–3650 | |
allowed_origins | string[] | string[], up to 20 items | |
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": "cms_tokens_create",
"arguments": {
"label": "Website",
"types": [
"cms_post"
],
"expires_in_days": 90
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_tokens_create",
"arguments": {
"label": "Website",
"types": [
"cms_post"
],
"expires_in_days": 90
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/delivery-tokens" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"label":"Website","types":["cms_post"],"expires_in_days":90}'#cms_tokens_list
Delivery tokens (never the secret) with status and last use.
- MCP tool
cms_tokens_list- REST
GET /v1/workspaces/{ws}/cms/delivery-tokensscope schema: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": "cms_tokens_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_tokens_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/delivery-tokens" \
-H "Authorization: Bearer $AGENTDB_TOKEN"#cms_tokens_revoke
Revoke a delivery token at once.
- MCP tool
cms_tokens_revoke- REST
DELETE /v1/workspaces/{ws}/cms/delivery-tokens/{token}scope schema:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
token_id | string | yes | Token id (dtk_...) |
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": "cms_tokens_revoke",
"arguments": {
"token_id": "dtk_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_tokens_revoke",
"arguments": {
"token_id": "dtk_example"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/delivery-tokens/dtk_example" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'#cms_unconfigure
Stop treating an object as a content type: nothing of it is delivered any more. Records and revisions stay.
- MCP tool
cms_unconfigure- REST
DELETE /v1/workspaces/{ws}/cms/types/{object}scope schema:write- CLI
agentdb cms unconfigure
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
object | string | yes | Object 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": "cms_unconfigure",
"arguments": {
"object": "cms_post"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_unconfigure",
"arguments": {
"object": "cms_post"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/cms/types/cms_post" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb cms unconfigure [options] <object>#cms_unpublish
Take an item offline by moving it to another status (default archived); the snapshot is removed at once.
- MCP tool
cms_unpublish- REST
POST /v1/workspaces/{ws}/records/{record}/unpublishscope records:write- CLI
agentdb cms unpublish
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | The current version of the item. The call fails with VERSION_CONFLICT if it changed. | |
status | string | string, 1–64 characters, default "archived" | |
record_id | string | yes | Record id (rec_...) |
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": "cms_unpublish",
"arguments": {
"record_id": "rec_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "cms_unpublish",
"arguments": {
"record_id": "rec_example"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/unpublish" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb cms unpublish [options] <record>#content_dispatch
Hand a content post to the operator's outbound publisher. Off by default (FEATURE_DISABLED): AgentDB never posts to social networks itself. Experimental: may change before 2.0.
Experimental: may change before 2.0. Outbound content adapters are off by default and none is approved yet.
- MCP tool
content_dispatch- REST
POST /v1/workspaces/{ws}/records/{record}/dispatchscope records:write- CLI
agentdb content dispatch
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_field | string | string, up to 64 characters, default "channel" | |
record_id | string | yes | Record id (rec_...) |
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": "content_dispatch",
"arguments": {
"record_id": "rec_example"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "content_dispatch",
"arguments": {
"record_id": "rec_example"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/records/rec_example/dispatch" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb content dispatch [options] <record>#delivery.asset
An asset of a published item (re-checked on every download)
- REST
GET /v1/delivery-assets/{ws}/{file}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
file | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/v1/delivery-assets/$AGENTDB_WORKSPACE/<file>"#delivery.get
One published item by slug (?locale=)
- REST
GET /v1/delivery/{ws}/{type}/{slug}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
type | path | string | yes | string |
slug | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/v1/delivery/$AGENTDB_WORKSPACE/<type>/<slug>"#delivery.list
Published items of a CMS content type (delivery token or public type; ETag, CORS)
- REST
GET /v1/delivery/{ws}/{type}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
type | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/v1/delivery/$AGENTDB_WORKSPACE/<type>"#forms.public.get
A public form's inputs and a single-use ticket
- REST
GET /v1/forms/{ws}/{token}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
token | path | string | yes | string |
Example
curl -s "https://app.agentdb.link/v1/forms/$AGENTDB_WORKSPACE/<token>"#forms.public.submit
Submit a public form (application/json; ticket, honeypot, rate limits)
- REST
POST /v1/forms/{ws}/{token}no authentication
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ws | path | string | yes | string |
token | path | string | yes | string |
Example
curl -s -X POST "https://app.agentdb.link/v1/forms/$AGENTDB_WORKSPACE/<token>"#forms_create
Create a public form that creates records of one object: inputs mapped to fields (validated by the field types), fixed values, honeypot, minimum fill time, optional proof of work, size and rate limits, allowed origins, spam quarantine, inbox notifications. Returns the form token once (the public URL is /v1/forms/<workspace>/<token>). Install {template: "forms"} for a ready inquiry object.
- MCP tool
forms_create- REST
POST /v1/workspaces/{ws}/formsscope schema:write- CLI
agentdb forms create
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
name | string | yes | Form name: lowercase letters, digits and _. |
object | string | yes | Object type the form creates records in. |
status | "active" | "closed" | string, one of: active, closed, default "active" | |
title | string | yes | Title shown to people. (min length 1, max length 200) |
description | string | string, up to 2000 characters | |
fields | object[] | yes | The form's fields, in order. (max 50 items) |
files | object[] | object[], up to 5 items, default [] | |
fixed_values | object | object, default {} | |
honeypot | string | string, default "website" | |
min_fill_seconds | integer | integer, 0–3600, default 3 | |
challenge | "none" | "proof_of_work" | string, one of: none, proof_of_work, default "none" | |
pow_difficulty | integer | integer, 8–24, default 16 | |
max_bytes | integer | integer, 512–65536, default 16384 | |
allowed_origins | string[] | null | string[] | null, default null | |
rate_limits | object | object, default {} | |
spam | object | object, default {} | |
max_quarantined | integer | integer, 1–10000, default 500 | |
notify | string[] | string[], up to 10 items, default [] | |
auto_reply | object | object | |
success_message | string | string, up to 500 characters, default "Thank you. We received your message." | |
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": "forms_create",
"arguments": {
"name": "contact_us",
"object": "lead",
"title": "Contact us",
"fields": [
{
"name": "email",
"field": "email",
"label": "Email",
"required": true
},
{
"name": "message",
"field": "message",
"label": "Message",
"max_length": 2000
}
]
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_create",
"arguments": {
"name": "contact_us",
"object": "lead",
"title": "Contact us",
"fields": [
{
"name": "email",
"field": "email",
"label": "Email",
"required": true
},
{
"name": "message",
"field": "message",
"label": "Message",
"max_length": 2000
}
]
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/forms" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"contact_us","object":"lead","title":"Contact us","fields":[{"name":"email","field":"email","label":"Email","required":true},{"name":"message","field":"message","label":"Message","max_length":2000}]}'agentdb forms create [options]#forms_delete
Delete a form and its submission log; records it created stay.
- MCP tool
forms_delete- REST
DELETE /v1/workspaces/{ws}/forms/{form}scope schema:write- CLI
agentdb forms delete
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
form | string | yes | Form id (frm_...) 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": "forms_delete",
"arguments": {
"form": "contact_us"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_delete",
"arguments": {
"form": "contact_us"
}
}
}curl -s -X DELETE "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/forms/contact_us" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb forms delete [options] <form>#forms_get
One form and its versions.
- MCP tool
forms_get- REST
GET /v1/workspaces/{ws}/forms/{form}scope schema:read- CLI
agentdb forms get
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
form | string | yes | Form id (frm_...) or name |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "forms_get",
"arguments": {
"form": "contact_us"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_get",
"arguments": {
"form": "contact_us"
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/forms/contact_us" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb forms get [options] <form>#forms_list
Forms with their definitions and submission counts (never the token).
- MCP tool
forms_list- REST
GET /v1/workspaces/{ws}/formsscope schema:read- CLI
agentdb forms 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": "forms_list",
"arguments": {}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_list",
"arguments": {}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/forms" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb forms list [options]#forms_review
Release a quarantined submission (creates its record) or discard it (erases its data).
- MCP tool
forms_review- REST
POST /v1/workspaces/{ws}/form-submissions/{submission}/reviewscope records:write
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
decision | "release" | "discard" | yes | release keeps the submission; discard removes it. |
comment | string | string, up to 2000 characters | |
submission_id | string | yes | Submission id (fsb_...) |
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
submission_id comes from forms_submissions.
{
"tool": "forms_review",
"arguments": {
"submission_id": "fsb_example",
"decision": "release",
"comment": "Not spam."
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_review",
"arguments": {
"submission_id": "fsb_example",
"decision": "release",
"comment": "Not spam."
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/form-submissions/fsb_example/review" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"decision":"release","comment":"Not spam."}'#forms_rotate_token
Give a form a new public token; the old link stops working at once.
- MCP tool
forms_rotate_token- REST
POST /v1/workspaces/{ws}/forms/{form}/rotate-tokenscope schema:write- CLI
agentdb forms rotate-token
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
form | string | yes | Form id (frm_...) 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": "forms_rotate_token",
"arguments": {
"form": "contact_us"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_rotate_token",
"arguments": {
"form": "contact_us"
}
}
}curl -s -X POST "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/forms/contact_us/rotate-token" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'agentdb forms rotate-token [options] <form>#forms_submissions
Submission log (newest first): accepted (with record_id), quarantined (with the untrusted data to review), released, discarded.
- MCP tool
forms_submissions- REST
GET /v1/workspaces/{ws}/form-submissionsscope records:read- CLI
agentdb forms submissions
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
form | string | string, up to 100 characters | |
status | "accepted" | "quarantined" | "released" | "discarded" | string, one of: accepted, quarantined, released, discarded | |
limit | integer | integer, 1–200, default 50 | |
after | string | string, up to 64 characters | |
workspace | string | Workspace id (preferred), slug or exact name. Omit for the default workspace. Resolve names once with workspace_select. |
Example
{
"tool": "forms_submissions",
"arguments": {
"form": "contact_us",
"status": "quarantined",
"limit": 20
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_submissions",
"arguments": {
"form": "contact_us",
"status": "quarantined",
"limit": 20
}
}
}curl -s "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/form-submissions" \
-H "Authorization: Bearer $AGENTDB_TOKEN"agentdb forms submissions [options]#forms_update
Change parts of a form's definition or close it (status: closed). Needs the current version; each change is a new version.
- MCP tool
forms_update- REST
PATCH /v1/workspaces/{ws}/forms/{form}scope schema:write- CLI
agentdb forms update
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
version | integer | yes | The current version of the item. The call fails with VERSION_CONFLICT if it changed. |
status | "active" | "closed" | string, one of: active, closed | |
form | string | yes | Form id (frm_...) 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": "forms_update",
"arguments": {
"form": "contact_us",
"version": 1,
"status": "closed"
}
}{
"tool": "agentdb_execute",
"arguments": {
"operation": "forms_update",
"arguments": {
"form": "contact_us",
"version": 1,
"status": "closed"
}
}
}curl -s -X PATCH "https://app.agentdb.link/v1/workspaces/$AGENTDB_WORKSPACE/forms/contact_us" \
-H "Authorization: Bearer $AGENTDB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"version":1,"status":"closed"}'agentdb forms update [options] <form>