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

# List Employee Custom Fields

> Returns the tenant-defined employee fields whose values the key owner may
read on another employee's card, in profile order. These are the keys of
`Employee.custom_fields`. File and image fields are not returned yet.

Required scope: employees:read

Error Codes:
  - INTEGRATION.API_KEY_INVALID: The API key is missing, inactive, expired, or unknown.
  - DEVELOPER.SCOPE_INSUFFICIENT: The key lacks the employees:read scope.



## OpenAPI

````yaml /api-reference/openapi.yaml get /developer/v1/employee_custom_fields
openapi: 3.0.3
info:
  description: >-
    Публичный Developer API Doodocs People. Аутентификация — заголовок
    X-API-Key.
  title: Doodocs People API
  version: 1.0.0
servers:
  - description: Production
    url: https://app.doodocs.kz/api
security:
  - ApiKeyAuth: []
tags:
  - description: ApiKeyService exposes Developer API key utilities.
    name: ApiKeyService
  - description: >-
      DocumentService is the public Developer API for documents: reading,
      creating,
       downloading, routing, and signing.

       Authentication: X-API-Key. Every call runs as the key's owner within the key's
       tenant — the owner's document permissions decide what is visible and which
       actions are allowed, exactly as they would in the web app. Fields that carry
       personal data of other participants (names, IIN, positions) are never exposed;
       participants are identified by id only.

       Typical flow: discover a template with ListDocumentTemplates /
       GetDocumentTemplate (to learn its variable_schema), create a draft with
       CreateDocument, set its route with SetDocumentRoute, launch it with
       SendDocument, then apply signatures with SignDocument as slots become active.

       To circulate a document produced elsewhere, upload it with FileService and
       pass the confirmed file_id to CreateDocument instead of a template.
    name: DocumentService
  - description: |-
      EmployeeService is the public Developer API for reading employees.

       Authentication: X-API-Key. The key's tenant and the key owner's data scope
       determine which employees and fields are visible; sensitive fields the caller
       may not view are omitted and listed in `redacted_fields`.
    name: EmployeeService
  - description: |-
      FileService uploads the files documents are created from.

       Authentication: X-API-Key. An upload belongs to the key's owner, and only
       their key can attach it to a document.

       Flow: CreateFileUpload reserves the file and returns a presigned POST form,
       the client sends the bytes straight to storage, ConfirmFileUpload marks the
       upload complete, and CreateDocument attaches it by id.
    name: FileService
  - description: IngestService accepts batches of external records into the tenant.
    name: IngestService
  - name: LoginService
  - description: |-
      WebhookService lets a tenant manage subscriptions to Developer API events.

       Authentication: X-API-Key with the webhooks:manage scope.
    name: WebhookService
paths:
  /developer/v1/employee_custom_fields:
    get:
      tags:
        - EmployeeService
      summary: List Employee Custom Fields
      description: >-
        Returns the tenant-defined employee fields whose values the key owner
        may

        read on another employee's card, in profile order. These are the keys of

        `Employee.custom_fields`. File and image fields are not returned yet.


        Required scope: employees:read


        Error Codes:
          - INTEGRATION.API_KEY_INVALID: The API key is missing, inactive, expired, or unknown.
          - DEVELOPER.SCOPE_INSUFFICIENT: The key lacks the employees:read scope.
      operationId: EmployeeService_ListEmployeeCustomFields
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEmployeeCustomFieldsResponse'
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
          description: Default error response
components:
  schemas:
    ListEmployeeCustomFieldsResponse:
      properties:
        custom_fields:
          description: Custom fields in profile order.
          items:
            $ref: '#/components/schemas/CustomField'
          readOnly: true
          type: array
      type: object
    Status:
      description: >-
        The `Status` type defines a logical error model that is suitable for
        different programming environments, including REST APIs and RPC APIs. It
        is used by [gRPC](https://github.com/grpc). Each `Status` message
        contains three pieces of data: error code, error message, and error
        details. You can find out more about this error model and how to work
        with it in the [API Design
        Guide](https://cloud.google.com/apis/design/errors).
      properties:
        code:
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
          format: int32
          type: integer
        details:
          description: >-
            A list of messages that carry the error details.  There is a common
            set of message types for APIs to use.
          items:
            $ref: '#/components/schemas/GoogleProtobufAny'
          type: array
        message:
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
          type: string
      type: object
    CustomField:
      description: CustomField describes one tenant-defined employee field.
      properties:
        api_name:
          description: Key in Employee.custom_fields; stable while the field exists.
          readOnly: true
          type: string
        columns:
          description: Columns of a TABLE field, in display order.
          items:
            $ref: '#/components/schemas/CustomFieldColumn'
          readOnly: true
          type: array
        create_time:
          description: When the field was created.
          format: date-time
          readOnly: true
          type: string
        description:
          description: Free-text description; empty when absent.
          readOnly: true
          type: string
        options:
          description: Allowed values of a SELECT or MULTISELECT field.
          items:
            type: string
          readOnly: true
          type: array
        title:
          description: Field name in the request's Accept-Language, else the source name.
          readOnly: true
          type: string
        type:
          description: Value type; decides the JSON shape of the value.
          enum:
            - CUSTOM_FIELD_TYPE_UNSPECIFIED
            - CUSTOM_FIELD_TYPE_TEXT
            - CUSTOM_FIELD_TYPE_MULTILINE_TEXT
            - CUSTOM_FIELD_TYPE_NUMBER
            - CUSTOM_FIELD_TYPE_CURRENCY
            - CUSTOM_FIELD_TYPE_PERCENTAGE
            - CUSTOM_FIELD_TYPE_DATE
            - CUSTOM_FIELD_TYPE_DATETIME
            - CUSTOM_FIELD_TYPE_BOOLEAN
            - CUSTOM_FIELD_TYPE_SELECT
            - CUSTOM_FIELD_TYPE_MULTISELECT
            - CUSTOM_FIELD_TYPE_EMAIL
            - CUSTOM_FIELD_TYPE_URL
            - CUSTOM_FIELD_TYPE_PHONE
            - CUSTOM_FIELD_TYPE_LOOKUP
            - CUSTOM_FIELD_TYPE_TABLE
          format: enum
          readOnly: true
          type: string
        update_time:
          description: When the field definition last changed.
          format: date-time
          readOnly: true
          type: string
      type: object
    GoogleProtobufAny:
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message.
      properties:
        '@type':
          description: The type of the serialized message.
          type: string
      type: object
    CustomFieldColumn:
      description: >-
        CustomFieldColumn is one column of a TABLE field. Each row of the value
        is an
         object keyed by the columns' api_name.
      properties:
        api_name:
          description: Key of the cell in each row.
          readOnly: true
          type: string
        options:
          description: Allowed values of a SELECT or MULTISELECT column.
          items:
            type: string
          readOnly: true
          type: array
        title:
          description: Column name as configured (not translated).
          readOnly: true
          type: string
        type:
          description: Cell type; never TABLE.
          enum:
            - CUSTOM_FIELD_TYPE_UNSPECIFIED
            - CUSTOM_FIELD_TYPE_TEXT
            - CUSTOM_FIELD_TYPE_MULTILINE_TEXT
            - CUSTOM_FIELD_TYPE_NUMBER
            - CUSTOM_FIELD_TYPE_CURRENCY
            - CUSTOM_FIELD_TYPE_PERCENTAGE
            - CUSTOM_FIELD_TYPE_DATE
            - CUSTOM_FIELD_TYPE_DATETIME
            - CUSTOM_FIELD_TYPE_BOOLEAN
            - CUSTOM_FIELD_TYPE_SELECT
            - CUSTOM_FIELD_TYPE_MULTISELECT
            - CUSTOM_FIELD_TYPE_EMAIL
            - CUSTOM_FIELD_TYPE_URL
            - CUSTOM_FIELD_TYPE_PHONE
            - CUSTOM_FIELD_TYPE_LOOKUP
            - CUSTOM_FIELD_TYPE_TABLE
          format: enum
          readOnly: true
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: X-API-Key
      type: apiKey

````

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