> ## Documentation Index
> Fetch the complete documentation index at: https://docs.operark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Approve a proposal and promote into tenant_workspace

> Promotes the proposed SKILL.md into the tenant_workspace skill catalog. Writes an audit row and marks the proposal as approved.



## OpenAPI

````yaml /api-reference/openapi.json post /api/skills/proposals/{id}/approve
openapi: 3.1.0
info:
  title: Operark API
  version: 2.0.0
  description: >
    # Operark — The AI Corporate Operating System — Full API Reference


    Complete API documentation covering:

    - **v1 Public API** — RESTful endpoints for external integrations (API key
    auth)

    - **v2 Public API** — Governance, analytics, and agent execution (API key
    auth)

    - **Internal API** — Frontend-facing endpoints (JWT auth)

    - **SCIM 2.0** — User provisioning (RFC 7643/7644)

    - **WebSocket** — Real-time streaming ([WebSocket Protocol
    Docs](/api/docs/websocket))


    ## Authentication


    | API | Auth Method | Header |

    |-----|-------------|--------|

    | v1 Public | API Key | `Authorization: Bearer operark_live_...` |

    | v2 Public | API Key | `Authorization: Bearer <raw_key>` |

    | Internal | JWT | `Authorization: Bearer <jwt_token>` |

    | SCIM | Bearer Token | `Authorization: Bearer <scim_token>` |


    ## Rate Limits


    | Tier | Read | Write | Execute | Admin |

    |------|------|-------|---------|-------|

    | Default | 200/min | 60/min | 20/min | 30/min |

    | Service | 200/min | 60/min | 100/min | 30/min |


    ## Error Format


    All errors follow a standard envelope:

    ```json

    {
      "error": {
        "code": "VALIDATION_ERROR",
        "message": "Human-readable description",
        "details": { ... },
        "requestId": "abc-123"
      }
    }

    ```
  contact:
    name: Operark API Support
    email: api@operark.com
    url: https://operark.com
  license:
    name: Proprietary
    url: https://operark.com/terms
servers:
  - url: https://api.operark.com
    description: Production
  - url: http://localhost:3001
    description: Development
security: []
paths:
  /api/skills/proposals/{id}/approve:
    post:
      tags:
        - Internal — Skills
      summary: Approve a proposal and promote into tenant_workspace
      description: >-
        Promotes the proposed SKILL.md into the tenant_workspace skill catalog.
        Writes an audit row and marks the proposal as approved.
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                reviewer_notes:
                  type: string
      responses:
        '200':
          description: Approved + promoted
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Proposal not found
        '409':
          description: Proposal not in pending state
      security:
        - BearerJWT: []
components:
  securitySchemes:
    BearerJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token from /api/auth/token

````