---
title: "Read-only public board snapshot (no auth)"
method: GET
path: "/public/projects/{token}"
---

# Read-only public board snapshot (no auth)

`GET /public/projects/{token}`

## Request

- Base URL: `https://craaft.io/api/v1`
- URL: `https://craaft.io/api/v1/public/projects/{token}`
- Auth: none required

Unauthenticated read of a board that has public sharing enabled. The
share token is the access check; revoking sharing (or minting a new
token) invalidates old links immediately. Returns a trimmed
projection - no workspace, ownership, or private metadata.

## Response `200`

OK

- PublicBoard: Read-only snapshot returned by the unauthenticated `GET /public/projects/{token}` endpoint. A trimmed projection of the board: no workspace/ownership fields, no card metadata beyond priority + assignee.
  - `project` object, required
    - `id` string, uuid, required
    - `name` string, required
    - `description` string
    - `backgroundImage` string
    - `backgroundColor` string
    - `colorScheme` string
    - `textColor` 'dark' | 'light'
    - `updatedAt` string, date-time, required
  - `columns` object[], required
    - `key` string, required
    - `title` string, required
    - `color` string
    - `position` number, double, required
    - `isDone` boolean
  - `cards` object[], required
    - `id` string, uuid, required
    - `column` string, required: column.key
    - `position` number, double, required
    - `title` string, required
    - `description` string
    - `priority` 'low' | 'medium' | 'high' | 'urgent', nullable
    - `assignedUserId` string, uuid, nullable
    - `assignedUserName` string, nullable
    - `assignedUserAvatarUrl` string

## Other responses

- `404`: No board with this share token (or sharing revoked)

---

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