---
title: "Create Document Fields"
method: POST
path: "/public/v1/documents/{id}/fields"
tags: ["Document Fields"]
---

# Create Document Fields

`POST /public/v1/documents/{id}/fields`

Creates fields for a particular document.
For CFR11-compliant workspaces (21 CFR Part 11), 
signature fields must have a minimum size of 108×33.

## Path parameters

- `id` string, required

## Request body

- CreateDocumentFieldsRequest
  - `fields` DocumentFieldsFieldCreate[] — An array of fields to place on a document.
    - `field_id` string — Optional unique identifier.
    - `merge_field` string — Use this to dynamically populate this field with data from your CRM or API. Supported field types: * text * checkbox * date * dropdown * radio_buttons
    - `type` 'checkbox' | 'collect_file' | 'date' | 'dropdown' | 'initials' | 'payment_details' | 'radio_buttons' | 'signature' | 'stamp' | 'text', required
    - `assigned_to` string — Optional uuid of a recipient.
    - `settings` DocumentFieldSettingsCreate — Field configuration. The available properties depend on the field `type`.
      - `required` boolean — Whether the recipient must complete the field.
      - `placeholder` string — Placeholder text shown in the field. Applies to text, date, dropdown, payment, and collected file fields.
      - `masked` boolean — Hide the entered value behind a mask. Applies to text and date fields.
      - `multiline` boolean — Allow the value to span multiple lines. Applies to text fields.
      - `show_values` boolean — Show the option values next to the radio buttons. Applies to `radio_buttons` fields. Set to `false` to hide the values.
      - `options` DocumentFieldOptionCreate[] — Selectable options. Applies to `radio_buttons` and `dropdown` fields. For `radio_buttons`, include a `position` for each option to place it on the page.
        - `text` string, required — Option label.
        - `position` object — Option position relative to the field. Used by `radio_buttons` fields.
          - `offset_x` number
          - `offset_y` number
    - `layout` DocumentFieldsLayout, required
      - `page` integer, required
      - `position` object, required
        - `offset_x` number, required
        - `offset_y` number, required
        - `anchor_point` 'topleft' | 'topright' | 'bottomleft' | 'bottomright', required
      - `style` object, required
        - `width` integer, required
        - `height` integer, required

## Response `200`

OK

- CreateDocumentFieldsResponse
  - `fields` DocumentFieldsField[]
    - `uuid` string, uuid
    - `name` string
    - `title` string
    - `value` unknown
    - `is_filled` boolean
    - `field_id` string
    - `type` 'checkbox' | 'collect_file' | 'date' | 'dropdown' | 'initials' | 'payment_details' | 'radio_buttons' | 'signature' | 'stamp' | 'text'
    - `placeholder` string
    - `assigned_to` object
      - `id` string
      - `first_name` string
      - `last_name` string
      - `email` string
      - `phone` string
      - `recipient_type` string
      - `has_completed` boolean
      - `signing_order` unknown
      - `delivery_methods` unknown
      - `redirect` unknown
      - `type` string
    - `layout` DocumentFieldsLayout
      - `page` integer, required
      - `position` object, required
        - `offset_x` number, required
        - `offset_y` number, required
        - `anchor_point` 'topleft' | 'topright' | 'bottomleft' | 'bottomright', required
      - `style` object, required
        - `width` integer, required
        - `height` integer, required
    - `section_uuid` string, uuid

## Other responses

- `400` — Bad Request
- `401` — Authentication error
- `404` — Not found
- `423` — Document is locked for editing
- `429` — Too Many Requests

---

[API](https://skmtc.net/pandadoc/apis/pandadoc-public-api.md) · [All operations](https://skmtc.net/pandadoc/apis/pandadoc-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pandadoc/pandadoc-public-api/versions/0c2b70be3fb0/schema)
