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

# List field pairs for a component.

> List field pairs on a component for the field-level focused views.



## OpenAPI

````yaml /api-reference/bundled.yaml get /v0/experimental/component/{id}/field-pairs
openapi: 3.1.0
info:
  title: Gable API
  description: >
    API to interact with the Gable platform

    ## Authorization

    All API requests require an API key to be passed in the `X-API-KEY` header.
    For instructions on finding your API key and api endpoint check out the [API
    Key documentation](../docs/api-keys.md).

    Example: `curl -H "X-API-KEY: <your-api-key>"
    https://api-{organization}.gable.ai/v0/ping`
  contact:
    name: Gable Engineering
    url: https://gable.ai
    email: engineers@gable.ai
  version: 1.28.0
servers:
  - url: https://{hostname}.gable.ai
    description: Gable API
    variables:
      hostname:
        default: demo-api
        description: Customer environment assigned by Gable
security:
  - ApiKeyAuth: []
tags:
  - name: action
  - name: api-keys
  - name: auth
  - name: changelog
  - name: config
  - name: contract
  - name: data-asset
  - name: debug
  - name: s3
  - name: settings
  - name: slack
  - name: sso
  - name: webhook
  - name: notifications
  - name: constraints
  - name: telemetry
  - name: component
  - name: components
  - name: sca
  - name: cross-service-components
  - name: lineage
  - name: events
  - name: measurements
  - name: defect-report
  - name: experimental
paths:
  /v0/experimental/component/{id}/field-pairs:
    get:
      tags:
        - experimental
      summary: List field pairs for a component.
      description: List field pairs on a component for the field-level focused views.
      operationId: getExperimentalComponentFieldPairs
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            format: uuid
          description: UUID of the component.
        - in: query
          name: payloadGroupId
          required: false
          schema:
            type: string
          description: Optional payload to scope the returned field pairs to.
        - in: query
          name: origin
          required: false
          schema:
            $ref: '#/components/schemas/FieldPairOrigin'
          description: Optional filter by row provenance.
        - in: query
          name: isSuppressed
          required: false
          schema:
            type: boolean
          description: Optional filter by suppression state.
      responses:
        '200':
          description: List of field pairs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFieldPairsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Component not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    FieldPairOrigin:
      type: string
      description: |
        Provenance of a field pair row. SCAN = produced by scanner output.
        BYO_ADD / BYO_CHANGE / BYO_SUPPRESS = produced by the corresponding
        user-initiated event. Stored, not derived — carries history.
      enum:
        - SCAN
        - BYO_ADD
        - BYO_CHANGE
        - BYO_SUPPRESS
    GetFieldPairsResponse:
      type: object
      description: List of field pairs for a component.
      properties:
        fieldPairs:
          type: array
          items:
            $ref: '#/components/schemas/FieldPair'
      required:
        - fieldPairs
    ErrorResponse:
      type: object
      required:
        - message
      properties:
        id:
          type: number
        title:
          type: string
        message:
          type: string
    FieldPair:
      type: object
      description: >-
        A logical field-to-field mapping formed by rolling up strands. Unit of
        change tracking and approval in the field-level focused views.
      properties:
        fieldPairGroupId:
          type: string
          description: Stable identity of the rolled-up field pair.
        payloadGroupId:
          type: string
          description: Stable identity of the parent payload (xgress pair).
        componentId:
          type: string
          description: The component this field pair lives on.
        ingress:
          $ref: '#/components/schemas/FieldPairEndpoint'
        egress:
          $ref: '#/components/schemas/FieldPairEndpoint'
        origin:
          $ref: '#/components/schemas/FieldPairOrigin'
        isSuppressed:
          type: boolean
          description: Whether this field pair is currently suppressed in projections.
        upstreamSourcesCount:
          type: integer
          description: Number of upstream sources feeding this pair's ingress field.
        downstreamConsumersCount:
          type: integer
          description: Number of downstream consumers of this pair's egress field.
        upstreamDependencies:
          type: array
          description: >-
            Fields feeding this pair's ingress field, each at its minimum hop
            distance with the path taken to reach it. The component-level
            dependency summary is aggregated from these client-side.
          items:
            $ref: '#/components/schemas/FieldDependency'
        downstreamDependencies:
          type: array
          description: >-
            Fields consuming this pair's egress field, each at its minimum hop
            distance with the path taken to reach it.
          items:
            $ref: '#/components/schemas/FieldDependency'
        strandIds:
          type: array
          description: >-
            Identifiers of the strands that rolled up into this field pair (for
            traceback to the underlying scanner output).
          items:
            type: string
        createdAt:
          type: string
          format: date-time
          description: When this row was produced.
        createdBy:
          type: string
          description: >-
            Actor that produced this row (user or api key id). Absent for
            SCAN-origin rows.
      required:
        - fieldPairGroupId
        - payloadGroupId
        - componentId
        - ingress
        - egress
        - origin
        - isSuppressed
    FieldPairEndpoint:
      type: object
      description: One side (ingress or egress) of a field pair.
      properties:
        componentId:
          type: string
          description: The component containing the xgress.
        xgressId:
          type: string
          description: The ingress or egress (xgress) ID.
        fieldPath:
          type: string
          description: >-
            Field path within the xgress payload (e.g.
            "$.payload.amount.value").
        dataType:
          type: string
          description: Normalized data type for this field.
      required:
        - componentId
        - xgressId
        - fieldPath
    FieldDependency:
      type: object
      description: >-
        A field reachable from a field-level unit (field pair or field diff)
        through the lineage graph, at its minimum hop distance, with the path
        taken to reach it. Fields are matched by name across service boundaries,
        so results are only as accurate as the underlying name matching.
      properties:
        componentName:
          type: string
          description: The component the reached field belongs to.
        componentType:
          type: string
          enum:
            - CODE
            - DATA_STORE
          description: >-
            Whether the reached field's component is a code component or a data
            store.
        field:
          type: string
          description: The reached field name.
        hops:
          type: integer
          description: >-
            Service boundaries crossed to reach this field. 1 = directly
            connected.
        path:
          type: array
          description: >-
            Ordered, source-first chain from this unit's field to the reached
            field. The first element is this component's field; the last element
            is the reached field itself.
          items:
            type: object
            properties:
              componentName:
                type: string
              componentType:
                type: string
                enum:
                  - CODE
                  - DATA_STORE
              field:
                type: string
            required:
              - componentName
              - componentType
              - field
      required:
        - componentName
        - componentType
        - field
        - hops
        - path
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````