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

# Update Eval Source

> Updates a structured eval source document.



## OpenAPI

````yaml https://api.veryfront.com/openapi.json patch /projects/{project_reference}/evals/{eval_id}/source
openapi: 3.1.0
info:
  title: Veryfront REST API
  version: 1.0.0
  summary: Domain-first REST reference for the maintained Veryfront HTTP API surface.
  description: >-
    Project-first HTTP API for Veryfront project resources. Root
    account/platform endpoints that still appear in this reference are
    transitional compatibility surfaces unless the canonical inventory marks
    them otherwise.


    ## Start here


    - **Interactive REST reference:** [/docs](/docs)

    - **Raw OpenAPI document:** [/openapi.json](/openapi.json)

    - **Canonical inventory:** `docs/api-surface-inventory.md` in this
    repository

    - **GraphQL endpoint:** [/graphql](/graphql)

    - **MCP playground:** [/mcp/playground](/mcp/playground)


    ## Authentication


    Use one of these request headers:


    - `Authorization: Bearer <jwt>`

    - `Authorization: Bearer vf_<prefix>_<secret>`

    - `X-API-Key: vf_<prefix>_<secret>`


    JWTs must use the Bearer token contract. API keys work in either the Bearer
    header or `X-API-Key`.


    ## Discovery model


    Veryfront is one platform with multiple access modes:


    - **REST** for resource-oriented and operational HTTP workflows

    - **GraphQL** for connected app-facing data and typed mutations

    - **MCP** for tool-style automation and agent workflows


    For the fastest path through the platform, start with the project-scoped
    domain groups. Transitional account/platform groups are retained for
    compatibility and follow the removal register in the canonical inventory.
  contact:
    name: Veryfront API Support
    url: https://veryfront.com/docs
    email: support@veryfront.com
servers:
  - url: https://api.veryfront.com
    description: Current request origin
  - url: http://localhost:4000
    description: Local development
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: Projects
    description: Core project operations
  - name: Account
    description: >-
      Transitional account-level users and settings retained for dashboard
      compatibility
  - name: Project Users
    description: Project members and invites
  - name: Members
    description: Project members and invites
  - name: Files
    description: Main branch files
  - name: Branch Files
    description: Files on branches
  - name: Environment Files
    description: Files in environments
  - name: Release Files
    description: Files in releases
  - name: Uploads
    description: File uploads and assets
  - name: Branches
    description: Content branches for previews
  - name: Releases
    description: Published file snapshots
  - name: Deployments
    description: Connect releases to environments
  - name: Environments
    description: Deployment targets and variables
  - name: Environment Variables
    description: Project environment variable management
  - name: Domains
    description: Custom domains for environments
  - name: Project Servers
    description: Project-scoped dedicated server instances
  - name: Root Servers
    description: >-
      Transitional root dedicated-server administration retained for
      compatibility
  - name: Tasks
    description: Project tasks
  - name: Evals
    description: Project eval definitions and eval run projections
  - name: Work
    description: Project business-process definitions and execution state
  - name: Workflows
    description: Project workflows
  - name: Workflow Runs
    description: Workflow run history and status
  - name: Schedules
    description: Recurring project automation schedules
  - name: Webhooks
    description: Webhook-triggered automation entry points
  - name: Skills
    description: Project skills
  - name: Prompts
    description: Project prompts
  - name: Tools
    description: Project tools
  - name: Resources
    description: Project-defined resource documents and source-backed resource definitions
  - name: Sandboxes
    description: Ephemeral sandbox execution environments
  - name: Search
    description: Text and vector search
  - name: Knowledge
    description: Knowledge manifest lookup across project knowledge files
  - name: Chunks
    description: File chunks for search indexing
  - name: Embeddings
    description: Vector embeddings
  - name: RAG Documents
    description: Project retrieval-augmented knowledge documents
  - name: Style Artifacts
    description: Project style artifact state and build outputs
  - name: External Storage
    description: Transitional connected cloud-provider file operations
  - name: Project Cache
    description: Project-scoped distributed cache operations
  - name: User Cache
    description: Transitional user cache helpers retained for compatibility
  - name: API Keys
    description: >-
      Transitional user/account API key management; prefer project-scoped keys
      for public integrations
  - name: User
    description: Transitional current-user profile endpoint for first-party clients
  - name: Favorites
    description: Transitional user favorites for first-party dashboard clients
  - name: Subscriptions
    description: Transitional account billing and subscription workflows
  - name: Credits
    description: Transitional account credit balance, purchase, and insufficiency flows
  - name: Usage
    description: >-
      Project/account usage limits and warnings; account-level usage is
      transitional
  - name: Gates
    description: Transitional plan and feature gate checks for first-party clients
  - name: Channels
    description: Project channel integrations and delivery settings
  - name: Agents
    description: Project agents
  - name: Agent Catalog
    description: Public catalog of agents assembled from curated template projects
  - name: Agent Workers
    description: Internal/transitional agent worker leases and sessions
  - name: Agent Runtimes
    description: Registered push-based agent runtime services and runtime target health
  - name: Project Integrations
    description: Project-scoped integration catalog and configuration
  - name: Integrations
    description: Transitional external integration catalog for first-party clients
  - name: Integration Tools
    description: >-
      Transitional dynamic integration tool listing, invocation, and connection
      state
  - name: OAuth
    description: >-
      Transitional OAuth integration flows for first-party and connected-app
      clients
  - name: Templates
    description: Transitional starter-template discovery used during project creation
  - name: AI
    description: >-
      Transitional platform AI gateway/model helpers; project AI assets use
      project-scoped routes
  - name: Images
    description: Generated images and image assets
  - name: Conversations
    description: Transitional conversation/run-control HTTP surface for first-party clients
  - name: Runs
    description: Transitional hosted run-control endpoints for conversation execution
  - name: MCP
    description: >-
      MCP catalog/playground helpers; primary MCP traffic uses the streamable
      MCP handler
  - name: Logs
    description: Project log queries via Loki
  - name: Metrics
    description: Project metric queries via a Prometheus-compatible backend
  - name: Traces
    description: Project trace queries via Grafana Tempo
  - name: Errors
    description: Internal/public error type catalog (RFC 9457)
  - name: Authentication
    description: Transitional auth token, login, logout, magic-link, and JWKS flows
externalDocs:
  description: Interactive REST reference
  url: https://api.veryfront.com/docs
paths:
  /projects/{project_reference}/evals/{eval_id}/source:
    patch:
      tags:
        - Evals
      summary: Update Eval Source
      description: Updates a structured eval source document.
      parameters:
        - schema:
            type: string
          required: true
          name: project_reference
          in: path
        - schema:
            type: string
            minLength: 1
          required: true
          name: eval_id
          in: path
        - schema:
            type: string
          required: false
          name: source_target_kind
          in: query
        - schema:
            type: string
            nullable: true
            format: uuid
          required: false
          name: target_branch_id
          in: query
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - eval-source-patch
                id:
                  type: string
                source:
                  type: object
                  properties:
                    filePath:
                      type: string
                    exportName:
                      type: string
                    content:
                      type: string
                  required:
                    - filePath
                    - exportName
                fields:
                  type: object
                  properties:
                    name:
                      type: string
                    description:
                      type: string
                    target:
                      type: string
                    dataset:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - inline
                            - json
                            - jsonl
                            - dynamic
                        path:
                          type: string
                        examples:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              input:
                                nullable: true
                              reference:
                                nullable: true
                              metadata:
                                type: object
                                additionalProperties:
                                  nullable: true
                            required:
                              - id
                        editable:
                          type: boolean
                        dynamic:
                          type: boolean
                      required:
                        - kind
                        - editable
                        - dynamic
                    repetitions:
                      type: integer
                      minimum: 0
                      exclusiveMinimum: true
                    tags:
                      type: array
                      items:
                        type: string
                    metadata:
                      type: object
                      additionalProperties:
                        nullable: true
                    metrics:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          family:
                            type: string
                            enum:
                              - answer
                              - agent
                              - ops
                              - judge
                              - check
                          severity:
                            type: string
                            enum:
                              - gate
                              - soft
                              - budget
                          threshold:
                            type: object
                            properties:
                              min:
                                type: number
                              max:
                                type: number
                          config:
                            type: object
                            additionalProperties:
                              nullable: true
                          editable:
                            type: boolean
                          dynamic:
                            type: boolean
                        required:
                          - name
                          - family
                          - severity
                          - editable
                          - dynamic
              required:
                - kind
                - id
                - source
                - fields
      responses:
        '200':
          description: Updated eval source document
          content:
            application/json:
              schema:
                type: object
                properties:
                  kind:
                    type: string
                    enum:
                      - eval-source-document
                  id:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                  targetKind:
                    type: string
                    enum:
                      - agent
                  target:
                    type: string
                  source:
                    type: object
                    properties:
                      filePath:
                        type: string
                      exportName:
                        type: string
                      content:
                        type: string
                    required:
                      - filePath
                      - exportName
                  dataset:
                    type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - inline
                          - json
                          - jsonl
                          - dynamic
                      path:
                        type: string
                      examples:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            input:
                              nullable: true
                            reference:
                              nullable: true
                            metadata:
                              type: object
                              additionalProperties:
                                nullable: true
                          required:
                            - id
                      editable:
                        type: boolean
                      dynamic:
                        type: boolean
                    required:
                      - kind
                      - editable
                      - dynamic
                  metrics:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        family:
                          type: string
                          enum:
                            - answer
                            - agent
                            - ops
                            - judge
                            - check
                        severity:
                          type: string
                          enum:
                            - gate
                            - soft
                            - budget
                        threshold:
                          type: object
                          properties:
                            min:
                              type: number
                            max:
                              type: number
                        config:
                          type: object
                          additionalProperties:
                            nullable: true
                        editable:
                          type: boolean
                        dynamic:
                          type: boolean
                      required:
                        - name
                        - family
                        - severity
                        - editable
                        - dynamic
                  repetitions:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                  tags:
                    type: array
                    items:
                      type: string
                  metadata:
                    type: object
                    additionalProperties:
                      nullable: true
                  editableFields:
                    type: array
                    items:
                      type: string
                      enum:
                        - name
                        - description
                        - target
                        - dataset
                        - repetitions
                        - tags
                        - metadata
                        - metrics
                        - check
                  dynamicFields:
                    type: array
                    items:
                      type: string
                      enum:
                        - name
                        - description
                        - target
                        - dataset
                        - repetitions
                        - tags
                        - metadata
                        - metrics
                        - check
                  capabilities:
                    type: array
                    items:
                      type: string
                      enum:
                        - project.evals.read
                        - project.evals.write
                        - project.evals.run
                required:
                  - kind
                  - id
                  - name
                  - targetKind
                  - target
                  - source
                  - dataset
                  - metrics
                  - repetitions
                  - tags
                  - metadata
                  - editableFields
                  - dynamicFields
                  - capabilities
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  error:
                    type: string
                  message:
                    type: string
                  edit_mode:
                    type: string
                    enum:
                      - structured
                      - source_only
                  source_only_reasons:
                    type: array
                    items:
                      type: string
                  source_path:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  error:
                    type: string
                  message:
                    type: string
                  edit_mode:
                    type: string
                    enum:
                      - structured
                      - source_only
                  source_only_reasons:
                    type: array
                    items:
                      type: string
                  source_path:
                    type: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  error:
                    type: string
                  message:
                    type: string
                  edit_mode:
                    type: string
                    enum:
                      - structured
                      - source_only
                  source_only_reasons:
                    type: array
                    items:
                      type: string
                  source_path:
                    type: string
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  error:
                    type: string
                  message:
                    type: string
                  edit_mode:
                    type: string
                    enum:
                      - structured
                      - source_only
                  source_only_reasons:
                    type: array
                    items:
                      type: string
                  source_path:
                    type: string
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  error:
                    type: string
                  message:
                    type: string
                  edit_mode:
                    type: string
                    enum:
                      - structured
                      - source_only
                  source_only_reasons:
                    type: array
                    items:
                      type: string
                  source_path:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use a JWT bearer token or a Veryfront API key in the Authorization
        header.
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative API key header for vf_<prefix>_<secret> tokens.

````