---
title: "Approve a proposal: write it through the skill store or memory store [write, owner or admin]"
method: POST
path: "/reflection_proposals/{id}/approve"
---

# Approve a proposal: write it through the skill store or memory store \[write, owner or admin\]

`POST /reflection_proposals/{id}/approve`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/reflection_proposals/{id}/approve`
- Auth: HTTP bearer

A target that changed since the proposal was made answers 409 `stale_target` and marks the proposal superseded.

## Path parameters

- `id` string, required

## Response `200`

OK

- object
  - `reflection_proposal` object
    - `id` string
    - `object` 'reflection_proposal'
    - `session_id` string
    - `kind` 'patch_skill' | 'create_skill' | 'save_lesson'
    - `target_skill_id` string, nullable
    - `target_store_id` string, nullable
    - `path` string, nullable
    - `payload` object
    - `evidence` object[]
    - `status` 'pending' | 'approved' | 'rejected' | 'superseded'
    - `decided_by` string, nullable
    - `decided_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `default`: Error — { error: { code, message, request_id } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/reflection_proposals/:id/approve/post.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/0d435187cd55?raw)
