# add_fields

> Add one or more questions/fields to an existing form, optionally at a specific position (0 = first).

_MCP tool "Add fields" · writes data · https://forms.ax/help/tools/add_fields_

## Ask your assistant

- "Add a company size choice field (1-10, 11-50, 50+) after the email field."

Batch-friendly: several fields can be added in one call, positioned anywhere in the form.

## Inputs

- `form_id` (string): Form id (authenticated). From create_form/list_forms.
- `draft_token` (string): Draft token (anonymous drafts, before sign-in). From create_form's draftToken.
- `fields` (array of object, required)
- `fields[].key` (string, required): Stable identifier, lowercase letters/digits/underscores, e.g. 'budget_range'
- `fields[].type` ("short_text" | "long_text" | "email" | "phone" | "number" | "single_choice" | "multi_choice" | "date" | "file_upload" | "signature" | "rating" | "url", required): Field type. There is no password/PIN type — forms.ax never collects credentials.
- `fields[].label` (string, required): What the respondent sees, e.g. 'Describe your project'
- `fields[].description` (string): Optional help text shown under the label
- `fields[].required` (boolean)
- `fields[].options` (array of string): For single_choice/multi_choice: 2+ unique options
- `fields[].min` (number): number/rating lower bound (rating default 1)
- `fields[].max` (number): number/rating upper bound (rating default 5)
- `fields[].adaptive` (object): AI follow-up questions on thin answers (short_text/long_text only)
- `fields[].validation` (object)
- `fields[].page` (string): Page key this field belongs to (multistep forms). Omit for single-page forms or the first page.
- `position` (integer (min 0, max 9007199254740991)): Insert index; end if omitted
