PandaDoc Document Fields API

Operations for retrieving and updating field values within a document, such as text fields, checkboxes, signatures, and date fields.

OpenAPI Specification

pandadoc-document-fields-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: PandaDoc REST API Logs Document Fields API
  description: The PandaDoc REST API provides programmatic access to PandaDoc's document automation platform, enabling developers to create, send, track, and manage documents within their own applications. The API supports the full document lifecycle including generating documents from templates with dynamic data, collecting e-signatures, managing recipients, and tracking document status. Authentication is handled via API keys or OAuth 2.0, and a free sandbox environment is available for testing integrations before moving to production. An active Enterprise plan is required to access the production API.
  version: 7.18.0
  contact:
    name: PandaDoc API Support
    url: https://developers.pandadoc.com/
    email: api-track@pandadoc.com
  termsOfService: https://www.pandadoc.com/master-services-agreement/
servers:
- url: https://api.pandadoc.com/public/v1
  description: Production Server
security:
- apiKey: []
- oauth2: []
tags:
- name: Document Fields
  description: Operations for retrieving and updating field values within a document, such as text fields, checkboxes, signatures, and date fields.
paths:
  /documents/{id}/fields:
    get:
      operationId: listDocumentFields
      summary: List Document Fields
      description: Returns all fields defined in a document, including their identifiers, types, values, roles, and positions. Supports filtering by field type and recipient role.
      tags:
      - Document Fields
      parameters:
      - $ref: '#/components/parameters/DocumentId'
      responses:
        '200':
          description: List of document fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentFieldsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    patch:
      operationId: updateDocumentFields
      summary: Update Document Fields
      description: Updates the values of one or more fields in a document that is in draft status. Supports updating text fields, checkboxes, dropdowns, dates, and other field types by name.
      tags:
      - Document Fields
      parameters:
      - $ref: '#/components/parameters/DocumentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentFieldsUpdateRequest'
      responses:
        '200':
          description: Fields updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentFieldsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    DocumentFieldsResponse:
      type: object
      description: Fields contained in a document.
      properties:
        fields:
          type: array
          description: List of document fields.
          items:
            $ref: '#/components/schemas/DocumentField'
    DocumentFieldsUpdateRequest:
      type: object
      description: Request to update field values within a document.
      properties:
        fields:
          type: array
          description: List of field name-value pairs to update.
          items:
            type: object
            properties:
              name:
                type: string
                description: Field name to update.
              value:
                description: New value to assign to the field.
    ErrorResponse:
      type: object
      description: Standard error response body.
      properties:
        type:
          type: string
          description: Error type identifier.
        detail:
          type: string
          description: Human-readable description of the error.
    DocumentField:
      type: object
      description: A field within a document, such as a signature, text, or checkbox field.
      properties:
        name:
          type: string
          description: Field name as defined in the template.
        type:
          type: string
          description: Field type identifier.
          enum:
          - signature
          - initials
          - text
          - date
          - checkbox
          - radio
          - select
          - attachment
          - payment
        value:
          description: Current value assigned to the field.
        role:
          type: string
          description: Role name of the recipient assigned to complete this field.
        required:
          type: boolean
          description: Whether the field must be completed before the document can be finalized.
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: The request was malformed or contained invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded. Retry after the indicated delay.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    DocumentId:
      name: id
      in: path
      required: true
      description: Unique identifier of the document.
      schema:
        type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API Key authentication. Include the key in the Authorization header as "API-Key YOUR_API_KEY". Generate keys from the PandaDoc Developer Dashboard.
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication. Use the authorization code flow to obtain user-scoped access tokens. Tokens expire after approximately one year.
      flows:
        authorizationCode:
          authorizationUrl: https://app.pandadoc.com/oauth2/authorize
          tokenUrl: https://api.pandadoc.com/oauth2/access_token
          scopes:
            read: Read access to documents, templates, contacts, and workspace data.
            write: Write access to create and modify documents, templates, and contacts.
externalDocs:
  description: PandaDoc API Reference
  url: https://developers.pandadoc.com/reference/about