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

# Create a field

> Define a custom field for projects, accounts, contacts, or tasks. Set its values through the fields of that record type's create and update operations, keyed by field name or ID. Parley doesn't fill task fields, so their automation is off. Requires the owner or admin role.



## OpenAPI

````yaml https://api.parley.so/openapi.json post /fields
openapi: 3.1.1
info:
  title: Parley API
  version: 1.0.0
  description: >-
    Manage Parley's projects (matters or cases), accounts (client
    organizations), contacts (people), tasks, custom fields, notes, files,
    activity, automations, and skills. Records refer to each other as { type,
    id, name } references; writes take IDs. Errors are { error: { code, message,
    details } }, where code names what went wrong and each operation lists the
    codes it can return. In a query string, write a timestamp's offset as Z or
    %2B, because a raw + arrives as a space. The MCP server at /mcp offers the
    same data as a smaller set of tools.
servers:
  - url: https://api.parley.so/v1
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: >-
      A project is a matter or case: it groups the files, notes, activity, and
      tasks for one engagement, and links to the accounts and contacts it
      involves.
  - name: Accounts
    description: >-
      An account is a client organization. Contacts belong to it, and projects
      link to it.
  - name: Contacts
    description: >-
      A contact is a person, optionally belonging to one account and linked to
      projects.
  - name: Tasks
    description: >-
      A task is a to-do with a status, assignee, and due date, optionally about
      one project, account, or contact.
  - name: Fields
    description: >-
      Custom fields defined for projects, accounts, contacts, or tasks. Records
      carry their values in fields, keyed by field name.
  - name: Notes
    description: >-
      Markdown notes on a project, account, or contact. Updates take the version
      you last read, so concurrent edits fail with 409 VERSION_CONFLICT instead
      of overwriting.
  - name: Files
    description: >-
      Files and folders of a project, account, contact, or intake, or the
      organization's Library. Add a file by creating an upload, PUTting its
      bytes, and adding the upload to a location.
  - name: Activity
    description: >-
      What happened across the organization or on one record: changes, links,
      notes, files, USCIS case updates, and synced emails and meetings. Each
      item's kind says which details it carries.
  - name: Sessions
    description: >-
      Conversations with Parley's assistant, from the web app, Word, Outlook,
      automation runs, and the API. Start one with a message, follow up or steer
      it while it works, and read its replies.
  - name: Automations
    description: >-
      Instructions Parley's assistant carries out on a schedule, as the person
      who created them, with nobody present.
  - name: Skills
    description: >-
      Reusable playbooks for Parley's assistant: a SKILL.md plus optional
      bundled documents, addressed by slug.
  - name: Users
    description: The people in your organization, and the caller.
paths:
  /fields:
    post:
      tags:
        - Fields
      summary: Create a field
      description: >-
        Define a custom field for projects, accounts, contacts, or tasks. Set
        its values through the fields of that record type's create and update
        operations, keyed by field name or ID. Parley doesn't fill task fields,
        so their automation is off. Requires the owner or admin role.
      operationId: createField
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                recordType:
                  enum:
                    - project
                    - account
                    - contact
                    - task
                  type: string
                  description: The kind of record the field belongs to.
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: Field name. Unique among the fields of one record type.
                type:
                  enum:
                    - text
                    - number
                    - boolean
                    - datetime
                    - email
                    - url
                    - address
                    - single_select
                    - collection
                    - user
                  type: string
                  description: >-
                    The field's value type. It can't be changed after the field
                    is created.
                options:
                  type: array
                  maxItems: 100
                  items:
                    type: string
                    minLength: 1
                    maxLength: 200
                  description: >-
                    Option labels, in order. Required for single_select, and not
                    allowed for other types. At most 100.
                automation:
                  enum:
                    - 'off'
                    - suggest
                    - auto
                  type: string
                  description: >-
                    Whether Parley fills the field from emails and documents:
                    off, suggest (proposes values for someone to accept), or
                    auto (sets values directly). Defaults to suggest, or to off
                    for a task field, since Parley doesn't fill task fields.
                automationInstructions:
                  type: string
                  minLength: 1
                  maxLength: 2000
                  description: Guidance Parley follows when it fills the field.
              required:
                - recordType
                - name
                - type
              additionalProperties: false
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Field'
          headers:
            Location:
              description: The URL of the created resource.
              schema:
                type: string
        '400':
          description: The request was invalid. VALIDATION_FAILED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFailedError'
        '401':
          description: Missing or invalid credentials. UNAUTHORIZED.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: You don't have permission. FORBIDDEN.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '409':
          description: The request conflicts with the current state. NAME_TAKEN.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NameTakenError'
        '429':
          description: Too many requests, or a usage limit was reached. TOO_MANY_REQUESTS.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
components:
  schemas:
    Field:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          description: The field ID.
        name:
          type: string
          minLength: 1
          maxLength: 200
          description: Field name. Unique among the fields of one record type.
        recordType:
          enum:
            - project
            - account
            - contact
            - task
          type: string
          description: The kind of record the field belongs to.
        type:
          enum:
            - text
            - long_text
            - number
            - boolean
            - datetime
            - email
            - url
            - address
            - single_select
            - collection
            - user
          type: string
          description: >-
            The field's value type. It can't be changed after the field is
            created.
        options:
          type: array
          items:
            type: string
          description: >-
            Option labels of a single_select field, in order. Empty for other
            types.
        automation:
          enum:
            - 'off'
            - suggest
            - auto
          type: string
          description: >-
            Whether Parley fills the field from emails and documents: off,
            suggest (proposes values for someone to accept), or auto (sets
            values directly).
        automationInstructions:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 2000
              description: Guidance Parley follows when it fills the field.
            - type: 'null'
          description: Guidance Parley follows when it fills the field, or null.
        system:
          type: boolean
          description: >-
            A built-in field. It can't be renamed, reconfigured, or deleted, but
            its values can be set like any other field's.
        readOnly:
          type: boolean
          description: >-
            Parley maintains the field's values, so they can't be set through
            fields on a record.
        createdAt:
          type: string
          format: date-time
          description: When the field was created.
        updatedAt:
          type: string
          format: date-time
          description: >-
            When the field definition was last updated. Setting values on
            records does not change it.
      required:
        - id
        - name
        - recordType
        - type
        - options
        - automation
        - automationInstructions
        - system
        - readOnly
        - createdAt
        - updatedAt
    ValidationFailedError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              const: VALIDATION_FAILED
            message:
              type: string
              examples:
                - The request is invalid.
            details:
              type: object
              properties:
                issues:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
                        description: >-
                          Where the problem is, as a dotted path into the input
                          such as accountIds.add.0 or reminder.remindAt. Empty
                          for the input as a whole.
                      message:
                        type: string
                        description: What is wrong with the value.
                    required:
                      - path
                      - message
                  description: Each problem with the input.
              required:
                - issues
          required:
            - code
            - message
            - details
      required:
        - error
    UnauthorizedError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              const: UNAUTHORIZED
            message:
              type: string
              examples:
                - Missing or invalid credentials.
          required:
            - code
            - message
      required:
        - error
    ForbiddenError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              const: FORBIDDEN
            message:
              type: string
              examples:
                - You don't have permission to do this.
          required:
            - code
            - message
      required:
        - error
    NameTakenError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              const: NAME_TAKEN
            message:
              type: string
              examples:
                - The name is already taken.
          required:
            - code
            - message
      required:
        - error
    TooManyRequestsError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              const: TOO_MANY_REQUESTS
            message:
              type: string
              examples:
                - Too many requests.
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: A Parley API key.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.