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

# Update project configuration

`PUT /project/config`

## Request

- The document declares no server URL.
- Auth: none declared

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
    - `fail_on_refusal` boolean, 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
    - `stream_idle_timeout` integer, 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
  - `trust_content` boolean, 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
    - `fail_on_refusal` boolean, 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
    - `stream_idle_timeout` integer, 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
  - `trust_content` boolean, nullable
  - `validation` object, nullable
  - `worklist` Worklist[], nullable
    - `scanner` string, required
    - `transcripts` string[], required

## Changes

- **2026-10-09** `624af02c270c`: 2 info
  - added the new optional request property `trust_content`
  - added the optional property `trust_content` to the response with the `200` status
- **2026-09-15** `211de6950b48`: 4 info
  - added the new optional request property `generate_config/anyOf[subschema #1: GenerateConfig]/fail_on_refusal`
  - added the new optional request property `model_roles/anyOf[subschema #1]/additionalProperties/anyOf[subschema #1: ModelConfig]/config/fail_on_refusal`
  - added the optional property `generate_config/anyOf[subschema #1: GenerateConfig]/fail_on_refusal` to the response with the `200` status
  - added the optional property `model_roles/anyOf[subschema #1]/additionalProperties/anyOf[subschema #1: ModelConfig]/config/fail_on_refusal` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/meridianlabs-ai/apis/inspect-scout-viewer-api/changes/project/config/put.md)

---

[API](https://skmtc.dev/meridianlabs-ai/apis/inspect-scout-viewer-api.md) - [All operations](https://skmtc.dev/meridianlabs-ai/apis/inspect-scout-viewer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/meridianlabs-ai/apis/inspect-scout-viewer-api/revisions/b799e9a81653?raw)
