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

# List ticket pipelines



## OpenAPI

````yaml /openapi.json get /api/v1/ticket-pipelines/
openapi: 3.0.3
info:
  title: ChatBridge Public API
  version: 1.0.0
  description: >-
    Customer-facing REST API for ChatBridge — contacts, conversations, messages,
    templates, team, catalogue, tickets, and WhatsApp Flows. Authenticate with a
    workspace API key: `Authorization: Bearer cb_...`. See
    https://github.com/algosmiths/whatschat/blob/main/public_api.md for the full
    scope/versioning reference.
servers:
  - url: https://api.algosmiths.com
    description: Production
security: []
paths:
  /api/v1/ticket-pipelines/:
    get:
      tags:
        - Ticket Pipelines
      summary: List ticket pipelines
      operationId: listTicketPipelines
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TicketPipeline'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Forbidden — insufficient scope (requires ticket.view)
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Rate limit exceeded
      security:
        - ApiKeyAuth: []
        - tokenAuth: []
        - CookieAuth: []
components:
  schemas:
    TicketPipeline:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 100
        description:
          type: string
        position:
          type: integer
          maximum: 2147483647
          minimum: 0
        is_default:
          type: boolean
        stages:
          type: array
          items:
            $ref: '#/components/schemas/TicketStage'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - created_at
        - id
        - name
        - stages
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message
      required:
        - error
    TicketStage:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 100
        position:
          type: integer
          maximum: 2147483647
          minimum: 0
        color:
          type: string
          maxLength: 7
        is_terminal:
          type: boolean
        pauses_sla:
          type: boolean
        ticket_count:
          type: string
          readOnly: true
        notify_template_id:
          type: string
          nullable: true
          readOnly: true
          description: >-
            When set, moving a ticket into this stage sends this APPROVED
            template to the ticket's contact on WhatsApp (opted-out contacts
            skipped). Set via `notify_template_id` in the request body on stage
            create/PATCH; empty string or null clears it.
        notify_template_name:
          type: string
          nullable: true
          readOnly: true
        notify_template_variables:
          type: object
          readOnly: true
          description: >-
            Variable mapping for `notify_template`, keyed by component
            (`header`/`body`) then by 1-based placeholder index, e.g. `{"body":
            {"1": {"source": "field", "field": "name"}, "2": {"source":
            "ticket", "field": "stage"}}}`. `source` is `static` (literal
            `value`), `field` (contact field — `name`/`phone`/`email`/`company`,
            resolved per recipient) or `ticket`
            (`id`/`title`/`type`/`stage`/`pipeline`/`priority`/`severity`/`assignee`/`outcome`/`created_date`/`due_date`).
            Set via `notify_template_variables` in the request body on stage
            create/PATCH; `{}`/null/empty string clears it, and clearing
            `notify_template_id` clears this too. Anything unresolvable sends an
            em dash.
      required:
        - id
        - name
        - notify_template_id
        - notify_template_name
        - notify_template_variables
        - ticket_count
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: cb_...
      description: >-
        Workspace API key, e.g. `Authorization: Bearer cb_live_...`. Create one
        in Settings → API Keys. See public_api.md § 3 for scopes.
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    CookieAuth:
      type: apiKey
      in: cookie
      name: token
      description: Dashboard session cookie — internal use only, not the public contract.

````