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

# List evaluation definitions

> Retrieves a paginated list of evaluation definitions for an application.



## OpenAPI

````yaml https://app.stainless.com/api/spec/documented/avido/openapi.documented.yml get /v0/definitions
openapi: 3.1.1
info:
  title: Avido API
  description: >-
    Avido's API for LLM usage events, tool calls, trace management, webhook
    validation, and more. See each endpoint's request/response schema for
    details.
  version: 0.1.0
  contact:
    name: Avido Support
    email: support@avidoai.com
    url: https://avidoai.com/support
servers:
  - url: https://api.avidoai.com
    description: Production API
security:
  - ApiKey: []
    ApplicationId: []
paths:
  /v0/definitions:
    get:
      tags:
        - Eval Definitions
      summary: List evaluation definitions
      description: Retrieves a paginated list of evaluation definitions for an application.
      operationId: listEvalDefinitions
      parameters:
        - in: query
          name: skip
          schema:
            description: Number of items to skip before starting to collect the result set.
            example: 0
            default: 0
            type: integer
            minimum: 0
            maximum: 9007199254740991
          description: Number of items to skip before starting to collect the result set.
        - in: query
          name: limit
          schema:
            description: Number of items to include in the result set.
            example: 25
            type: integer
            minimum: 1
            maximum: 100
          description: Number of items to include in the result set.
        - in: query
          name: orderBy
          schema:
            description: Field to order the result set by.
            example: createdAt
            default: createdAt
            type: string
            enum:
              - createdAt
              - modifiedAt
              - name
              - type
              - id
          description: Field to order the result set by.
        - in: query
          name: orderDir
          schema:
            description: Order direction.
            example: desc
            default: desc
            type: string
            enum:
              - asc
              - desc
          description: Order direction.
        - in: query
          name: taskId
          schema:
            description: Filter by task ID
            example: 456e4567-e89b-12d3-a456-426614174000
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Filter by task ID
        - in: query
          name: traceId
          schema:
            description: Filter by trace ID
            example: 789e4567-e89b-12d3-a456-426614174000
            type: string
          description: Filter by trace ID
        - in: query
          name: quickstartId
          schema:
            description: Filter by quickstart ID (for quickstart-scoped evals)
            example: 123e4567-e89b-12d3-a456-426614174000
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Filter by quickstart ID (for quickstart-scoped evals)
        - in: query
          name: definitionStatus
          schema:
            description: >-
              Filter by eval definition status (DRAFT or ACTIVE). Defaults to
              ACTIVE when not provided.
            example: DRAFT
            type: string
            enum:
              - DRAFT
              - ACTIVE
          description: >-
            Filter by eval definition status (DRAFT or ACTIVE). Defaults to
            ACTIVE when not provided.
        - in: query
          name: status
          schema:
            description: Filter by evaluation status (e.g. COMPLETED)
            example: COMPLETED
            type: string
            enum:
              - PENDING
              - IN_PROGRESS
              - COMPLETED
              - FAILED
              - SKIPPED
          description: Filter by evaluation status (e.g. COMPLETED)
        - in: query
          name: type
          schema:
            description: Filter by evaluation type (e.g. NATURALNESS)
            example: NATURALNESS
            type: string
          description: Filter by evaluation type (e.g. NATURALNESS)
        - in: query
          name: scopeType
          schema:
            description: >-
              Filter by eval definition scope (topic-scoped or
              application-wide). Ignored if 'topicId' is specified.
            example: topic
            type: string
            enum:
              - topic
              - application
          description: >-
            Filter by eval definition scope (topic-scoped or application-wide).
            Ignored if 'topicId' is specified.
        - in: query
          name: topicId
          schema:
            description: >-
              Filter by specific topic ID. When provided, 'scopeType' parameter
              is ignored as this inherently filters topic-scoped evals.
            example: 456e4567-e89b-12d3-a456-426614174000
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: >-
            Filter by specific topic ID. When provided, 'scopeType' parameter is
            ignored as this inherently filters topic-scoped evals.
      responses:
        '200':
          description: Successfully retrieved evaluation definitions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedEvalDefinitionResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Avido from 'avido';

            const client = new Avido({
              apiKey: process.env['AVIDO_API_KEY'], // This is the default and can be omitted
              applicationID: process.env['AVIDO_APPLICATION_ID'], // This is the default and can be omitted
            });

            // Automatically fetches more pages as needed.
            for await (const evalDefinition of client.definitions.list()) {
              console.log(evalDefinition.id);
            }
        - lang: Python
          source: |-
            import os
            from avido import Avido

            client = Avido(
                api_key=os.environ.get("AVIDO_API_KEY"),  # This is the default and can be omitted
                application_id=os.environ.get("AVIDO_APPLICATION_ID"),  # This is the default and can be omitted
            )
            page = client.definitions.list()
            page = page.data[0]
            print(page.id)
components:
  schemas:
    PaginatedEvalDefinitionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EvalDefinitionOutput'
        pagination:
          type: object
          properties:
            skip:
              type: integer
              minimum: 0
              maximum: 9007199254740991
              description: Number of items skipped.
              example: 0
            limit:
              type: integer
              minimum: 1
              maximum: 9007199254740991
              description: Number of items per page.
              example: 25
            total:
              type: integer
              minimum: 0
              maximum: 9007199254740991
              description: Total number of items available.
              example: 100
            totalPages:
              type: integer
              minimum: 0
              maximum: 9007199254740991
              description: Total number of pages available.
              example: 4
            totalCount:
              description: >-
                Total number of items without filters applied. Used to
                distinguish between truly empty results and empty filtered
                results.
              example: 100
              type: integer
              minimum: 0
              maximum: 9007199254740991
          required:
            - skip
            - limit
            - total
            - totalPages
          additionalProperties: false
          title: PaginationResponse
          description: Pagination metadata returned in a paginated response.
      required:
        - data
        - pagination
      additionalProperties: false
      title: Paginated Eval Definitions
      description: Paginated response containing eval definitions
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message explaining the error.
          example: Resource not found
      required:
        - message
      additionalProperties: false
      title: ErrorResponse
      description: Standard error format for failed API operations.
    ValidationErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message indicating what went wrong.
          example: Invalid request data
        issues:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              message:
                type: string
              path:
                type: array
                items:
                  type: string
            required:
              - code
              - message
              - path
            additionalProperties: false
          description: Array of detailed validation error objects.
          example:
            - code: invalid_string
              message: Invalid UUID
              path:
                - id
      required:
        - message
        - issues
      additionalProperties: false
      title: ValidationErrorResponse
      description: Details about validation errors in incoming requests.
    EvalDefinitionOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        createdAt:
          description: When the eval definition was created
          example: '2024-01-05T12:34:56.789Z'
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        modifiedAt:
          description: When the eval definition was last modified
          example: '2024-01-05T12:34:56.789Z'
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        type:
          $ref: '#/components/schemas/EvalType'
        name:
          type: string
        globalConfig:
          anyOf:
            - type: object
              properties:
                criterion:
                  type: string
                  minLength: 1
                  description: >-
                    The criterion describes what our evaluation LLM must look
                    for in the response. Remember that the answer to the
                    criterion must be as a pass/fail.
              required:
                - criterion
              additionalProperties: false
            - oneOf:
                - $ref: '#/components/schemas/OutputMatchStringConfigOutput'
                - $ref: '#/components/schemas/OutputMatchListConfigOutput'
              type: object
              discriminator:
                propertyName: type
                mapping:
                  string:
                    $ref: '#/components/schemas/OutputMatchStringConfigOutput'
                  list:
                    $ref: '#/components/schemas/OutputMatchListConfigOutput'
        styleGuideId:
          anyOf:
            - type: string
              format: uuid
              pattern: >-
                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: 'null'
        application:
          anyOf:
            - $ref: '#/components/schemas/ApplicationOutput'
            - type: 'null'
        topics:
          description: Topic IDs this eval definition is linked to (for topic-scoped evals)
          example:
            - 456e4567-e89b-12d3-a456-426614174000
          type: array
          items:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      required:
        - id
        - createdAt
        - modifiedAt
        - type
        - name
      additionalProperties: false
    EvalType:
      type: string
      enum:
        - NATURALNESS
        - STYLE
        - RECALL
        - CUSTOM
        - OUTPUT_MATCH
    OutputMatchStringConfigOutput:
      type: object
      properties:
        type:
          type: string
          const: string
        extract:
          $ref: '#/components/schemas/OutputMatchExtractConfigOutput'
      required:
        - type
      additionalProperties: false
    OutputMatchListConfigOutput:
      type: object
      properties:
        type:
          type: string
          const: list
        matchMode:
          type: string
          enum:
            - exact_unordered
            - contains
        scoreMetric:
          type: string
          enum:
            - f1
            - precision
            - recall
        passThreshold:
          type: number
          minimum: 0
          maximum: 1
        extract:
          $ref: '#/components/schemas/OutputMatchExtractConfigOutput'
      required:
        - type
        - matchMode
      additionalProperties: false
    ApplicationOutput:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the application
          example: 123e4567-e89b-12d3-a456-426614174000
        orgId:
          type: string
          description: Organization ID that owns this application
          example: org_123456
        title:
          type: string
          minLength: 1
          description: Title of the application
          example: Customer Support Bot
        slug:
          type: string
          minLength: 1
          description: URL-friendly slug for the application
          example: customer-support-bot
        description:
          type: string
          description: Description of the application
          example: AI assistant for customer support inquiries
        context:
          type: string
          description: Context/instructions for the application
          example: You are a helpful customer support assistant...
        language:
          default: en
          description: Language of the application.
          example: en
          type: string
          enum:
            - da
            - de
            - en
            - es
            - fr
            - it
            - nl
            - pt
            - sv
        type:
          type: string
          enum:
            - CHATBOT
            - AGENT
          description: Type of the application. Valid values are CHATBOT or AGENT.
          example: CHATBOT
        environment:
          default: DEV
          description: Environment of the application. Defaults to DEV.
          example: DEV
          type: string
          enum:
            - DEV
            - PROD
        humanAnnotationEnabled:
          type: boolean
          description: Whether human annotation is enabled for this application
          example: false
        createdAt:
          description: When the application was created
          example: '2024-01-05T12:34:56.789Z'
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        modifiedAt:
          description: When the application was last modified
          example: '2024-01-05T12:34:56.789Z'
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - id
        - orgId
        - title
        - slug
        - description
        - context
        - language
        - type
        - environment
        - humanAnnotationEnabled
        - createdAt
        - modifiedAt
      additionalProperties: false
      title: Application
      description: Application configuration and metadata
    OutputMatchExtractConfigOutput:
      type: object
      properties:
        pattern:
          type: string
          minLength: 1
        flags:
          type: string
          pattern: ^[gimsuy]*$
        group:
          anyOf:
            - type: integer
              minimum: 0
              maximum: 9007199254740991
            - minItems: 1
              type: array
              items:
                type: integer
                minimum: 0
                maximum: 9007199254740991
      required:
        - pattern
        - flags
        - group
      additionalProperties: false
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Your unique Avido API key
    ApplicationId:
      type: apiKey
      in: header
      name: x-application-id
      description: Your unique Avido Application ID

````