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

# Read Canvas file

`GET /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

## Path parameters

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

## Headers

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

## Response `200`

Success

- CanvasContentResponse: A single Canvas item's content. Text kinds populate `content`; binary kinds populate `base64`. Items over the 5 MB preview cap return `tooLarge: true` with neither payload populated.
  - `filename` string, required: The Canvas-relative file path, including nested folders.
  - `kind` 'markdown' | 'mermaid' | 'html' | 'text' | 'image' | 'pdf' | 'docx' | 'video' | 'audio' | 'other', required: The kind of Canvas item, inferred from its file extension.
  - `size_bytes` integer, required
  - `mime_type` string, required: MIME type to render the content with (e.g. `text/markdown; charset=utf-8`, `image/png`).
  - `content` string: UTF-8 text for `markdown` / `mermaid` / `html` / `text` kinds.
  - `base64` string: Base64 payload for `image` / `pdf` / `docx` / `video` / `audio` / `other` kinds.
  - `too_large` boolean: Present and `true` when the file exceeded the engine's preview size cap.
  - `revision` string: SHA-256 revision to pass as expectedRevision when saving editable text.

## Other responses

- `401`: Unauthorized - Invalid or missing API key
- `404`: Resource not found
- `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)
