---
title: "Prepare an adopted file revision [write]"
method: POST
path: "/artifacts/{id}/mutations"
tags: ["artifacts"]
---

# Prepare an adopted file revision \[write\]

`POST /artifacts/{id}/mutations`

## Request

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

Prepare immutable UUID/base/hash/size/media/site/restore facts under the real editor's current permission. The source owner's original admission aggregate remains the only quota owner. No accepted bytes, new version or capacity release is implied by preparation.

## Path parameters

- `id` string, required

## Request body

- ArtifactContentInput
  - `request_id` string, uuid, required
  - `base_version` integer, required
  - `raw_sha256` string, required
  - `raw_size_bytes` integer, required
  - `media_type` string, required
  - `site` boolean, required
  - `restored_from` integer, nullable, required

## Response `200`

Exact lifecycle receipt; private, no-store

- ArtifactContentRequest
  - `purpose` 'consumer_artifact_content', required
  - `target_id` string, required
  - `request_id` string, uuid, required
  - `source_id` string, required
  - `source_namespace` 'agent-use', required
  - `owner_user_id` string, required
  - `actor` union, required
    - object
      - `kind` 'user', required
      - `user_id` string, required
    - object
      - `kind` 'publisher', required
      - `publisher_id` string, required
  - `credential_kind` 'personal' | 'consumer' | 'publisher', required
  - `consumer_client_id` string, nullable, required
  - `source_epoch` integer, required
  - `policy_version` unknown, required
  - `base_version` integer, required
  - `raw_sha256` string, required
  - `raw_size_bytes` integer, required
  - `media_type` string, required
  - `site` boolean, required
  - `restored_from` integer, nullable, required
  - `phase` 'pending' | 'claimed' | 'committed' | 'cancelled' | 'reclaimed', required
  - `version` integer, nullable, required
  - `revision_id` string, required
  - `generations_reclaimed` boolean, required
  - `eligible_operation` 'status' | 'reserve' | 'claim' | 'settle' | 'close', required

## Other responses

- `default`: Error { error: { code, message } }; changed facts are 409, unavailable recovery retains fences and capacity

## Changes

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

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/artifacts/:id/mutations/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/8280a065ef6a?raw)
