---
title: "Update project configuration"
method: PUT
path: "/project/config"
tags: ["config"]
---

# Update project configuration

`PUT /project/config`

Updates the project configuration in scout.yaml while preserving comments and formatting. Optionally include If-Match header with current ETag for optimistic concurrency control. Omit If-Match to force save.

## Headers

- `if-match` string, nullable — ETag from GET request (optional, omit to force save)

## Request body

- ProjectConfigInput — Scout project configuration from scout.yaml. Extends ScanJobConfig to represent project-level defaults. All fields from ScanJobConfig are available as project defaults.
  - `filter` union, required
    - string
    - string[]
  - `generate_config` GenerateConfigInput — Model generation options.
    - `adaptive_connections` union
      - boolean
      - integer
      - AdaptiveConcurrency — Bounds and tuning for an adaptive concurrency controller. Basic fields (`min`, `start`, `max`) bound the range the controller will scale within. Advanced fields (`cooldown_seconds`, `decrease_factor`, `scale_up_percent`) tune the response curve and have sensible defaults for typical evaluation workloads — see the parallelism docs for guidance. Accepts a string shorthand ("min-max" or "min-start-max") for use in CLI flags and config files; advanced fields are Python-only.
        - `cooldown_seconds` number, required
        - `decrease_factor` number, required
        - `max` integer, required
        - `min` integer, required
        - `scale_up_percent` number, required
        - `start` integer, required
    - `attempt_timeout` integer, nullable
    - `batch` union
      - boolean
      - integer
      - BatchConfig — Batch processing configuration.
        - `max_batches` integer, nullable
        - `max_consecutive_check_failures` integer, nullable
        - `max_size` integer, nullable
        - `send_delay` number, nullable
        - `size` integer, nullable
        - `tick` number, nullable
    - `best_of` integer, nullable
    - `cache` union
      - boolean
      - CachePolicy — Caching options for model generation.
        - `expiry` string, nullable
        - `per_epoch` boolean, required
        - `scopes` object, required
    - `cache_prompt` union
      - 'auto'
      - boolean
    - `effort` 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
    - `extra_body` object, nullable
    - `extra_headers` object, nullable
    - `fallback_models` string[], nullable
    - `frequency_penalty` number, nullable
    - `internal_tools` boolean, nullable
    - `logit_bias` object, nullable
    - `logprobs` boolean, nullable
    - `max_connections` integer, nullable
    - `max_retries` integer, nullable
    - `max_tokens` integer, nullable
    - `max_tool_output` integer, nullable
    - `modalities` union[], nullable
      - union
        - 'image'
        - ImageOutput — Image output configuration. Use the `options` field to pass provider-specific options directly to the underlying API (e.g. OpenAI image_generation tool parameters).
          - `options` object, nullable
    - `num_choices` integer, nullable
    - `parallel_tool_calls` boolean, nullable
    - `presence_penalty` number, nullable
    - `prompt_logprobs` integer, nullable
    - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
    - `reasoning_history` 'none' | 'all' | 'last' | 'auto', nullable
    - `reasoning_mode` 'standard' | 'pro', nullable
    - `reasoning_summary` 'none' | 'concise' | 'detailed' | 'auto', nullable
    - `reasoning_tokens` integer, nullable
    - `response_schema` ResponseSchemaInput — Schema for model response when using Structured Output.
      - `description` string, nullable
      - `json_schema` JSONSchemaInput, required — JSON Schema for type.
        - `additionalProperties` union
          - JSONSchemaInput — recursive
          - boolean
        - `anyOf` JSONSchemaInput[], nullable
        - `default` unknown, required
        - `description` string, nullable
        - `enum` unknown[], nullable
          - unknown
        - `examples` unknown[], nullable
          - unknown
        - `format` string, nullable
        - `items` JSONSchemaInput — recursive
        - `maxLength` integer, nullable
        - `maximum` union
          - integer
          - number
        - `minLength` integer, nullable
        - `minimum` union
          - integer
          - number
        - `pattern` string, nullable
        - `properties` object, nullable
        - `required` string[], nullable
        - `type` union
          - 'string' | 'integer' | 'number' | 'boolean' | 'array' | 'object' | 'null'
          - string[]
      - `name` string, required
      - `strict` boolean, nullable
    - `seed` integer, nullable
    - `stop_seqs` string[], nullable
    - `system_message` string, nullable
    - `temperature` number, nullable
    - `timeout` integer, nullable
    - `top_k` integer, nullable
    - `top_logprobs` integer, nullable
    - `top_p` number, nullable
    - `verbosity` 'low' | 'medium' | 'high', nullable
  - `limit` integer, nullable
  - `log_level` 'debug' | 'http' | 'sandbox' | 'info' | 'warning' | 'error' | 'critical' | 'notset', nullable
  - `max_processes` integer, nullable
  - `max_transcripts` integer, nullable
  - `metadata` object, nullable
  - `model` string, nullable
  - `model_args` union
    - object
    - string
  - `model_base_url` string, nullable
  - `model_roles` object, nullable
  - `name` string, nullable
  - `results` string, nullable
  - `results_buffer` integer, nullable
  - `scanners` union
    - ScannerSpec[]
      - `file` string, nullable
      - `name` string, required
      - `package_version` string, nullable
      - `params` object, required
      - `version` integer, required
    - object
  - `scans` string, nullable
  - `shuffle` union
    - boolean
    - integer
  - `tags` string[], nullable
  - `transcripts` string, nullable
  - `validation` object, nullable
  - `worklist` Worklist[], nullable
    - `scanner` string, required
    - `transcripts` string[], required

## Response `200`

Successful Response

- ProjectConfigOutput — Scout project configuration from scout.yaml. Extends ScanJobConfig to represent project-level defaults. All fields from ScanJobConfig are available as project defaults.
  - `filter` union, required
    - string
    - string[]
  - `generate_config` GenerateConfigOutput — Model generation options.
    - `adaptive_connections` union
      - boolean
      - integer
      - AdaptiveConcurrency — Bounds and tuning for an adaptive concurrency controller. Basic fields (`min`, `start`, `max`) bound the range the controller will scale within. Advanced fields (`cooldown_seconds`, `decrease_factor`, `scale_up_percent`) tune the response curve and have sensible defaults for typical evaluation workloads — see the parallelism docs for guidance. Accepts a string shorthand ("min-max" or "min-start-max") for use in CLI flags and config files; advanced fields are Python-only.
        - `cooldown_seconds` number, required
        - `decrease_factor` number, required
        - `max` integer, required
        - `min` integer, required
        - `scale_up_percent` number, required
        - `start` integer, required
    - `attempt_timeout` integer, nullable
    - `batch` union
      - boolean
      - integer
      - BatchConfig — Batch processing configuration.
        - `max_batches` integer, nullable
        - `max_consecutive_check_failures` integer, nullable
        - `max_size` integer, nullable
        - `send_delay` number, nullable
        - `size` integer, nullable
        - `tick` number, nullable
    - `best_of` integer, nullable
    - `cache` union
      - boolean
      - CachePolicy — Caching options for model generation.
        - `expiry` string, nullable
        - `per_epoch` boolean, required
        - `scopes` object, required
    - `cache_prompt` union
      - 'auto'
      - boolean
    - `effort` 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
    - `extra_body` object, nullable
    - `extra_headers` object, nullable
    - `fallback_models` string[], nullable
    - `frequency_penalty` number, nullable
    - `internal_tools` boolean, nullable
    - `logit_bias` object, nullable
    - `logprobs` boolean, nullable
    - `max_connections` integer, nullable
    - `max_retries` integer, nullable
    - `max_tokens` integer, nullable
    - `max_tool_output` integer, nullable
    - `modalities` union[], nullable
      - union
        - 'image'
        - ImageOutput — Image output configuration. Use the `options` field to pass provider-specific options directly to the underlying API (e.g. OpenAI image_generation tool parameters).
          - `options` object, nullable
    - `num_choices` integer, nullable
    - `parallel_tool_calls` boolean, nullable
    - `presence_penalty` number, nullable
    - `prompt_logprobs` integer, nullable
    - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max', nullable
    - `reasoning_history` 'none' | 'all' | 'last' | 'auto', nullable
    - `reasoning_mode` 'standard' | 'pro', nullable
    - `reasoning_summary` 'none' | 'concise' | 'detailed' | 'auto', nullable
    - `reasoning_tokens` integer, nullable
    - `response_schema` ResponseSchemaOutput — Schema for model response when using Structured Output.
      - `description` string, nullable
      - `json_schema` JSONSchemaOutput, required — JSON Schema for type.
        - `additionalProperties` union
          - JSONSchemaOutput — recursive
          - boolean
        - `anyOf` JSONSchemaOutput[], nullable
        - `default` unknown, required
        - `description` string, nullable
        - `enum` unknown[], nullable
          - unknown
        - `examples` unknown[], nullable
          - unknown
        - `format` string, nullable
        - `items` JSONSchemaOutput — recursive
        - `maxLength` integer, nullable
        - `maximum` union
          - integer
          - number
        - `minLength` integer, nullable
        - `minimum` union
          - integer
          - number
        - `pattern` string, nullable
        - `properties` object, nullable
        - `required` string[], nullable
        - `type` union
          - 'string' | 'integer' | 'number' | 'boolean' | 'array' | 'object' | 'null'
          - string[]
      - `name` string, required
      - `strict` boolean, nullable
    - `seed` integer, nullable
    - `stop_seqs` string[], nullable
    - `system_message` string, nullable
    - `temperature` number, nullable
    - `timeout` integer, nullable
    - `top_k` integer, nullable
    - `top_logprobs` integer, nullable
    - `top_p` number, nullable
    - `verbosity` 'low' | 'medium' | 'high', nullable
  - `limit` integer, nullable
  - `log_level` 'debug' | 'http' | 'sandbox' | 'info' | 'warning' | 'error' | 'critical' | 'notset', nullable
  - `max_processes` integer, nullable
  - `max_transcripts` integer, nullable
  - `metadata` object, nullable
  - `model` string, nullable
  - `model_args` union
    - object
    - string
  - `model_base_url` string, nullable
  - `model_roles` object, nullable
  - `name` string, nullable
  - `results` string, nullable
  - `results_buffer` integer, nullable
  - `scanners` union
    - ScannerSpec[]
      - `file` string, nullable
      - `name` string, required
      - `package_version` string, nullable
      - `params` object, required
      - `version` integer, required
    - object
  - `scans` string, nullable
  - `shuffle` union
    - boolean
    - integer
  - `tags` string[], nullable
  - `transcripts` string, nullable
  - `validation` object, nullable
  - `worklist` Worklist[], nullable
    - `scanner` string, required
    - `transcripts` string[], required

---

[API](https://skmtc.net/meridianlabs-ai/apis/inspect-scout-viewer-api.md) · [All operations](https://skmtc.net/meridianlabs-ai/apis/inspect-scout-viewer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/meridianlabs-ai/inspect-scout-viewer-api/revisions/80dc9ada6cd6/schema)
