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

# Get custom fields

> This endpoint enables you to get custom fields for your organization, including their names, descriptions, types, constraints, section associations, and slugs.




## OpenAPI

````yaml /assets/openapi/openapi-bundled.yaml get /custom_fields
openapi: 3.1.0
info:
  title: Partoo Rest API
  version: v2
  license:
    name: © Copyright Partoo
    url: https://www.partoo.co/en/gtu-api/
  x-logo:
    url: >-
      https://partoo-client-images.s3.amazonaws.com/logo-partoo-restapi-white.png
  description: >
    ## Introduction

    The Partoo Rest API allows you to automate all the actions that are possible
    to do in the Partoo Web Application.


    The Partoo Rest API can be used for many different purposes:
      - Create/update/delete your businesses & users if you are a client.
      - Create/subscribe/manage organizations, businesses & users if you are a reseller.
      - Retrieve data on businesses you have access to if you are a publisher.
      - ...
servers:
  - url: https://api.partoo.co/v2
    description: Production server
  - url: https://api.sandbox.partoo.co/v2
    description: Sandbox server (dev environment for clients & partners)
security:
  - ApiKeyAuth: []
paths:
  /custom_fields:
    get:
      tags:
        - Custom Fields
      summary: Get custom fields
      description: >
        This endpoint enables you to get custom fields for your organization,
        including their names, descriptions, types, constraints, section
        associations, and slugs.
      operationId: getCustomFields
      parameters:
        - $ref: '#/components/parameters/query_filter_by_org_id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  custom_fields:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomFieldTypeGet'
                example:
                  custom_fields:
                    - id: 1
                      name: Is Active
                      description: Whether the business is currently active
                      type: BOOLEAN
                      order: 1
                      section_id: null
                      section_name: null
                      slug: is-active
                    - id: 2
                      name: Description
                      description: Business description text
                      type: TEXT
                      max_len: 500
                      order: 2
                      section_id: 1
                      section_name: Section 1
                      slug: description
                    - id: 3
                      name: Employee Count
                      description: Number of employees
                      type: INTEGER
                      min: 0
                      max: 10000
                      order: 3
                      section_id: 1
                      section_name: Section 1
                      slug: employee-count
                    - id: 4
                      name: Rating
                      description: Business rating score
                      type: FLOAT
                      min: 0
                      max: 5
                      order: 4
                      section_id: 2
                      section_name: Section 2
                      slug: rating
                    - id: 5
                      name: Category
                      description: Business category type
                      type: SINGLE_SELECT
                      possible_values:
                        - Premium
                        - Standard
                        - Basic
                      order: 5
                      section_id: 2
                      section_name: Section 2
                      slug: category
                    - id: 6
                      name: Tags
                      description: Business tags for classification
                      type: MULTIPLE_SELECT
                      possible_values:
                        - Featured
                        - New
                        - Sale
                        - Popular
                      max_selected_values: 3
                      order: 6
                      section_id: 3
                      section_name: Section 3
                      slug: tags
                    - id: 7
                      name: Product Images
                      description: Product image selections
                      type: MULTIPLE_SELECT_IMAGE
                      possible_values:
                        - image1
                        - image2
                        - image3
                      possible_images_urls:
                        - https://example.com/img1.jpg
                        - https://example.com/img2.jpg
                        - https://example.com/img3.jpg
                      possible_images_labels:
                        - Image 1
                        - Image 2
                        - Image 3
                      max_selected_values: 2
                      order: 7
                      section_id: 3
                      section_name: Section 3
                      slug: product-images
                    - id: 8
                      name: Gallery
                      description: Image gallery uploader
                      type: IMAGES_UPLOADER
                      text_fields:
                        - text_field: Caption
                          max_length: 100
                        - text_field: Alt Text
                          max_length: 50
                      order: 8
                      section_id: 4
                      section_name: Section 4
                      slug: gallery
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
components:
  parameters:
    query_filter_by_org_id:
      in: query
      name: org_id
      schema:
        type: integer
      required: false
      description: >
        Filter by organization ID. Only `PROVIDER` users can use this filter. If
        you are not a `PROVIDER`, this will default to the ID of your
        organization.
  schemas:
    CustomFieldTypeGet:
      anyOf:
        - $ref: '#/components/schemas/CustomFieldBoolGet'
        - $ref: '#/components/schemas/CustomFieldTextGet'
        - $ref: '#/components/schemas/CustomFieldIntegerGet'
        - $ref: '#/components/schemas/CustomFieldFloatGet'
        - $ref: '#/components/schemas/CustomFieldSingleSelectGet'
        - $ref: '#/components/schemas/CustomFieldMultipleSelectGet'
        - $ref: '#/components/schemas/CustomFieldMultipleSelectImageGet'
        - $ref: '#/components/schemas/CustomFieldImagesUploaderGet'
    CustomFieldBoolGet:
      description: Boolean Custom Field
      type: object
      title: Boolean Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeBool'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldTextGet:
      description: Text Custom Field
      type: object
      title: Text Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeText'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        max_len:
          $ref: '#/components/schemas/CustomFieldMaxLen'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldIntegerGet:
      description: Integer Custom Field
      type: object
      title: Integer Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeInteger'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        min:
          $ref: '#/components/schemas/CustomFieldMin'
        max:
          $ref: '#/components/schemas/CustomFieldMax'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldFloatGet:
      description: Float Custom Field
      type: object
      title: Float Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeFloat'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        min:
          $ref: '#/components/schemas/CustomFieldFloatMin'
        max:
          $ref: '#/components/schemas/CustomFieldFloatMax'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldSingleSelectGet:
      description: Single Select Custom Field
      type: object
      title: Single Select Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeSingleSelect'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        possible_values:
          $ref: '#/components/schemas/CustomFieldPossibleValues'
        possible_orders:
          $ref: '#/components/schemas/CustomFieldPossibleOrders'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldMultipleSelectGet:
      description: Multiple Select Custom Field
      type: object
      title: Multiple Select Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeMultipleSelect'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        possible_values:
          $ref: '#/components/schemas/CustomFieldPossibleValues'
        possible_orders:
          $ref: '#/components/schemas/CustomFieldPossibleOrders'
        max_selected_values:
          $ref: '#/components/schemas/CustomFieldMaxSelectedValues'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldMultipleSelectImageGet:
      description: Multiple Select Image Custom Field
      type: object
      title: Multiple Select Image Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeMultipleSelectImage'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        possible_values:
          $ref: '#/components/schemas/CustomFieldPossibleValuesMSI'
        possible_images_urls:
          $ref: '#/components/schemas/CustomFieldPossibleImagesUrls'
        possible_images_labels:
          $ref: '#/components/schemas/CustomFieldPossibleImagesLabels'
        possible_orders:
          $ref: '#/components/schemas/CustomFieldPossibleOrders'
        max_selected_values:
          $ref: '#/components/schemas/CustomFieldMaxSelectedValues'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldImagesUploaderGet:
      description: Images uploader Custom Field
      type: object
      title: Images Uploader Field
      properties:
        id:
          $ref: '#/components/schemas/CustomFieldId'
        name:
          $ref: '#/components/schemas/CustomFieldName'
        description:
          $ref: '#/components/schemas/CustomFieldDescription'
        type:
          $ref: '#/components/schemas/CustomFieldTypeImagesUploader'
        slug:
          $ref: '#/components/schemas/CustomFieldSlug'
        text_fields:
          $ref: '#/components/schemas/CustomFieldTextFields'
        order:
          $ref: '#/components/schemas/CustomFieldOrder'
        section_id:
          $ref: '#/components/schemas/CustomFieldSectionId'
        section_name:
          $ref: '#/components/schemas/CustomFieldSectionName'
    CustomFieldId:
      description: Id of the custom field
      type: integer
      example: 42
    CustomFieldName:
      description: The name of the custom field
      type: string
      minLength: 1
      maxLength: 50
      example: Click and collect
    CustomFieldDescription:
      description: Description of the custom field
      type: string
      maxLength: 150
      nullable: true
      example: Whether the business offers click and collect service
    CustomFieldTypeBool:
      description: BOOLEAN
      minLength: 1
      type: string
      example: BOOLEAN
    CustomFieldSlug:
      description: >-
        Unique identifier slug for the custom field. Cannot contain any of the
        following characters: `,;/\|<>`
      type: string
      minLength: 1
      maxLength: 100
      nullable: true
      example: click-and-collect
    CustomFieldOrder:
      description: >-
        Describes where the custom field is displayed on the Business Edit view
        of the Partoo App. If the custom field is within a section, **order**
        specifies its position within the custom field section.
      type: integer
      default: 10
      example: 30
    CustomFieldSectionId:
      description: Id of the custom field section
      type: integer
      example: 6
    CustomFieldSectionName:
      description: >-
        The name of the custom field section. Needs to be unique from all other
        section names.
      type: string
      maxLength: 60
      example: Section A
    CustomFieldTypeText:
      description: TEXT
      minLength: 1
      type: string
      example: TEXT
    CustomFieldMaxLen:
      description: maximum lenght for TEXT field
      type: integer
      example: 10
    CustomFieldTypeInteger:
      description: INTEGER
      minLength: 1
      type: string
      example: INTEGER
    CustomFieldMin:
      description: minimum value for INTEGER field
      type: integer
      example: 0
    CustomFieldMax:
      description: maximum value for INTEGER field
      type: integer
      example: 100
    CustomFieldTypeFloat:
      description: FLOAT
      minLength: 1
      type: string
      example: FLOAT
    CustomFieldFloatMin:
      description: minimum value for FLOAT field
      type: number
      example: 0
    CustomFieldFloatMax:
      description: maximum value for FLOAT field
      type: number
      example: 10.5
    CustomFieldTypeSingleSelect:
      description: SINGLE_SELECT
      minLength: 1
      type: string
      example: SINGLE_SELECT
    CustomFieldPossibleValues:
      minItems: 1
      description: list of available values
      type: array
      items:
        type: string
      example:
        - free parking
        - disabled access
    CustomFieldPossibleOrders:
      description: >
        The order of the possible values. Array of integers where each element
        corresponds  to the display order of the value at the same index in
        possible_values. Orders with gaps (e.g., [5, 8, 1]) will be
        automatically normalized to consecutive  values (e.g., [2, 3, 1]) while
        preserving the relative ordering.
      type: array
      items:
        type: integer
        nullable: true
      nullable: true
      example:
        - 3
        - 2
        - 4
        - 1
    CustomFieldTypeMultipleSelect:
      description: MULTIPLE_SELECT
      minLength: 1
      type: string
      example: MULTIPLE_SELECT
    CustomFieldMaxSelectedValues:
      description: Maximum number of values that can be selected for multiple select fields
      type: integer
      minimum: 1
      nullable: true
      example: 3
    CustomFieldTypeMultipleSelectImage:
      description: MULTIPLE_SELECT_IMAGE
      minLength: 1
      type: string
      example: MULTIPLE_SELECT_IMAGE
    CustomFieldPossibleValuesMSI:
      minItems: 1
      description: >
        List of available values.

        Each element corresponds to one of possible_images_urls and
        possible_images_labels.

        Hence, the 3 lists shall have the same size.
      type: array
      items:
        type: string
      example:
        - first image
        - second image
    CustomFieldPossibleImagesUrls:
      minItems: 1
      description: List of available urls
      type: array
      items:
        type: string
      example:
        - https://image1
        - https://image2
    CustomFieldPossibleImagesLabels:
      minItems: 1
      description: >
        List of available labels.

        Can be set to null but shall always have the same number of elements as
        possible_values and possible_images_urls.
      type: array
      items:
        type: string
      example:
        - Image 1
        - Image 2
    CustomFieldTypeImagesUploader:
      description: IMAGES_UPLOADER
      minLength: 1
      type: string
      example: IMAGES_UPLOADER
    CustomFieldTextFields:
      description: Configuration for text type Custom Fields
      type: array
      items:
        type: object
        required:
          - text_field
        properties:
          text_field:
            type: string
            description: Name of the text field
          max_length:
            type: integer
            minimum: 1
            maximum: 1000
            nullable: true
            description: Maximum length for the text field
      example:
        - text_field: Caption
          max_length: 100
        - text_field: Alt Text
          max_length: 50
  responses:
    '401':
      description: You are not authenticated
      content:
        application/json:
          schema:
            description: Error that occurs when you are not authenticated
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  authentication:
                    type: string
                    default: User not authenticated
    '403':
      description: |
        You are not allowed to perform this action
      content:
        application/json:
          schema:
            description: >
              Error that occurs when you are authenticated but you are trying to
              perform an action you are not allowed to perform
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  authorization:
                    type: string
                    default: Operation not allowed
    '404':
      description: Resource does not exist
      content:
        application/json:
          schema:
            description: >-
              Error that occcurs when you are trying to reach a resource that
              does not exist
            type: object
            properties:
              errors:
                type: object
                description: The detail of the error encountered
                properties:
                  json:
                    type: string
                    default: Resource not found
  securitySchemes:
    ApiKeyAuth:
      description: >
        The authentication system on Partoo API is using API Key that should be
        put in the header of the request (the name of the header is `x-APIKey`).
        An api_key is linked to a user. This user's role will give you different
        access level to the API features.
      type: apiKey
      in: header
      name: x-APIKey

````