---
title: "Create or update one approval route"
method: PUT
path: "/v1/approval-routes/{routeId}"
tags: ["governance"]
---

# Create or update one approval route

`PUT /v1/approval-routes/{routeId}`

## Request

- Base URL: `https://api.runx.ai`
- URL: `https://api.runx.ai/v1/approval-routes/{routeId}`
- Auth: HTTP bearer

## Path parameters

- `routeId` string, required

## Headers

- `If-Match` string

## Request body

- PutApprovalRouteRequest
  - `title` string
  - `summary` string
  - `recipients` PolicyApprovalRouteRecipient[], required
    - `kind` 'principal' | 'email' | 'slack_channel' | 'webhook', required
    - `value` string, required
    - `label` string

## Response `200`

Stored approval route.

- ApprovalRouteEnvelope
  - `status` 'success', required
  - `route` PolicyApprovalRouteSummary, required
    - `principal_id` string, required
    - `route_id` string, required
    - `title` string
    - `summary` string
    - `recipients` PolicyApprovalRouteRecipient[], required
      - `kind` 'principal' | 'email' | 'slack_channel' | 'webhook', required
      - `value` string, required
      - `label` string
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: Validation error.
- `401`: Unauthorized.
- `412`: Revision precondition failed.
- `428`: Revision precondition required.

---

[API](https://skmtc.dev/runx/apis/runx-hosted-api.md) · [All operations](https://skmtc.dev/runx/apis/runx-hosted-api/llms.txt) · [OpenAPI document](https://skmtc.dev/runx/apis/runx-hosted-api/revisions/6c940d8edacc?raw)
