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

# Get contact field metadata

> Retrieve the source-of-truth subset of contact fields that can be referenced in AI-variable prompts and requested through the contacts endpoints. This is not the full contact field catalog; it only includes AI-variable-compatible fields for this workspace. Without query parameters this returns the full AI-variable-compatible contact prompt-field catalog. For targeted lookups, pass `search` plus optional filters such as `fieldType`, `matchMode`, and `limit` to narrow the response and avoid oversized payloads; the older `query` parameter remains supported as an alias. Use this before manual or public AI-variable create/update calls instead of guessing placeholders; unsupported generic placeholders such as `previousMessage` are not valid here. This is narrower than the full editable/filterable contact field catalog: `search_contacts_with_advanced_filters` (`include`/`exclude`) and `update_contact_fields` also accept relationship-style filters such as `leadsGroup`, `campaigns`, and `companyGroup` that never appear here because they cannot be used inside an AI-variable prompt.

    > **Required scope:** `CONTACTS_READ`
    >
    > **Rate limit:** 100 requests per minute



## OpenAPI

````yaml https://openapi.enginy.ai/definitions.json get /v1/contacts/fields
openapi: 3.1.0
info:
  title: Enginy API
  version: 1.0.0
  description: Public API for Enginy platform
servers:
  - url: https://openapi.enginy.ai
    description: Configured server
security: []
tags:
  - name: AI Variables
    description: >-
      Manage AI variables and discover the entity fields you can reference in
      prompts and entity requests.
  - name: Inbox
    description: >-
      Inbox endpoints for listing contact threads, reading thread messages,
      managing tags, and sending manual replies.
  - name: Workflows
    description: >-
      Build, validate, publish, run, and inspect advanced (graph) workflows,
      plus the block/condition catalog needed to author a workflow plan.
paths:
  /v1/contacts/fields:
    get:
      tags:
        - Contacts
        - AI Variables
      summary: Get contact field metadata
      description: >-
        Retrieve the source-of-truth subset of contact fields that can be
        referenced in AI-variable prompts and requested through the contacts
        endpoints. This is not the full contact field catalog; it only includes
        AI-variable-compatible fields for this workspace. Without query
        parameters this returns the full AI-variable-compatible contact
        prompt-field catalog. For targeted lookups, pass `search` plus optional
        filters such as `fieldType`, `matchMode`, and `limit` to narrow the
        response and avoid oversized payloads; the older `query` parameter
        remains supported as an alias. Use this before manual or public
        AI-variable create/update calls instead of guessing placeholders;
        unsupported generic placeholders such as `previousMessage` are not valid
        here. This is narrower than the full editable/filterable contact field
        catalog: `search_contacts_with_advanced_filters` (`include`/`exclude`)
        and `update_contact_fields` also accept relationship-style filters such
        as `leadsGroup`, `campaigns`, and `companyGroup` that never appear here
        because they cannot be used inside an AI-variable prompt.

            > **Required scope:** `CONTACTS_READ`
            >
            > **Rate limit:** 100 requests per minute
      parameters:
        - schema:
            type: string
            description: >-
              Preferred case-insensitive search term for AI-variable-compatible
              field IDs, labels, and prompt placeholders. Use this for targeted
              MCP/tool lookups to keep payloads small.
          required: false
          description: >-
            Preferred case-insensitive search term for AI-variable-compatible
            field IDs, labels, and prompt placeholders. Use this for targeted
            MCP/tool lookups to keep payloads small.
          name: search
          in: query
        - schema:
            type: string
            description: >-
              Backward-compatible alias for `search`. Performs the same
              case-insensitive search over AI-variable-compatible field IDs,
              labels, and prompt placeholders.
          required: false
          description: >-
            Backward-compatible alias for `search`. Performs the same
            case-insensitive search over AI-variable-compatible field IDs,
            labels, and prompt placeholders.
          name: query
          in: query
        - schema:
            type: string
            enum:
              - STANDARD
              - AI_VARIABLE
              - CRM_FIELD
              - FORMULA_FIELD
              - EMPTY_FIELD
            description: Optional filter by field type such as `STANDARD` or `AI_VARIABLE`.
          required: false
          description: Optional filter by field type such as `STANDARD` or `AI_VARIABLE`.
          name: fieldType
          in: query
        - schema:
            type: string
            enum:
              - contains
              - prefix
              - exact
            description: >-
              Optional search strictness. `contains` is the default broad match,
              `prefix` narrows to prefix matches, and `exact` only returns exact
              field ID, label, or placeholder matches.
          required: false
          description: >-
            Optional search strictness. `contains` is the default broad match,
            `prefix` narrows to prefix matches, and `exact` only returns exact
            field ID, label, or placeholder matches.
          name: matchMode
          in: query
        - schema:
            type: string
            description: >-
              Optional maximum number of matching fields to return. Minimum 1,
              maximum 100.
          required: false
          description: >-
            Optional maximum number of matching fields to return. Minimum 1,
            maximum 100.
          name: limit
          in: query
      responses:
        '200':
          description: Contact field metadata retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      entity:
                        type: string
                        enum:
                          - CONTACT
                          - COMPANY
                        description: Entity these fields belong to.
                      fields:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: >-
                                Exact field identifier used in prompts
                                (`{fieldName}`) and `fields` query params across
                                the entity endpoints.
                            label:
                              type: string
                              description: Human-readable field label.
                            fieldType:
                              type: string
                              enum:
                                - STANDARD
                                - AI_VARIABLE
                                - CRM_FIELD
                                - FORMULA_FIELD
                                - EMPTY_FIELD
                              description: >-
                                Whether this is a standard field or a smart
                                field type.
                            entity:
                              type: string
                              enum:
                                - CONTACT
                                - COMPANY
                              description: Entity the field belongs to.
                            dataType:
                              type: string
                              description: Underlying data type.
                            editable:
                              type: boolean
                              description: >-
                                Whether this field is editable via the entity
                                update endpoint.
                            searchable:
                              type: boolean
                              description: Whether this field is searchable in Enginy.
                            sortable:
                              type: boolean
                              description: Whether this field is sortable in Enginy.
                            importable:
                              type: boolean
                              description: Whether this field is importable in Enginy.
                            exportable:
                              type: boolean
                              description: Whether this field is exportable in Enginy.
                            promptReference:
                              type: string
                              description: >-
                                Copy-paste-ready placeholder syntax for prompts.
                                Example: `{firstName}`.
                          required:
                            - id
                            - label
                            - fieldType
                            - entity
                            - dataType
                            - editable
                            - searchable
                            - sortable
                            - importable
                            - exportable
                            - promptReference
                        description: Field metadata available for this entity.
                    required:
                      - entity
                      - fields
                required:
                  - status
                  - message
                  - data
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````