---
title: "List pipeline fields"
url: https://docs.gleap.ai/en/reference/rest-api/pipeline-properties
method: GET
path: "/pipelines/{pipelineId}/properties"
api: "API Reference"
tag: "Pipelines"
operationId: "PipelineProperties"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# List pipeline fields

`GET https://api.gleap.io/v3/pipelines/{pipelineId}/properties`

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.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `pipelineId` (string, required)

## Headers

- `project` (string, required)

## Example request

```bash
curl --request GET \
  --url 'https://api.gleap.io/v3/pipelines/{pipelineId}/properties' \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>'
```

## Responses

### 200 (`application/json`)

Ok

- `propertyId` (string, required)
- `fieldId` (string, required)
- `label` (string, required)
- `type` (enum<string>, required): TEXT or NUMBER for pipeline-created fields; a record attribute keeps its own type. One of: `TEXT`, `NUMBER`, `BOOLEAN`, `EMAIL`, `DATE`, `TIME`, `TEXTAREA`, `RICHTEXT`, `SELECT`, `MULTISELECT`, `UPLOAD`, `PHONE`.
- `source` (enum<string>, required): Where a field's value lives. One of: `ENTRY`, `RECORD`.
- `order` (number<double>, required)
- `width` (number<double>)
- `unit` (string)
- `calculation` (enum<string>): Footer totals the lane-stats aggregation supports. Numbers only. One of: `sum`, `average`, `min`, `max`.
- `recordPath` (string): RECORD only: dotted path on the company/session document (`value`, `customData.seats`).
- `options` (any[]): SELECT-style attributes carry their options for rendering and validation.
- `readOnly` (boolean): RECORD only: the attribute cannot be written (e.g. last-seen device type).

```json
[
  {
    "propertyId": "string",
    "fieldId": "string",
    "label": "string",
    "type": "TEXT",
    "source": "ENTRY",
    "order": 0,
    "width": 0,
    "unit": "string",
    "calculation": "sum",
    "recordPath": "string",
    "options": [],
    "readOnly": true
  }
]
```
