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

# Dynamic Fields

> Read custom field definitions and run field-management commands.

| Endpoint                        | Body                | Requires                                                      |
| ------------------------------- | ------------------- | ------------------------------------------------------------- |
| `GET /dynamic-fields`           | —                   | `custom_fields` (view)                                        |
| `POST /dynamic-fields/commands` | `{ type, payload }` | `admin` (edit), plus the tenant's `customFields` feature flag |

`GET /dynamic-fields` returns the tenant's custom field definitions (each with its type, visible
roles, and editable roles — see [Contract Workspace](/guides/contract-workspace#custom-fields)).

`POST /dynamic-fields/commands` is a single command endpoint rather than one route per action.
`type` is one of:

<ParamField body="type" type="string" required>
  `CreateField` | `RenameField` | `UpdateFieldType` | `UpdateFieldOptions` | `DuplicateField` |
  `MoveField` | `ArchiveField`
</ParamField>

<ParamField body="payload" type="object" required>
  Shape depends on `type` — see `@alforse/shared`'s `DynamicFieldBackendCommand` for the
  discriminated union if you're generating requests programmatically.
</ParamField>
