---
title: "update_system_prompt"
method: POST
path: "/update_system_prompt"
tags: ["system_prompt"]
---

# update_system_prompt

`POST /update_system_prompt`

## Request

- Base URL: `https://app.podmule.com/api/v1`
- URL: `https://app.podmule.com/api/v1/update_system_prompt`
- Auth: HTTP bearer

Replace the value of an existing workspace prompt template (or shadow a global default by creating the org-scoped row for the first time). Use when the user iterates: 'tighten this prompt', 'rewrite our show_notes template', 'drop the last paragraph'. Confirm the new value with the user before saving — every subsequent generation job will pick it up. Rejects if the key has no existing row (org or global); use create_system_prompt for genuinely new keys. Some keys are RESERVED and cannot be overridden — the agent's integrity-level rules (anti-fabrication; see RULES with overridable: false in src/lib/agents/runtime/rules.ts). Attempting to update those returns INVALID_INPUT.

## Headers

- `Idempotency-Key` string
- `X-PodMule-Dry-Run` 'true' | 'false'

## Request body

- unknown

## Response `200`

Capability output wrapped in `{ data }`.

- object
  - `data` unknown, required

## Other responses

- `400`: Invalid input — Zod validation failed.
- `401`: Missing, malformed, or audience-mismatched bearer token.
- `403`: Token is valid but lacks the required scope.
- `404`: Capability not registered, or referenced resource not found.
- `409`: IDEMPOTENCY_KEY_REUSED — same Idempotency-Key was used previously with a different request body.
- `429`: Rate limit exceeded. Retry after the period in `Retry-After`.
- `500`: Internal error.

---

[API](https://skmtc.dev/podmule/apis/podmule-api.md) · [All operations](https://skmtc.dev/podmule/apis/podmule-api/llms.txt) · [OpenAPI document](https://skmtc.dev/podmule/apis/podmule-api/revisions/844ae61495fa?raw)
