---
title: "Write Canvas file"
method: PUT
path: "/v1/replica/{id}/canvas/{filename}"
tags: ["Canvas"]
---

# Write Canvas file

`PUT /v1/replica/{id}/canvas/{filename}`

## Request

- Base URL: `https://api.replicas.dev`
- URL: `https://api.replicas.dev/v1/replica/{id}/canvas/{filename}`
- Auth: HTTP bearer

Replaces a text file. Pass `expected_revision` from Read Canvas file to avoid overwriting newer changes. The replica must be active.

## Path parameters

- `id` string, uuid, required
- `filename` string, required

## Headers

- `X-Replicas-Api-Version` '2026-10-07'

## Request body

- UpdateTextFileRequest
  - `content` string, required: Complete replacement text.
  - `expected_revision` string, required: SHA-256 revision returned when the file was read.

## Response `200`

Success

- union
  - object
    - `saved` true, required
    - `revision` string, required
    - `size_bytes` integer, required
  - object
    - `saved` false, required
    - `current` object, required
      - `content` string, required
      - `revision` string, required
      - `size_bytes` integer, required

## Other responses

- `401`: Unauthorized - Invalid or missing API key
- `404`: Resource not found
- `409`: Conflict - Resource already exists or operation conflicts with current state
- `500`: Internal server error

---

[API](https://skmtc.dev/replicas/apis/replicas-api.md) - [All operations](https://skmtc.dev/replicas/apis/replicas-api/llms.txt) - [OpenAPI document](https://skmtc.dev/replicas/apis/replicas-api/revisions/2703ac1c9cb7?raw)
