---
title: "Approve Proposal"
method: POST
path: "/v1/proposals/{proposal_id}/approve"
tags: ["Agent Environment", "proposals"]
---

# Approve Proposal

`POST /v1/proposals/{proposal_id}/approve`

Approve a mutation proposal.

Extracts user_id from JWT claims — users cannot approve on behalf
of others. Forwards to Darwin's POST /v1/proposals/{id}/approve.

## Path parameters

- `proposal_id` string, uuid, required

## Request body

- ApproveProposalRequest
  - `notes` string, nullable

## Response `200`

Successful Response

- Proposal — Console-side view of a Darwin mutation proposal. Captures the fields Console needs for display and review workflow. Additional Darwin-specific fields are preserved in `extra`.
  - `id` string, uuid, required
  - `team_id` string, uuid, required
  - `agent_id` string, uuid, required
  - `genome_id` string, uuid, required
  - `genome_version` integer, required
  - `status` string, required
  - `created_at` integer, required
  - `trigger_summary` string
  - `mutations` ProposedMutation[]
    - `gene_name` string, required
    - `current_value` unknown, required
    - `proposed_value` unknown, required
    - `rationale` string, required
    - `confidence` number, required
  - `pre_fitness` object, nullable
  - `post_fitness` object, nullable
  - `fitness_delta` object, nullable
  - `net_fitness_delta` number, nullable
  - `reviewed_at` integer, nullable
  - `reviewed_by` string, uuid, nullable
  - `reviewer_notes` string, nullable
  - `engine_name` string, nullable
  - `extra` object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/vijilai/apis/vijil-console-api-combined.md) · [All operations](https://skmtc.net/vijilai/apis/vijil-console-api-combined/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vijilai/vijil-console-api-combined/versions/a8b2ee2b2d06/schema)
