Skip to content

Form Configuration

Formerie form configuration is server-managed. Public frontends submit values; they do not control delivery, providers, recipients, templates, or validation rules.

Example Shape

JSON
{
  "enabled": true,
  "formHandle": "contact",
  "schemaId": "example:contact",
  "workspaceHandle": "example.com",
  "metadata": {
    "label": "Contact Form",
    "schemaVersion": "1.0.0"
  },
  "allowedOrigins": ["https://example.com"],
  "verification": {
    "provider": "turnstile",
    "required": true
  },
  "fields": {
    "contact": {
      "type": "object",
      "fields": {
        "name": {
          "type": "string",
          "required": true,
          "max": 120,
          "trim": true
        },
        "email": {
          "type": "email",
          "required": true,
          "max": 254,
          "trim": true,
          "normalizeEmail": true
        }
      }
    },
    "message": {
      "type": "textarea",
      "required": true,
      "max": 5000,
      "trim": true
    }
  }
}

Public Schema Projection

The public schema endpoint exposes only frontend-safe configuration:

  • field labels and types
  • required flags
  • validation hints
  • public metadata
  • verification provider requirement
  • step definitions for multi-step forms

It does not expose recipients, provider credentials, fallback providers, delivery rules, email templates, allowed origins, rate-limit rules, or non-public operational metadata.

Human Verification

Forms can require a verification provider. Clients submit the provider token as verificationToken.