---
title: "Replace a project's per-project config"
method: PUT
path: "/api/v1/projects/{id}/config"
tags: ["projects"]
---

# Replace a project's per-project config

`PUT /api/v1/projects/{id}/config`

## Path parameters

- `id` string, required — Project identifier (registry key).

## Request body

- SetProjectConfigInput
  - `config` ProjectConfig, required
    - `agentConfig` AgentConfig
      - `effort` string
      - `mode` string
      - `model` string
      - `permissions` string
    - `agentRules` string
    - `agentRulesFile` string
    - `autoReview` boolean
    - `canonicalRepoURL` string
    - `containerReap` ContainerReapConfig
      - `disabled` boolean
    - `defaultBranch` string
    - `env` object
    - `orchestrator` RoleOverride
      - `agent` string
      - `agentConfig` AgentConfig
        - `effort` string
        - `mode` string
        - `model` string
        - `permissions` string
    - `orchestratorRules` string
    - `postCreate` string[]
    - `reviewers` DomainReviewerConfig[]
      - `agentConfig` AgentConfig
        - `effort` string
        - `mode` string
        - `model` string
        - `permissions` string
      - `harness` string, required
    - `sessionPrefix` string
    - `symlinks` string[]
    - `trackerIntake` TrackerIntakeConfig
      - `assignee` string
      - `enabled` boolean
      - `provider` 'github' | 'gitlab'
      - `repo` string
    - `worker` RoleOverride
      - `agent` string
      - `agentConfig` AgentConfig
        - `effort` string
        - `mode` string
        - `model` string
        - `permissions` string

## Response `200`

OK

- ProjectResponse
  - `project` Project, required
    - `agent` string
    - `config` ProjectConfig
      - `agentConfig` AgentConfig
        - `effort` string
        - `mode` string
        - `model` string
        - `permissions` string
      - `agentRules` string
      - `agentRulesFile` string
      - `autoReview` boolean
      - `canonicalRepoURL` string
      - `containerReap` ContainerReapConfig
        - `disabled` boolean
      - `defaultBranch` string
      - `env` object
      - `orchestrator` RoleOverride
        - `agent` string
        - `agentConfig` AgentConfig
          - `effort` string
          - `mode` string
          - `model` string
          - `permissions` string
      - `orchestratorRules` string
      - `postCreate` string[]
      - `reviewers` DomainReviewerConfig[]
        - `agentConfig` AgentConfig
          - `effort` string
          - `mode` string
          - `model` string
          - `permissions` string
        - `harness` string, required
      - `sessionPrefix` string
      - `symlinks` string[]
      - `trackerIntake` TrackerIntakeConfig
        - `assignee` string
        - `enabled` boolean
        - `provider` 'github' | 'gitlab'
        - `repo` string
      - `worker` RoleOverride
        - `agent` string
        - `agentConfig` AgentConfig
          - `effort` string
          - `mode` string
          - `model` string
          - `permissions` string
    - `defaultBranch` string, required
    - `folderMissing` boolean, required
    - `id` string, required
    - `kind` 'single_repo' | 'workspace' | 'scratch', required
    - `name` string, required
    - `path` string, required
    - `repo` string, required
    - `workspaceRepos` WorkspaceRepo[]
      - `gitStatus` string
      - `name` string, required
      - `relativePath` string, required
      - `repo` string, required

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `500` — Internal Server Error

## Changes

- **2026-09-15** `44477babb334` — 8 info
  - added the new optional request property `config/agentConfig/effort`
  - added the new optional request property `config/orchestrator/agentConfig/effort`
  - added the new optional request property `config/reviewers/items/agentConfig/effort`
  - added the new optional request property `config/worker/agentConfig/effort`
  - …4 more
- **2026-09-05** `88f0633f1ef4` — 2 info
  - added the new optional request property `config/canonicalRepoURL`
  - added the optional property `project/config/canonicalRepoURL` to the response with the `200` status
- **2026-09-04** `9d68955a2566` — 1 info
  - added the required property `project/folderMissing` to the response with the `200` status
- **2026-09-03** `d31a2d019c47` — 3 info
  - added the optional property `reporting_owner` to the response with the `400` status
  - added the optional property `reporting_owner` to the response with the `404` status
  - added the optional property `reporting_owner` to the response with the `500` status
- **2026-09-02** `994cad7b0028` — 2 info
  - added the new optional request property `config/reviewers/items/agentConfig`
  - added the optional property `project/config/reviewers/items/agentConfig` to the response with the `200` status

[Full history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/projects/:id/config/put.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/revisions/855127cb1478?raw)
