Skip to content

Public forms

The unauthenticated surface a visitor’s browser uses: submit a form, browse its catalogue.

GET /api/v1/public/forms/:tenantSlug/:formSlug/catalogue

Section titled “GET /api/v1/public/forms/:tenantSlug/:formSlug/catalogue”

One page of the records a published catalogue form shows visitors. Only the fields the form lists are returned. Page size is capped at 24.

Auth: None · Path parameters: tenantSlug, formSlug

POST /api/v1/public/forms/:tenantSlug/:formSlug/submissions

Section titled “POST /api/v1/public/forms/:tenantSlug/:formSlug/submissions”

Submit a published form. No authentication. data holds the field values; _t is the time the page rendered (ms since epoch) and _hp is a honeypot that must stay empty or absent. A catalogue form takes _selection (one record id); a cart form takes _cart, 1 to 20 lines of { recordId, quantity }. Prices are never accepted from the client. Rate limited to 10 per minute per IP and form. Each accepted submission counts toward the monthly submission limit.

Auth: None · Path parameters: tenantSlug, formSlug

Request body

{
"data": {
"customer": "Ada King",
"starts_at": "2026-10-12T10:00:00Z"
},
"_t": 1790000000000,
"_selection": "000000000000000000000039"
}

What an invite landing page needs to say who invited you and to what role. Unauthenticated.

Auth: None · Path parameters: token

Redirects (307) to a short-lived signed URL for a published form’s image. Returns 404 once the form is unpublished.

Auth: None · Path parameters: mediaId