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

# Update a group custom field

> Updates a group custom field for an entity type.



## OpenAPI

````yaml /schemas/2025-06-09.json patch /v1/groups/{groupId}/custom-fields/{entityType}/{customFieldName}
openapi: 3.1.0
info:
  title: Folk External API
  description: >-
    Folk's public REST API lets you manage workspaces, groups, contacts, and
    real-time triggers.
  version: '2025-06-09'
  contact:
    name: folk
    email: tech@folk.app
    url: https://folk.app
servers:
  - url: https://api.folk.app
    description: Folk's public API production base URL.
    x-internal: false
security: []
tags:
  - name: Companies
    description: Operations related to companies.
  - name: Deals
    description: Operations related to deals.
  - name: Groups
    description: Operations related to groups.
  - name: Group members
    description: Operations related to group members.
  - name: Group custom fields
    description: Operations related to group custom fields.
  - name: Interactions
    description: Operations related to interactions.
  - name: Notes
    description: Operations related to notes.
  - name: People
    description: Operations related to people.
  - name: Reminders
    description: Operations related to reminders.
  - name: Tasks
    description: Operations related to tasks.
  - name: Users
    description: Operations related to users.
  - name: Webhooks
    description: Operations related to webhooks.
paths:
  /v1/groups/{groupId}/custom-fields/{entityType}/{customFieldName}:
    patch:
      tags:
        - Group custom fields
      summary: Update a group custom field
      description: Updates a group custom field for an entity type.
      operationId: updateGroupCustomField
      parameters:
        - schema:
            type: string
            minLength: 40
            maxLength: 40
          required: true
          description: >-
            The identifier of the group. You can retrieve a list of group
            identifiers using the `/v1/groups` endpoint.
          example: grp_bc984b3f-0386-434d-82d7-a91eb6badd71
          name: groupId
          in: path
        - schema:
            type: string
            maxLength: 500
          required: true
          description: >-
            The entity type the custom fields belong to. It can be `person`,
            `company`, or a custom object name.
          example: person
          name: entityType
          in: path
        - schema:
            type: string
            maxLength: 500
          required: true
          description: The custom field name to update.
          example: Status
          name: customFieldName
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 500
                config:
                  oneOf:
                    - type: object
                      properties:
                        decimals:
                          type: integer
                          minimum: 0
                          maximum: 5
                        format:
                          type: string
                          enum:
                            - currency
                        currency:
                          type: string
                          minLength: 3
                          maxLength: 3
                          description: Country code currency
                          example: EUR
                      required:
                        - format
                        - currency
                      additionalProperties: false
                    - type: object
                      properties:
                        decimals:
                          type: integer
                          minimum: 0
                          maximum: 5
                        format:
                          type: string
                          enum:
                            - none
                      required:
                        - format
                      additionalProperties: false
                    - type: object
                      properties:
                        decimals:
                          type: integer
                          minimum: 0
                          maximum: 5
                        format:
                          type: string
                          enum:
                            - default
                      required:
                        - format
                      additionalProperties: false
                    - type: object
                      properties:
                        decimals:
                          type: integer
                          minimum: 0
                          maximum: 5
                        format:
                          type: string
                          enum:
                            - number
                      required:
                        - format
                      additionalProperties: false
                    - type: object
                      properties:
                        decimals:
                          type: integer
                          minimum: 0
                          maximum: 5
                        format:
                          type: string
                          enum:
                            - percent
                      required:
                        - format
                      additionalProperties: false
                addOptions:
                  type: array
                  items:
                    type: object
                    properties:
                      label:
                        type: string
                        minLength: 1
                        maxLength: 100
                      color:
                        type: string
                        enum:
                          - '#5738ff'
                          - '#20cea9'
                          - '#f54e50'
                          - '#f2b934'
                          - '#879aab'
                          - '#de4a96'
                          - '#4a90e2'
                          - '#f5a623'
                        description: >-
                          The option color. Must be one of the fixed set of hex
                          colors.
                        example: '#5738ff'
                    required:
                      - label
                      - color
                    additionalProperties: false
                  minItems: 1
                  maxItems: 100
                  description: Array of options to add if no duplicated a found.
                removeOptions:
                  type: array
                  items:
                    type: string
                    minLength: 41
                    maxLength: 41
                  minItems: 1
                  maxItems: 100
                  description: >-
                    Array of option IDs to remove. All data associated to
                    contacts will be removed.
                updateOptions:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 41
                        maxLength: 41
                      label:
                        type: string
                        minLength: 1
                        maxLength: 100
                      color:
                        type: string
                        enum:
                          - '#5738ff'
                          - '#20cea9'
                          - '#f54e50'
                          - '#f2b934'
                          - '#879aab'
                          - '#de4a96'
                          - '#4a90e2'
                          - '#f5a623'
                        description: >-
                          The option color. Must be one of the fixed set of hex
                          colors.
                        example: '#5738ff'
                    required:
                      - id
                    additionalProperties: false
                  minItems: 1
                  maxItems: 100
                  description: Array of options to update based on their ID.
              additionalProperties: false
      responses:
        '200':
          description: The updated group custom field.
          links:
            getGroupCustomField:
              operationId: getGroupCustomField
              parameters:
                taskId: $response.body#/data/name
              description: >-
                This custom field name can be used as an input to the `GET
                /v1/groups/:groupId/custom-fields/:entityType/:groupCustomFieldName`
                operation to retrieve the custom field.
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      item:
                        $ref: '#/components/schemas/GroupCustomField'
                      nextLink:
                        type: string
                        description: >-
                          The link to use after a custom field name has been
                          updated.
                    required:
                      - item
                      - nextLink
                    example:
                      item:
                        name: Status
                        type: singleSelect
                        options:
                          - id: gcfo_bc984b3f-0386-434d-82d7-a91eb6badd71
                            label: Active
                            color: '#ffffff'
                          - id: gcfo_28cf7f0a-fb0a-4b6b-9d47-3f5f2e3f1a3f
                            label: Inactive
                            color: '#000000'
                      nextLink: >-
                        https://api.folk.app/groups/grp_bc984b3f-0386-434d-82d7-a91eb6badd71/custom-fields/person/Newname
                  deprecations:
                    type: array
                    items:
                      type: string
                    example:
                      - This field is deprecated
                required:
                  - data
              example:
                data:
                  item:
                    name: Status
                    type: singleSelect
                    options:
                      - id: gcfo_bc984b3f-0386-434d-82d7-a91eb6badd71
                        label: Active
                        color: '#ffffff'
                      - id: gcfo_28cf7f0a-fb0a-4b6b-9d47-3f5f2e3f1a3f
                        label: Inactive
                        color: '#000000'
                  nextLink: >-
                    https://api.folk.app/groups/grp_bc984b3f-0386-434d-82d7-a91eb6badd71/custom-fields/person/Newname
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - bearerApiKeyAuth: []
components:
  headers:
    X-RateLimit-Limit:
      schema:
        type: integer
        example: 1000
      description: >-
        The maximum number of requests that you can make in the current rate
        limit window.
    X-RateLimit-Remaining:
      schema:
        type: integer
        example: 998
      description: The number of requests remaining in the current rate limit window.
    X-RateLimit-Reset:
      schema:
        type: integer
        example: 1747322958
      description: >-
        The time at which the current rate limit window resets, in UTC epoch
        seconds.
    Retry-After:
      schema:
        type: integer
        example: 60
      description: >-
        The number of seconds to wait before making a new request after hitting
        the rate limit.
  schemas:
    GroupCustomField:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          enum:
            - multipleSelect
            - userField
            - contactField
            - objectField
            - singleSelect
            - textField
            - dateField
            - numericField
        options:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              label:
                type: string
              color:
                type: string
            required:
              - id
              - label
              - color
        config:
          type: object
          properties:
            format:
              type: string
              enum:
                - default
                - percent
                - currency
                - none
                - number
            currency:
              type: string
            decimals:
              type: number
      required:
        - name
        - type
      description: A group custom field.
      example:
        name: Status
        type: singleSelect
        options:
          - id: gcfo_bc984b3f-0386-434d-82d7-a91eb6badd71
            label: Active
            color: '#ffffff'
          - id: gcfo_28cf7f0a-fb0a-4b6b-9d47-3f5f2e3f1a3f
            label: Inactive
            color: '#000000'
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: RATE_LIMIT_EXCEEDED
            message:
              type: string
              example: You have exceeded your rate limit.
            documentationUrl:
              type: string
              format: uri
              example: https://developer.folk.app/api-reference/errors#rate-limiting
            requestId:
              type: string
              format: uuid
              example: 123e4567-e89b-12d3-a456-426614174000
            timestamp:
              type: string
              format: date-time
              example: '2025-10-01T12:00:00Z'
            details:
              type: object
              additionalProperties: true
              example:
                limit: 1000
                remaining: 0
                retryAfter: '2025-10-01T12:00:00Z'
          required:
            - code
            - message
            - documentationUrl
            - requestId
            - timestamp
      required:
        - error
      description: Error response containing error details.
  responses:
    BadRequest:
      description: The request was unacceptable, often due to missing an invalid parameter.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_REQUEST
              message: The request was invalid.
              documentationUrl: https://developer.folk.app/api-reference/errors#bad-request
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
    Unauthorized:
      description: No valid API key provided.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHORIZED
              message: No valid API key provided.
              documentationUrl: https://developer.folk.app/api-reference/errors#unauthorized
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
    Forbidden:
      description: The API key doesn’t have permissions to perform the request.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: FORBIDDEN
              message: The API key doesn’t have permissions to perform the request.
              documentationUrl: https://developer.folk.app/api-reference/errors#forbidden
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
    NotFound:
      description: The requested resource doesn’t exist.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RESOURCE_NOT_FOUND
              message: The requested resource was not found.
              documentationUrl: https://developer.folk.app/api-reference/errors#not-found
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
    UnprocessableEntity:
      description: >-
        The request was unacceptable, often due to missing or invalid
        parameters.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNPROCESSABLE_ENTITY
              message: Invalid query parameters
              documentationUrl: >-
                https://developer.folk.app/api-reference/errors#unprocessable-entity
              details:
                issues:
                  - code: too_small
                    minimum: 1
                    type: number
                    inclusive: true
                    exact: false
                    message: Number must be greater than or equal to 1
                    path:
                      - limit
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
    TooManyRequests:
      description: >-
        Too many requests hit the API too quickly. We recommend an exponential
        backoff of your requests.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
        Retry-After:
          $ref: '#/components/headers/Retry-After'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RATE_LIMIT_EXCEEDED
              message: The rate limit has been exceeded.
              documentationUrl: https://developer.folk.app/api-reference/errors#rate-limiting
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
              details:
                limit: 1000
                remaining: 0
                retryAfter: '2025-10-01T12:00:00Z'
    InternalServerError:
      description: Something went wrong on our end.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_SERVER_ERROR
              message: An internal server error occurred.
              documentationUrl: >-
                https://developer.folk.app/api-reference/errors#internal-server-error
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
    ServiceUnavailable:
      description: The server is overloaded or down for maintenance.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: SERVICE_UNAVAILABLE
              message: The service is currently unavailable.
              documentationUrl: >-
                https://developer.folk.app/api-reference/errors#service-unavailable
              requestId: 123e4567-e89b-12d3-a456-426614174000
              timestamp: '2025-10-01T12:00:00Z'
  securitySchemes:
    bearerApiKeyAuth:
      type: http
      scheme: bearer
      description: API key for authentication

````