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

# Get a case, its variants and its versions



## OpenAPI

````yaml /openapi.json post /v1/evals.cases.get
openapi: 3.1.0
info:
  title: Anpord API
  version: 1.0.0
  description: >-
    Run agent evals and manage prompts. Every endpoint takes a JSON body over
    POST and authenticates with a bearer API key.
servers:
  - description: Production
    url: https://api.anpord.com
security: []
tags:
  - name: Connectors
    description: >-
      Connect the credentials an eval run needs: a harness to drive, a sandbox
      to run in, and a model to play a case's human.
  - name: Batches
    description: Runs started together, such as every case of a suite on every variant.
  - name: Cases
    description: One eval each, belonging to a suite, run on one or more variants.
  - name: Runs
    description: One case run on one variant, with its trials.
  - name: Models
    description: The models a variant can name.
  - name: Prompts
    description: >-
      Read and write prompts. Content is versioned, so writes append rather than
      overwrite, and channels decide which version callers receive.
paths:
  /v1/evals.cases.get:
    post:
      tags:
        - Cases
      summary: Get a case, its variants and its versions
      operationId: cases.get
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ById'
        required: true
      responses:
        '200':
          description: >-
            A case, how its newest version is set up, and each variant it has
            run on.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EvalCaseDetail'
        '400':
          description: The request did not match the expected schema
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/HttpApiDecodeError'
                  - $ref: '#/components/schemas/BadRequest'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
      security:
        - bearer: []
components:
  schemas:
    ById:
      type: object
      required:
        - id
      properties:
        id:
          type: string
      additionalProperties: false
      description: Select one by id.
    EvalCaseDetail:
      type: object
      required:
        - id
        - name
        - setup
        - suite
        - tags
        - variants
        - versions
      properties:
        id:
          $ref: '#/components/schemas/EvalCaseId'
        name:
          type: string
        setup:
          $ref: '#/components/schemas/EvalSetup'
        suite:
          $ref: '#/components/schemas/EvalSuite'
        tags:
          type: array
          items:
            type: string
        variants:
          type: array
          items:
            $ref: '#/components/schemas/EvalVariantResult'
        versions:
          type: array
          items:
            $ref: '#/components/schemas/EvalCaseVersion'
      additionalProperties: false
      description: >-
        A case, how its newest version is set up, and each variant it has run
        on.
    HttpApiDecodeError:
      type: object
      required:
        - issues
        - message
        - _tag
      properties:
        issues:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
        message:
          type: string
        _tag:
          type: string
          enum:
            - HttpApiDecodeError
      additionalProperties: false
      description: The request did not match the expected schema
    BadRequest:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - BadRequest
      additionalProperties: false
    Unauthorized:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - Unauthorized
      additionalProperties: false
    Forbidden:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - Forbidden
      additionalProperties: false
    NotFound:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - NotFound
      additionalProperties: false
    Conflict:
      type: object
      required:
        - message
        - _tag
      properties:
        message:
          type: string
        _tag:
          type: string
          enum:
            - Conflict
      additionalProperties: false
    EvalCaseId:
      type: string
      description: The stable handle an author gives a case.
      title: maxLength(100)
      minLength: 1
      maxLength: 100
      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
    EvalSetup:
      type: object
      required:
        - prepare
        - prompt
        - source
        - validator
        - verify
      properties:
        prepare:
          anyOf:
            - type: string
            - type: 'null'
        prompt:
          type: string
        source:
          $ref: '#/components/schemas/EvalSource'
        validator:
          anyOf:
            - type: string
            - type: 'null'
        validatorFiles:
          type: array
          items:
            type: object
            required:
              - path
              - content
            properties:
              path:
                type: string
                description: >-
                  a string matching the pattern
                  ^(?!\.{1,2}(?:\/|$))[^/\\:\0]+(?:\/(?!\.{1,2}(?:\/|$))[^/\\:\0]+)*$
                title: maxLength(512)
                maxLength: 512
                pattern: >-
                  ^(?!\.{1,2}(?:\/|$))[^/\\:\0]+(?:\/(?!\.{1,2}(?:\/|$))[^/\\:\0]+)*$
              content:
                type: string
                description: a string at most 1000000 character(s) long
                title: maxLength(1000000)
                maxLength: 1000000
            additionalProperties: false
          description: an array of at most 100 item(s)
          title: maxItems(100)
          maxItems: 100
        verify:
          anyOf:
            - type: string
            - type: 'null'
      additionalProperties: false
      description: The prompt, workspace, setup and verifier a run used.
    EvalSuite:
      type: object
      required:
        - id
        - name
      properties:
        id:
          $ref: '#/components/schemas/EvalSuiteId'
        name:
          type: string
      additionalProperties: false
      description: A group of cases that share a prompt and setup.
    EvalVariantResult:
      type: object
      required:
        - distribution
        - lastRunAt
        - lastRunId
        - runs
        - variant
      properties:
        distribution:
          $ref: '#/components/schemas/EvalDistribution'
        lastRunAt:
          $ref: '#/components/schemas/EvalTimestamp'
        lastRunId:
          type: string
        runs:
          $ref: '#/components/schemas/Int'
        variant:
          $ref: '#/components/schemas/EvalVariant'
      additionalProperties: false
      description: A variant of a case and how its newest run went.
    EvalCaseVersion:
      type: object
      required:
        - author
        - changes
        - createdAt
        - definitionHash
      properties:
        author:
          anyOf:
            - type: string
            - type: 'null'
        changes:
          type: array
          items:
            type: string
        createdAt:
          $ref: '#/components/schemas/EvalTimestamp'
        definitionHash:
          type: string
      additionalProperties: false
      description: One definition a case held, who wrote it, and what it changed.
    Issue:
      type: object
      required:
        - _tag
        - path
        - message
      properties:
        _tag:
          type: string
          enum:
            - Pointer
            - Unexpected
            - Missing
            - Composite
            - Refinement
            - Transformation
            - Type
            - Forbidden
          description: The tag identifying the type of parse issue
        path:
          type: array
          items:
            $ref: '#/components/schemas/PropertyKey'
          description: The path to the property where the issue occurred
        message:
          type: string
          description: A descriptive message explaining the issue
      additionalProperties: false
      description: >-
        Represents an error encountered while parsing a value to match the
        schema
    EvalSource:
      anyOf:
        - type: object
          required:
            - kind
          properties:
            kind:
              type: string
              enum:
                - empty
          additionalProperties: false
        - type: object
          required:
            - kind
            - ref
            - url
          properties:
            kind:
              type: string
              enum:
                - repo
            ref:
              anyOf:
                - type: string
                - type: 'null'
            url:
              type: string
              description: a string at least 1 character(s) long
              title: minLength(1)
              minLength: 1
          additionalProperties: false
        - type: object
          required:
            - files
            - kind
          properties:
            files:
              type: object
              required: []
              properties: {}
              additionalProperties:
                type: string
            kind:
              type: string
              enum:
                - files
          additionalProperties: false
      description: The workspace available to the harness before setup runs.
    EvalSuiteId:
      type: string
      description: The stable handle an author gives a suite.
      title: maxLength(100)
      minLength: 1
      maxLength: 100
      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
    EvalDistribution:
      type: object
      required:
        - commandMax
        - commandMedian
        - commandMin
        - deterministic
        - failed
        - passRate
        - passed
        - scored
        - trials
        - voided
      properties:
        commandMax:
          $ref: '#/components/schemas/Int'
        commandMedian:
          type: number
        commandMin:
          $ref: '#/components/schemas/Int'
        deterministic:
          type: boolean
        failed:
          $ref: '#/components/schemas/Int'
        passRate:
          type: number
        passed:
          $ref: '#/components/schemas/Int'
        scored:
          $ref: '#/components/schemas/Int'
        trials:
          $ref: '#/components/schemas/Int'
        voided:
          $ref: '#/components/schemas/Int'
      additionalProperties: false
      description: The scored outcome across the trials of a run.
    EvalTimestamp:
      type: string
      description: An ISO-8601 timestamp in UTC.
      format: date-time
    Int:
      type: integer
      description: an integer
      title: int
    EvalVariant:
      type: object
      required:
        - harness
        - id
        - model
        - profile
        - sandbox
        - userModel
      properties:
        harness:
          type: string
          enum:
            - codex
            - opencode
            - pi
            - fx
            - claude
            - gemini
            - qwen
            - cursor
            - command
        id:
          type: string
        model:
          type: string
        profile:
          anyOf:
            - type: string
            - type: 'null'
        sandbox:
          type: string
          enum:
            - daytona
            - e2b
            - upstash
            - modal
            - cloudflare
            - vercel
            - local
        userModel:
          anyOf:
            - type: string
            - type: 'null'
      additionalProperties: false
      description: >-
        The harness, model, sandbox and profile a case runs on. A case has one
        variant per combination it has run on.
    PropertyKey:
      anyOf:
        - type: string
        - type: number
        - type: object
          required:
            - _tag
            - key
          properties:
            _tag:
              type: string
              enum:
                - symbol
            key:
              type: string
          additionalProperties: false
          description: an object to be decoded into a globally shared symbol
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````