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

# List pipeline fields

> The fields of one pipeline, in column order. A field's `source` says where its value lives:
`ENTRY` fields are stored on the entry — their `fieldId`s are the keys entry `values` accept —
while `RECORD` fields read (and write through to) an attribute of the company or contact and
arrive on entries as `recordValues`. `type`, `unit` and `calculation` say how to render a value
and what the stage footers total.



## OpenAPI

````yaml https://api.gleap.io/api-docs.json get /pipelines/{pipelineId}/properties
openapi: 3.0.0
info:
  title: gleap-server
  version: 14.0.0
  contact: {}
servers:
  - url: https://api.gleap.io/v3
security: []
paths:
  /pipelines/{pipelineId}/properties:
    get:
      tags:
        - Pipelines
      summary: List pipeline fields
      description: >-
        The fields of one pipeline, in column order. A field's `source` says
        where its value lives:

        `ENTRY` fields are stored on the entry — their `fieldId`s are the keys
        entry `values` accept —

        while `RECORD` fields read (and write through to) an attribute of the
        company or contact and

        arrive on entries as `recordValues`. `type`, `unit` and `calculation`
        say how to render a value

        and what the stage footers total.
      operationId: PipelineProperties
      parameters:
        - in: path
          name: pipelineId
          required: true
          schema:
            type: string
        - in: header
          name: project
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ResolvedPipelineField'
                type: array
      security:
        - jwt: []
components:
  schemas:
    ResolvedPipelineField:
      description: >-
        Resolves a pipeline's columns to the fields the dashboard, the stats

        aggregation and the API render. The property a column points at decides
        the

        source: a PIPELINE property scoped to this pipeline is an ENTRY field, a

        COMPANY / SESSION property of the pipeline's record type is a RECORD
        field.

        A column pointing anywhere else (another pipeline's property, the wrong

        record type, a deleted property) is dropped — never rendered half-way.
      properties:
        propertyId:
          type: string
        fieldId:
          type: string
        label:
          type: string
        type:
          $ref: '#/components/schemas/PropertyType'
          description: >-
            TEXT or NUMBER for pipeline-created fields; a record attribute keeps
            its own type.
        source:
          $ref: '#/components/schemas/PipelineFieldSource'
        order:
          type: number
          format: double
        width:
          type: number
          format: double
        unit:
          type: string
        calculation:
          $ref: '#/components/schemas/PipelineCalculation'
        recordPath:
          type: string
          description: >-
            RECORD only: dotted path on the company/session document (`value`,
            `customData.seats`).
        options:
          items: {}
          type: array
          description: >-
            SELECT-style attributes carry their options for rendering and
            validation.
        readOnly:
          type: boolean
          description: >-
            RECORD only: the attribute cannot be written (e.g. last-seen device
            type).
      required:
        - propertyId
        - fieldId
        - label
        - type
        - source
        - order
      type: object
      additionalProperties: false
    PropertyType:
      description: >-
        What a property stores. The values are the persisted DB strings and are

        mirrored by the dashboard's PropertyType — never rename a member, only
        add.


        Its own decorator-free module so pure services (and their harnesses) can

        import the enum without loading the Mongoose model.
      enum:
        - TEXT
        - NUMBER
        - BOOLEAN
        - EMAIL
        - DATE
        - TIME
        - TEXTAREA
        - RICHTEXT
        - SELECT
        - MULTISELECT
        - UPLOAD
        - PHONE
      type: string
    PipelineFieldSource:
      description: Where a field's value lives.
      enum:
        - ENTRY
        - RECORD
      type: string
    PipelineCalculation:
      description: Footer totals the lane-stats aggregation supports. Numbers only.
      enum:
        - sum
        - average
        - min
        - max
      type: string
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````