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

# List metrics annotated with compatibility for a version

> Returns evaluable metrics annotated with whether they can be satisfied by the version's product metadata and conversation endpoint connection output mapping, plus a `relevance` ranking against the tests the evaluation will run against. Span-dependent and runtime-only params are out of scope and treated as always satisfied. A version with no conversation target at all (no endpoint, phone, or WebRTC connection) reports every metric incompatible, since this evaluation has to produce new output before scoring it. Its session counterpart `GET /sessions/{id}/compatible-metrics` scores output that is already recorded, so it assesses each parameter instead. When `testIds` are supplied, each metric is ranked `linked` (linked to a specification of one of those tests), `matching` (linked to a same-product specification whose testType matches one of those tests), or `none`. Without `testIds` every metric is `none`.



## OpenAPI

````yaml https://api.galtea.ai/openapi.json get /versions/{id}/compatible-metrics
openapi: 3.0.0
info:
  version: 1.0.0
  title: Product Management Service API
  description: API documentation for Product Management Service
  contact:
    name: Galtea AI
servers:
  - url: https://api.galtea.ai
security:
  - bearerAuth: []
tags: []
externalDocs:
  description: Galtea Platform Documentation
  url: https://docs.galtea.ai
paths:
  /versions/{id}/compatible-metrics:
    get:
      tags:
        - versions
      summary: List metrics annotated with compatibility for a version
      description: >-
        Returns evaluable metrics annotated with whether they can be satisfied
        by the version's product metadata and conversation endpoint connection
        output mapping, plus a `relevance` ranking against the tests the
        evaluation will run against. Span-dependent and runtime-only params are
        out of scope and treated as always satisfied. A version with no
        conversation target at all (no endpoint, phone, or WebRTC connection)
        reports every metric incompatible, since this evaluation has to produce
        new output before scoring it. Its session counterpart `GET
        /sessions/{id}/compatible-metrics` scores output that is already
        recorded, so it assesses each parameter instead. When `testIds` are
        supplied, each metric is ranked `linked` (linked to a specification of
        one of those tests), `matching` (linked to a same-product specification
        whose testType matches one of those tests), or `none`. Without `testIds`
        every metric is `none`.
      operationId: listCompatibleMetricsByVersion
      parameters:
        - name: id
          in: path
          description: Version ID to evaluate compatibility against
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum number of metrics to return (default 100)
          required: false
          schema:
            type: integer
        - name: testIds
          in: query
          style: form
          explode: true
          description: >-
            Tests the evaluation will run against; drives the `relevance`
            ranking. All tests must belong to the version's product.
          required: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: List of metrics with compatibility and relevance annotations
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CompatibleMetric'
        '400':
          description: A supplied testId does not belong to the version's product
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Version not found, or a supplied testId does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    CompatibleMetric:
      type: object
      description: >-
        Metric annotated with compatibility against the evaluation context:
        product metadata, test-case availability, and the conversation endpoint
        connection output mapping when the evaluation has to produce new output.
        Span-dependent and runtime-only params are out of scope and treated as
        always satisfied.
      properties:
        id:
          type: string
          example: metric_123
        name:
          type: string
          example: Accuracy
        source:
          type: string
          enum:
            - SELF_HOSTED
            - FULL_PROMPT
            - PARTIAL_PROMPT
            - HUMAN_EVALUATION
            - GEVAL
            - DEEPEVAL
            - DETERMINISTIC
          nullable: true
          example: PARTIAL_PROMPT
          description: >-
            Evaluation method for the metric. `FULL_PROMPT` is deprecated for
            creation — `POST /metrics` rejects it with a 400. Use
            `PARTIAL_PROMPT` for new AI Evaluation metrics. The value remains in
            the enum because existing FULL_PROMPT metrics are still returned by
            reads and filters.
        description:
          type: string
          nullable: true
          example: Measures the accuracy of responses
        isCompatible:
          type: boolean
          description: >-
            Whether the metric can be satisfied by the resolved evaluation
            context. Always checked against the product metadata and test-case
            availability; the conversation endpoint connection output mapping is
            only checked when the evaluation has to produce new output.
        incompatibilityReason:
          type: string
          nullable: true
          description: >-
            Human-readable explanation of why the metric is incompatible.
            Non-null iff `isCompatible === false`.
          example: 'Missing required parameters: product_capabilities, retrieval_context'
        relevance:
          type: string
          enum:
            - linked
            - matching
            - none
          description: >-
            How relevant the metric is to the tests the evaluation runs against.
            `linked`: linked to a specification of one of those tests.
            `matching`: linked to a same-product specification whose testType
            matches one of those tests. `none`: neither, or no test context was
            provided.
          example: linked
      required:
        - id
        - name
        - isCompatible
        - relevance
    Error:
      type: object
      properties:
        error:
          type: string
          example: Error type
        message:
          type: string
          example: Error message description
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key authorization. Pass your API key in the Authorization header as
        a Bearer token. Both new (`gsk_*`) and legacy (`gsk-`) API keys are
        accepted, e.g. `Authorization: Bearer gsk_...` or `Authorization: Bearer
        gsk-...`.

````