Browse the manual

Form, field and widget tools

Read forms and fields, prepare form changes and work with permitted widgets.

On this page

For: developers connecting an HTTP or MCP client. Start with Agent API and AI clients.

AI is optional. You confirm invoice issuance in Pepper.

Forms and custom fields

These tools need the delegate's Use internal forms permission and current record access.

HTTP method and path MCP tool Scope
GET /api/v1/forms/{id} forms_get forms:read
GET /api/v1/custom-fields fields_schema forms:read
GET /api/v1/custom-fields/{id} fields_get forms:read
POST /api/v1/custom-fields/{id}/merge fields_merge forms:read
POST /api/v1/forms/prepare forms_prepare forms:prepare
GET /api/v1/views/form views_form forms:read
GET /api/v1/views/form_record views_form_record forms:read
GET /api/v1/views/form_submission views_form_submission forms:read

forms_get needs id and type (form, form_record or form_submission). Only form managers receive the public form address.

Custom reads need type, the registered record type. Value and merge reads also need id. Merge needs template, up to 4,000 characters.

fields_schema returns active definitions. Use custom_<key> in ordinary view filters, sorts and columns. Retired or unsupported criteria return 422.

forms_prepare needs operation, payload and an idempotency key. HTTP uses the Idempotency-Key header; MCP uses idempotency_key.

Operation Other inputs and permission
save Complete form definition; record_id and current payload.version for an edit; form management
publish record_id, payload.version, payload.published; form management
submit Internal form record_id, payload.version, payload.values; target permission for customer forms
define Record type, payload.definition; field_id and payload.version for an edit; form management
retire Record type, field_id, payload.version; form management
set Record type, record_id, payload.revision, payload.values; ordinary record write permission
archive Submission record_id, payload: {}; form management; optional type must be form_submission
restore Submission record_id, payload: {}; form management; optional type must be form_submission

Preparation returns written: false, proposed input and review_url. It writes no form, customer, custom value, file or submission.

Open the link in the browser. Review the proposed values or the submission's current state. Use the ordinary Save, Publish form, Submit form, Retire field, Archive or Restore control.

Publish and retire links open the appropriate screen without selecting or executing the action. Check the intended field and state yourself.

Archive and restore links open the permitted submission. The page shows its current state and the available control; opening it changes nothing. Preparation returns no proposed values for these operations. Form management and current record access still apply when you open the link and confirm the action.

The browser rechecks permissions and versions. Prepared input has a 12,000-byte limit. Choose new files in the browser.

Read the forms manual for the complete definition and value limits. Public links are separate from agent connections.

Widgets

Both tools require Manage forms and custom definitions and an active non-guest delegate.

HTTP method and path MCP tool Scope
GET /api/v1/widgets/{id} widgets_get forms:read
POST /api/v1/widgets/prepare widgets_prepare forms:prepare

widgets_get needs id. It returns configuration, the public snippet and load/response counts. It returns no entered values or visitor identity.

widgets_prepare needs payload and an idempotency key. HTTP uses Idempotency-Key; MCP uses idempotency_key.

Payload field Required value
name, type, source_id Name up to 120 characters, form, and a response-form ULID
origins 1–20 exact HTTPS origins; HTTP loopback for local tests
language, theme page or a supported locale; light, dark or page
accent A 6-digit hexadecimal color
show_title, enabled Booleans; proposed values only
version Current widget version for an edit; omit for a new widget

For an edit, also send widget_id. Preparation validates the selected form and settings. Its browser proposal has a 12,000-byte limit.

The result contains written: false, payload and review_url. Open the link, review the preview and save through the ordinary configurator.

Saving closes publication. Enable and publish through the browser after checking the website origins. The agent performs no save or publication action.

Read the widget guide for source restrictions, sign-in and refusal recovery.

Need help with the product?

Contact support