Skip to content

graft forms

Build internal and public forms, publish them and manage their images.

Command Does
graft forms carousel-set Replace the form’s image carousel (currently one image).
graft forms create Create a form: a named, ordered subset of an entity’s fields.
graft forms delete Delete a form.
graft forms get One form with its fields and modes.
graft forms list List forms.
graft forms media confirm Step two: confirm the upload and add the slide.
graft forms media create Step one of a carousel image upload; same two-call pattern as record images.
graft forms media delete Remove the image from the carousel.
graft forms publish Publish a public form at /f/{tenantSlug}/{slug}.
graft forms unpublish Take a form offline; its images go dark with it.
graft forms update Change a form.

Replace the form’s image carousel (currently one image). Owner or admin only; a member gets 403 FORBIDDEN.

Endpoint: PUT /api/v1/forms/:formId/carousel · Arguments: <formId>

Terminal window
graft forms carousel-set <formId> -d '{"images":[{"mediaId":"000000000000000000000abc","alt":"Our boats"}]}'

Create a form: a named, ordered subset of an entity’s fields. visibility is internal or public. Optional modes: catalogue (visitors browse records), booking (a submission becomes an order against real capacity), payment, and content blocks. A public form is free to draft and counts against the active-form limit when published. Owner or admin only; a member gets 403 FORBIDDEN.

Endpoint: POST /api/v1/forms

Terminal window
graft forms create -d '{"entityId":"000000000000000000000015","name":"Book a boat","slug":"book-a-boat","visibility":"public","fields":[{"key":"customer"},{"key":"starts_at"}]}'

Delete a form. Owner or admin only; a member gets 403 FORBIDDEN.

Endpoint: DELETE /api/v1/forms/:formId · Arguments: <formId>

Terminal window
graft forms delete <formId>

Asks for confirmation; pass --yes to skip it (required in scripts).

One form with its fields and modes.

Endpoint: GET /api/v1/forms/:formId · Arguments: <formId>

Terminal window
graft forms get <formId>

List forms. Cursor-paginated: pass limit (default 25, max 100) and cursor from the previous response’s meta.cursor.

Endpoint: GET /api/v1/forms

Terminal window
graft forms list

Add --all to fetch every page.

graft forms media confirm <formId> <mediaId>

Section titled “graft forms media confirm <formId> <mediaId>”

Step two: confirm the upload and add the slide.

Endpoint: POST /api/v1/forms/:formId/media/:mediaId · Arguments: <formId>, <mediaId>

Terminal window
graft forms media confirm <formId> <mediaId>

Step one of a carousel image upload; same two-call pattern as record images.

Endpoint: POST /api/v1/forms/:formId/media · Arguments: <formId>

Terminal window
graft forms media create <formId> -d '{"contentType":"image/jpeg","sizeBytes":90211}'

graft forms media delete <formId> <mediaId>

Section titled “graft forms media delete <formId> <mediaId>”

Remove the image from the carousel.

Endpoint: DELETE /api/v1/forms/:formId/media/:mediaId · Arguments: <formId>, <mediaId>

Terminal window
graft forms media delete <formId> <mediaId>

Asks for confirmation; pass --yes to skip it (required in scripts).

Publish a public form at /f/{tenantSlug}/{slug}. Reserves active-form quota. Owner or admin only; a member gets 403 FORBIDDEN.

Endpoint: POST /api/v1/forms/:formId/publish · Arguments: <formId>

Terminal window
graft forms publish <formId>

Take a form offline; its images go dark with it. Owner or admin only; a member gets 403 FORBIDDEN.

Endpoint: POST /api/v1/forms/:formId/unpublish · Arguments: <formId>

Terminal window
graft forms unpublish <formId>

Change a form. enabled: false is the kill switch and outranks published. Owner or admin only; a member gets 403 FORBIDDEN.

Endpoint: PATCH /api/v1/forms/:formId · Arguments: <formId>

Terminal window
graft forms update <formId> -d '{"name":"Book a boat today"}'