> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onlyform.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Schema overview

> Public form types, definition structure, and compatibility rules.

The public form schema is the contract used by form creation, form updates, and the focused block endpoints.

## Form types

| Value            | Status    | Behavior                                                                           |
| ---------------- | --------- | ---------------------------------------------------------------------------------- |
| `MULTI`          | Available | Guided multi-step form. Welcome and ending blocks are normally included.           |
| `SINGLE`         | Available | All fields render on one page. Use `row_id` to group compact adjacent fields.      |
| `CONVERSATIONAL` | Reserved  | Returns `422 UNSUPPORTED_FORM_TYPE` until the conversational renderer is released. |

Pass `type` at the top level when creating a form. Do not send `single_page` or write `definition.settings.singlePage`.

## Definition structure

```json theme={null}
{
  "name": "Contact us",
  "workspace_id": "507f1f77bcf86cd799439012",
  "type": "SINGLE",
  "definition": {
    "blocks": [],
    "settings": {},
    "theme": {}
  }
}
```

| Section    | Update behavior                                                            |
| ---------- | -------------------------------------------------------------------------- |
| `blocks`   | Complete ordered replacement when sent through `PATCH /v1/forms/{formId}`. |
| `settings` | Supplied keys merge into existing settings.                                |
| `theme`    | Supplied top-level keys merge into the existing theme.                     |

Use the focused `/blocks` endpoints when adding, replacing, moving, or deleting blocks without replacing the complete definition.

## Availability labels

Schema pages use these labels:

| Label    | Meaning                                                                                        |
| -------- | ---------------------------------------------------------------------------------------------- |
| Free     | Available on Free and paid plans.                                                              |
| Pro      | Requires the relevant paid-plan capability. A restricted write returns `403 PLAN_RESTRICTION`. |
| Reserved | Included for forward compatibility but not accepted yet.                                       |

<CardGroup cols={2}>
  <Card title="Block types" icon="shapes" href="/schema/block-types">
    Every supported question and content block.
  </Card>

  <Card title="Theme tokens" icon="palette" href="/schema/theme">
    Colors, layout, inputs, buttons, images, and custom CSS.
  </Card>
</CardGroup>
