GET/api/crm/v1/settings/pipelines

CRM's pipeline configuration: pipelines and the default pipeline's stages

Requires crm:pipeline:read. Returns the workspace's pipelines and the default pipeline's ordered stages (key, label, immutable kind, order, enabled). Management actions carry crm:pipeline:manage.

App
CRM
Contract
CRM API 9.12.1
Lifecycle
preview
Runtime
restricted
Operation ID
getPipelines
Canonical origin
Not declared; gateway routing required

Purpose and use cases

CRM's pipeline configuration: pipelines and the default pipeline's stages

The owning App is Vision CRM. CRM owns its records, workflow rules, workspace membership, provenance, and record-level authorization.

Request

GET /api/crm/v1/settings/pipelines

This contract intentionally declares no direct server URL. Obtain the routed App origin before attempting the request.

Authentication and authorization

Send a Vision-issued bearer token for the exact App audience. The token must include the crm entitlement and satisfy the crm workspace required binding.

  • Required scope: crm:pipeline:read

Human roles are not declared in OpenAPI. Record-level and business permission checks remain the owning App's authority.

Headers

  • Authorization: Bearer <access-token> — required.
  • Accept: application/json — recommended where a JSON response is declared.

Undeclared tracing, idempotency, conditional-request, and version headers are not assumed on this page.

Path and query parameters

NameLocationTypeRulesDescription
qquerystringoptional; minimum length 2; maximum length 100Optional. Case-insensitive literal substring; keeps pipelines whose label/key or any stage label/key/guidance matches; stages/allStages follow the kept pipelines.

Request body

This operation declares no request body.

Runnable examples

cURL
curl '${APP_BASE_URL}/api/crm/v1/settings/pipelines' \
  --request GET \
  --header 'authorization: Bearer ${ACCESS_TOKEN}' \
  --header 'accept: application/json'
JavaScript (server-side)
const response = await fetch('${APP_BASE_URL}/api/crm/v1/settings/pipelines', {
  method: 'GET',
  headers: {
    authorization: `Bearer ${ACCESS_TOKEN}`,
    accept: 'application/json',
  },
}

if (!response.ok) throw new Error(`Vision API ${response.status}`)
const result = await response.json()
Python 3 standard library
import json
import urllib.parse
import urllib.request

request = urllib.request.Request(
    '${APP_BASE_URL}/api/crm/v1/settings/pipelines',
    data=None,
    headers={
    "Accept": "application/json",
    "Authorization": "Bearer <ACCESS_TOKEN>"
},
    method='GET',
)
with urllib.request.urlopen(request, timeout=30) as response:
    result = json.load(response)

The current TypeScript reference client covers Platform token exchange and core reads. No native SDK helper is declared for this operation; use the HTTP contract directly and follow the SDK guidance.

Responses

StatusMeaningSchema
200Pipelines and the default pipeline's ordered stagesobject

Success response schema

FieldTypeRulesDescription
schemaVersion"vision-crm-pipelines.v1"requiredNot described in the contract.
pipelinesarrayrequired; maximum items 50Not described in the contract.
stagesarrayrequired; maximum items 60Not described in the contract.
200 illustrative response
{
  "schemaVersion": "vision-crm-pipelines.v1",
  "pipelines": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "key": "<key>",
      "label": "<label>",
      "isDefault": true,
      "isActive": true,
      "sortOrder": 1,
      "recordVersion": 1
    }
  ],
  "stages": [
    {
      "id": "00000000-0000-4000-8000-000000000001",
      "key": "<key>",
      "label": "<label>",
      "kind": "open",
      "sortOrder": 1,
      "isEnabled": true,
      "recordVersion": 1
    }
  ]
}

Errors and troubleshooting

Error bodies and codes are shown only where the approved contract declares them. Use status, the declared error schema, and any correlation identifier returned by the App; do not infer that two Apps share one envelope.

    Collection behavior

    Pagination: not declared. Filtering/search: declared through the parameters above. Sorting: not declared.

    Cursor lifetime, cursor binding, stable ordering, maximum traversal, and unknown-filter behavior are not assumed unless stated by a parameter description or schema constraint above.

    Operational behavior

    • Rate limit: No operation-specific limit or 429 response is declared.
    • Retry: Retry only when the documented error model or response headers authorize it. Timeout and backoff values are not declared by this operation.
    • Idempotency: No idempotency header or replay window is declared.
    • Concurrency: No ETag, If-Match, or optimistic-version header is declared.

    Security and privacy

    • Keep client credentials and bearer tokens on trusted servers.
    • Send only to the exact approved HTTPS origin and audience.
    • Treat response data according to the owning App's classification and retention policy; the OpenAPI contract does not itself grant data access.
    • Do not log credentials, tokens, complete private payloads, or secrets.

    Edge cases and known documentation gaps

    • No direct server URL; gateway routing is unresolved here.
    • Business roles, timeout, retry budget, rate value, idempotency window, and concurrency behavior are absent unless explicitly stated above.

    Contract history and evidence