---
title: "Replace Seed Skill Tiptap Document"
method: POST
path: "/api/py/sandbox/seeding/replace-skill-tiptap"
---

# Replace Seed Skill Tiptap Document

`POST /api/py/sandbox/seeding/replace-skill-tiptap`

Replace the Tiptap document of an existing skill row for a starter
skill restore (onboarding ADR 0017).

Restore targets keep their row id, and a legacy starter skill row carries
a non-deterministic id, so the create route's derivation check cannot
authorize this write. Containment comes from the database instead: the
skill row must exist under the caller's authenticated organization and
the given user, whatever its deleted state. Replacement overwrites an
existing document and creates a missing one — a soft-deleted skill's
document was deleted with it.

## Request body

- ReplaceSkillTiptapBody
  - `skill_id` string, uuid, required
  - `user_id` string, required
  - `content` object, required

## Response `200`

Successful Response

- ReplaceSkillTiptapResponse
  - `replaced` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/getauctor/apis/fastapi.md) · [All operations](https://skmtc.dev/getauctor/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getauctor/fastapi/revisions/aeb6faa3b8f0/schema)
