Features/Forms

Forms

Your agent creates a form. Humans fill it. Agent gets the data.

Updated March 2026

You describe a form as JSON — fields, labels, types, validation. Sutrena gives you back a hosted URL, an embed snippet, and a submit endpoint. Your agent or your code creates forms on the fly. One form or a hundred. Same API call. The pattern: agent creates, human interacts, agent gets data back.

What it does

  • 12 field types — text, email, number, select, multiselect, checkbox, textarea, url, tel, date, file, hidden
  • Compound tools — use sutrena_collect to create a form with notifications in one call
  • Every form gets a public hosted URL at /f/:id — works immediately
  • Embed on any site with two lines of HTML (auto-resizing iframe)
  • File uploads with presigned URLs and per-plan size limits
  • Field validation, required fields, regex patterns, min/max values
  • Conditional field visibility — show/hide fields based on another field's value (showIf)
  • Webhook notifications on submission with HMAC signing
  • Auto-entry pipeline — form submissions auto-create page entries for live walls
  • Duplicate prevention via uniqueBy (e.g. one submission per email)
  • Custom success message, submit button text, redirect URL
  • Max submission limits and form close dates
  • Spam filtering built in

How it works

curl -X POST https://sutrena.com/api/forms \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Beta Signup",
    "fields": [
      {"name": "email", "label": "Email", "type": "email", "required": true},
      {"name": "role", "label": "Role", "type": "select",
       "options": ["Developer", "Designer", "PM", "Other"]},
      {"name": "why", "label": "Why are you interested?", "type": "textarea"}
    ],
    "successMessage": "You are on the list."
  }'

# Returns: submitUrl, hostedFormUrl

One POST. You get a form and a submit endpoint. Style it yourself or use the hosted version.

What it does not do

No visual editor. No drag-and-drop. showIf handles simple conditional visibility (show field B when field A equals X), but there is no multi-branch wizard flow or complex dependency chains. If you need a 40-field form with deeply nested branching paths and payment integration, this is not the tool. If you need a form that works, collects data, and shows the right fields at the right time, it is.

FAQ

Can I use my own HTML form instead of the hosted one?

Yes. Build your own form, style it however you want, and POST JSON to the submitUrl. You keep full design control. The hosted form at /f/:id is just a convenience.

How many forms can I create on the free plan?

10 projects total (forms, pages, analytics, and automations combined), 100 submissions per form. No credit card, no expiry.

Can I update a form after creating it?

Yes. PUT /api/forms/:id with new fields, name, success message, or any other setting. Existing submissions are not affected.

What happens when a form reaches its submission limit?

New submissions get rejected with a clear error. The form still renders but shows the success message. Upgrade to increase the limit or remove it entirely on Pro.

What is Sutrena?

Sutrena is the web runtime for AI agents. Forms, Pages, Analytics, Webhooks, Automations — all through 67 MCP tools and one REST API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Use any one feature or all of them together.

Pages

Deploy HTML instantly

Forms

Collect structured data

Automations

DSL-based pipelines with 14 step types

Analytics

Privacy-first, no cookies

Webhooks

Slack, Discord, Telegram

Get started in two API calls

1. Get a trial key (no auth, no signup)

curl -X POST https://sutrena.com/api/trial

2. Create anything — a page, form, automation, or analytics site

# Create a form
curl -X POST https://sutrena.com/api/forms \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "waitlist", "fields": [{"name": "email", "label": "Email", "type": "email", "required": true}]}'

# Or deploy a page
curl -X POST https://sutrena.com/api/pages \
  -H "Authorization: Bearer st_trial_xxx" \
  -H "Content-Type: application/json" \
  -d '{"slug": "index", "title": "My Site", "html": "<h1>Live</h1>"}'

Ready to build?

Get a trial API key instantly with no signup, or create an account for the full experience.

Forms — API-First Form Backend | Sutrena | Sutrena