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

# List pipelines

> List all pipelines visible to your ServiceKey.

<Info>
  Pipeline REST endpoints require a **ServiceKey**. Regular GoldRush API keys are rejected with `403`. See [Service Keys](/goldrush-pipeline-api/service-keys) for how to create one.
</Info>

Pipelines are scoped to the group of the ServiceKey. Sensitive fields inside `destination_config` (passwords, tokens) are masked as `******` on read.


## OpenAPI

````yaml GET /platform/pipeline-api/
openapi: 3.1.0
info:
  title: GoldRush Pipeline API
  version: 1.0.0
  description: >-
    REST API for programmatic CRUD over GoldRush pipelines. Authentication uses
    a ServiceKey - regular GoldRush API keys are not accepted on these
    endpoints.
servers:
  - url: https://api.covalenthq.com
security:
  - serviceKeyAuth: []
paths:
  /platform/pipeline-api/:
    get:
      tags:
        - pipelines
      summary: List pipelines
      description: >-
        List all pipelines visible to the authenticated ServiceKey, scoped to
        the key's group.
      operationId: listPipelines
      parameters:
        - name: page_number
          in: query
          description: Page number, 1-indexed.
          required: false
          schema:
            type: integer
            default: 1
            minimum: 1
        - name: page_size
          in: query
          description: Number of pipelines to return per page.
          required: false
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Paginated list of pipelines.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PipelineListEnvelope'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    PipelineListEnvelope:
      type: object
      properties:
        data:
          type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/Pipeline'
            pagination:
              $ref: '#/components/schemas/Pagination'
            updated_at:
              type: string
              format: date-time
        error:
          type: boolean
        error_message:
          type: string
          nullable: true
        error_code:
          type: string
          nullable: true
    Pipeline:
      type: object
      description: >-
        A configured pipeline. Sensitive fields inside `destination_config`
        (such as passwords) are masked as `******` on read.
      properties:
        id:
          type: string
          description: Pipeline identifier, prefixed with `pipe_`.
          example: pipe_3e8678c5fc9e48a7bf9879ca729
        name:
          type: string
          description: Human-readable pipeline name.
          example: From Base Swap to Postgres
        project:
          type: string
          description: >-
            Project identifier. Used to derive database schema, consumer group,
            and checkpoint path.
          example: pipeline-api-hr-1wk-unbounded
        description:
          type: string
          description: Free-form description.
          example: Base swaps, unbounded
        topic:
          type: string
          description: >-
            Source topic. Follows the
            `{chain}.{network}.{qualifier}.block.{entity}` pattern.
          example: base.mainnet.ref.block.swap.v3
        destination_type:
          type: string
          description: Destination kind. Determines the shape of `destination_config`.
          enum:
            - postgres
            - clickhouse
            - kafka
            - object_storage
            - sqs
            - webhook
        destination_config:
          $ref: '#/components/schemas/DestinationConfig'
        transforms:
          description: >-
            SQL transforms keyed by output table name. Some legacy pipelines
            store this as a YAML string or empty array; new pipelines should
            always use the object form.
          oneOf:
            - type: object
              additionalProperties:
                type: string
              example:
                swaps: >-
                  SELECT chain_name, block_height, tx_hash FROM swaps WHERE
                  protocol = 'uniswap_v3'
            - type: string
            - type: array
              items: {}
        execution_mode:
          type: string
          enum:
            - bounded
            - unbounded
          description: >-
            `bounded` requires both `execution_start_from` and
            `execution_stop_from`. `unbounded` runs continuously from
            `execution_start_from`.
        execution_start_from:
          type: string
          description: >-
            Block height to start from, as a string. Empty string means start
            from tip.
          example: '44745000'
        execution_stop_from:
          type: string
          description: Block height to stop at, as a string. Empty string when unbounded.
          example: ''
        abi_file:
          type: object
          description: >-
            ABI definition (JSON ABI). Empty object when ABI decoding is
            disabled.
        abi_contract_addresses:
          type: array
          items:
            type: string
          description: >-
            Restrict ABI decoding to these contract addresses. Empty means
            decode all matching signatures.
        abi_unmatched:
          type: string
          enum:
            - ''
            - skip
            - raw
          description: >-
            Behavior for entries that do not match the ABI. `skip` drops them;
            `raw` writes them to a `raw_*` fallback table; empty string is
            treated as `skip`.
        status:
          type: string
          enum:
            - running
            - paused
          description: Current pipeline status.
        created_by:
          $ref: '#/components/schemas/UserSummary'
        group:
          $ref: '#/components/schemas/GroupSummary'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        page_number:
          type: integer
        page_size:
          type: integer
        total_count:
          type: integer
        has_more:
          type: boolean
    ErrorEnvelope:
      type: object
      properties:
        data:
          type: object
          nullable: true
        error:
          type: boolean
        error_message:
          type: string
        error_code:
          type: string
    DestinationConfig:
      type: object
      description: >-
        Destination-specific connection details. The accepted keys depend on
        `destination_type`. Examples: Postgres uses `url`, `user`, `password`;
        webhook uses `url`. On read, secret fields are masked as `******` and
        must be re-supplied in full on a `PUT`.
      additionalProperties: true
      properties:
        type:
          type: string
          description: Mirrors `destination_type` at the top level.
        url:
          type: string
        user:
          type: string
        password:
          type: string
    UserSummary:
      type: object
      properties:
        id:
          type: string
          example: user_fb22f43e38ac44edabc7f566c5d
        email:
          type: string
          format: email
        display_name:
          type: string
        full_name:
          type: string
    GroupSummary:
      type: object
      properties:
        id:
          type: string
          example: group_d632592ddbde4a499452d25b
        name:
          type: string
        slug:
          type: string
        is_paid:
          type: boolean
        is_over_limit:
          type: boolean
        is_free_trial_expired:
          type: boolean
  responses:
    Unauthorized:
      description: Missing or invalid ServiceKey.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Forbidden:
      description: >-
        The credential supplied is not a ServiceKey, or the ServiceKey does not
        have access to this pipeline.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    serviceKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: ServiceKey
      description: >-
        Pipeline REST endpoints require a ServiceKey. Regular GoldRush API keys
        are rejected with 403. See [Service
        Keys](/goldrush-pipeline-api/service-keys).

````