---
title: "List existing columns with their per-type settings"
method: GET
path: "/api/external/bridge/{bridgeId}/column/metadata"
tags: ["Columns", "External MCP", "External API"]
---

# List existing columns with their per-type settings

`GET /api/external/bridge/{bridgeId}/column/metadata`

Use to inspect which columns already exist on this bridge and how they are configured.
Returns each column's per-type settings not carried by `getBridge` (link settings,
web-agent model, vendor presence, email generation, webhook URL, cross-bridge cell mirror) plus
`additionalFields` synthetic refs (e.g. `{columnId$basis:firstName}`) usable in
prompts or as `referenceFieldPath` on `createReferenceColumn`. Cross-reference entries
to the bridge's columns from `getBridge` by `columnId` for the base column shape.

## Path parameters

- `bridgeId` string, required

## Response `200`

Per-column metadata for existing columns

- BridgeExistingColumnMetadata[]
  - `columnId` string, uuid, required — UUID of the existing column. Duplicated from `column.columnId` for backwards compatibility.
  - `bridgeId` string, uuid, required — UUID of the bridge this column belongs to. Duplicated from `column.bridgeId` for backwards compatibility.
  - `column` BridgeColumnResponse, required
    - `columnId` string, uuid, required — Unique identifier for the column
    - `bridgeId` string, uuid, required — UUID of the bridge this column belongs to
    - `name` string, required — Display name of the column
    - `prompt` string, required — Prompt or instruction for generating column values
    - `type` 'AiAnalysis' | 'DataAttribute' | 'AiAnalysisTemplate' | 'WebAgentTemplate' | 'Input' | 'Link' | 'CrmLookup' | 'CrmSync' | 'LinkToCell' | 'CompetitorsPresence' | 'EmailTemplate' | 'PhoneCallTemplate' | 'Webhook' | 'MultiLink' | 'AccountScoring', required — Type of column (AiAnalysis, DataAttribute, AiAnalysisTemplate, etc.)
    - `fieldFormat` BridgeFieldFormat, required — Field format specification for the column
      - `baseFormat` 'text' | 'date' | 'url' | 'number' | 'enumeration' | 'list' | 'obj' | 'json' | 'phone' | 'email' | 'boolean' | 'currencyUnit', required — Base data type of the field (String, Integer, Boolean, etc.)
      - `description` string, nullable — Optional description of the field
      - `enumerationValues` FieldFormatEnumerationValue[], nullable — Optional list of enumeration values if field is a select type
        - `value` string, required
        - `label` string
      - `currency` 'USD' | 'CAD', nullable — Optional currency type if field represents a monetary value
      - `listElementBaseFormat` 'text' | 'date' | 'url' | 'number' | 'enumeration' | 'list' | 'obj' | 'json' | 'phone' | 'email' | 'boolean' | 'currencyUnit', nullable — Base format type for list elements if field is a list type
      - `outputFields` BridgeObjFieldDefinition[], nullable — Optional field definitions for object type fields
        - `name` string, required — Name of the field
        - `type` 'text' | 'date' | 'url' | 'number' | 'enumeration' | 'list' | 'obj' | 'json' | 'phone' | 'email' | 'boolean' | 'currencyUnit', required — Data type of the field
        - `description` string, nullable — Optional description of the field
    - `index` integer, required — Zero-based index position of the column
    - `key` string, nullable — Optional key for referencing the column
  - `additionalFields` BridgeRowAttributeOption[], required — Extra reference paths exposed by this column. For basis columns (e.g. a Get Contact column that attaches contact records), these surface synthetic refs like `{columnId$basis:firstName}` you can plug into prompts or `referenceFieldPath` on createReferenceColumn.
    - `key` string, required — Attribute key, e.g. `op:until_date`, `buyer:name`
    - `name` string, required — Human-readable label
    - `fieldFormat` BridgeFieldFormat, required — Field format specification for the column
      - `baseFormat` 'text' | 'date' | 'url' | 'number' | 'enumeration' | 'list' | 'obj' | 'json' | 'phone' | 'email' | 'boolean' | 'currencyUnit', required — Base data type of the field (String, Integer, Boolean, etc.)
      - `description` string, nullable — Optional description of the field
      - `enumerationValues` FieldFormatEnumerationValue[], nullable — Optional list of enumeration values if field is a select type
        - `value` string, required
        - `label` string
      - `currency` 'USD' | 'CAD', nullable — Optional currency type if field represents a monetary value
      - `listElementBaseFormat` 'text' | 'date' | 'url' | 'number' | 'enumeration' | 'list' | 'obj' | 'json' | 'phone' | 'email' | 'boolean' | 'currencyUnit', nullable — Base format type for list elements if field is a list type
      - `outputFields` BridgeObjFieldDefinition[], nullable — Optional field definitions for object type fields
        - `name` string, required — Name of the field
        - `type` 'text' | 'date' | 'url' | 'number' | 'enumeration' | 'list' | 'obj' | 'json' | 'phone' | 'email' | 'boolean' | 'currencyUnit', required — Data type of the field
        - `description` string, nullable — Optional description of the field
  - `webAgentModel` 'Lite' | 'Base' | 'Core' | 'Core2X' | 'Pro' | 'Ultra' | 'UltraTwoX' | 'UltraFourX' | 'UltraEightX', nullable — Web agent model — set on web-agent columns.
  - `linkSettings` BridgeLinkSettings
    - `sourceBridgeId` string, uuid, required — UUID of the referenced (source) bridge whose rows this link column pulls in - i.e. the other bridge, not the bridge this column belongs to
    - `includedStatuses` string[], required — Row statuses included from the source bridge
    - `maxAgeRelativePeriod` 'Future' | 'NextTwoYears' | 'NextYear' | 'NextNineMonths' | 'NextSixMonths' | 'NextThreeMonths' | 'NextTwoMonths' | 'NextOneMonth' | 'NextSixtyDays' | 'NextThirtyDays' | 'NextSevenDays' | 'NextOneDay' | 'Present' | 'LastOneDay' | 'LastSevenDays' | 'LastThirtyDays' | 'LastSixtyDays' | 'LastOneMonths' | 'LastTwoMonths' | 'LastThreeMonths' | 'LastSixMonths' | 'LastNineMonths' | 'LastYear' | 'LastTwoYears' | 'Past', nullable — Max age window for source rows relative to now. Null when no age cap is applied.
    - `filters` TriggerFilters
      - `groups` TriggerFiltersTermGroup[]
        - `terms` TriggerFiltersTerm[]
          - `field` string, required
          - `operation` 'Equals' | 'DoesNotEqual' | 'Contains' | 'DoesNotContain' | 'GreaterThan' | 'LessThan' | 'IsEmpty' | 'IsNotEmpty' | 'Any' | 'None' | 'ContainsAny' | 'ContainsAll' | 'ContainedBy' | 'NotContainedBy' | 'HasCellStatus' | 'HasLookupStatus' | 'HasLastSyncStatus' | 'HasSyncStatusHistory', required
          - `value` unknown
  - `vendorPresenceSettings` BridgeCompetitorPresenceSettings — Vendor presence settings — set on vendor presence columns.
    - `serviceProviders` CompetitorPresenceSettingsServiceProvider[], required
      - `name` string, required
      - `serviceProviderAliases` string[], nullable
      - `productNamesOrAliases` string[], nullable
    - `runWebPresence` boolean, required
    - `contextPrompt` string, nullable
    - `runContractEstimation` boolean
  - `emailGenerationSettings` BridgeEmailGenerationSettings — Email generation settings — set on email template columns.
    - `emailSubjectTemplate` string, required
    - `emailBodyTemplate` string, required
    - `showParentColumn` boolean
    - `snippetDefinitions` object, nullable — Map of snippet name to generation prompt. Prompts can contain {columnId} references.
  - `webhookUrl` string, nullable — Webhook URL — set on webhook columns.
  - `linkToCellSettings` BridgeLinkToCellSettings — Cross-bridge cell-mirror settings — set on LinkToCell columns.
    - `targetBridgeId` string, uuid, required — Bridge whose cell this column mirrors
    - `targetColumnId` string, uuid, required — Column in the target bridge whose value is mirrored
    - `sourceRowIdentity` string, required — How the matching target row is identified from this row (e.g. InherentOpportunityId, ContactColumn)
  - `multiLinkSettings` BridgeMultiLinkSettings — MultiLink settings — set on multi-link columns.
    - `sourceBridgeIds` string[], required — UUIDs of the referenced (source) bridges whose rows these link columns pull in - i.e. the other bridges, not the bridge these columns belong to
    - `includedStatuses` string[], required — Row statuses included from the source bridges
    - `maxAgeRelativePeriod` 'Future' | 'NextTwoYears' | 'NextYear' | 'NextNineMonths' | 'NextSixMonths' | 'NextThreeMonths' | 'NextTwoMonths' | 'NextOneMonth' | 'NextSixtyDays' | 'NextThirtyDays' | 'NextSevenDays' | 'NextOneDay' | 'Present' | 'LastOneDay' | 'LastSevenDays' | 'LastThirtyDays' | 'LastSixtyDays' | 'LastOneMonths' | 'LastTwoMonths' | 'LastThreeMonths' | 'LastSixMonths' | 'LastNineMonths' | 'LastYear' | 'LastTwoYears' | 'Past', nullable — Max age window for source rows relative to now. Null when no age cap is applied.
  - `webContactSettings` WebContactSettings
    - `subPrompt` string, required
    - `examples` string[], nullable
    - `additionalContext` string, nullable
  - `accountScoringMetadata` AccountScoringMetadata
    - `scoringConfig` AccountScoringConfig
      - `fitColumns` AccountScoringFitColumnConfig[], nullable
        - `phaseId` string, uuid, required
        - `includedInScoring` boolean
        - `weight` 'High' | 'Medium' | 'Low'
        - `strongFitGuidance` string, nullable
      - `signalConfigs` object, nullable
      - `fitInteractionPrompt` string, nullable
      - `signalInteractionPrompt` string, nullable
    - `signalBridgesByType` object
  - `runConditions` TriggerFilters
    - `groups` TriggerFiltersTermGroup[]
      - `terms` TriggerFiltersTerm[]
        - `field` string, required
        - `operation` 'Equals' | 'DoesNotEqual' | 'Contains' | 'DoesNotContain' | 'GreaterThan' | 'LessThan' | 'IsEmpty' | 'IsNotEmpty' | 'Any' | 'None' | 'ContainsAny' | 'ContainsAll' | 'ContainedBy' | 'NotContainedBy' | 'HasCellStatus' | 'HasLookupStatus' | 'HasLastSyncStatus' | 'HasSyncStatusHistory', required
        - `value` unknown

## Other responses

- `400` — Invalid request body or format
- `401` — Missing or invalid authentication
- `403` — Unauthorized to access resource or perform action
- `404` — Resource not found
- `415` — Unsupported media type or request body format
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/starbridge/apis/starbridge-external-public-api.md) · [All operations](https://skmtc.dev/starbridge/apis/starbridge-external-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/starbridge/starbridge-external-public-api/revisions/dc7faf636b78/schema)
