---
title: "Prepare static evidence for the current deck version"
method: POST
path: "/api/decks/{id}/twin/prepare"
tags: ["Artifact Twin Owner"]
---

# Prepare static evidence for the current deck version

`POST /api/decks/{id}/twin/prepare`

## Request

- Base URL: `https://slidesfly.com`
- URL: `https://slidesfly.com/api/decks/{id}/twin/prepare`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `sb-access-token`

Owner-only. Reads the authoritative private `index.html`, extracts visible static text,
and checks the bytes against the deck version SHA-256. It never executes deck scripts,
loads remote resources, or calls an external model. Publish, update, and restore never
wait for this route.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string

## Response `200`

Current preparation state; a lease holder may return `preparing`

- ArtifactTwinOwnerSuccess
  - `ok` unknown, required
  - `data` ArtifactTwinOwnerState, required
    - `enabled` boolean, required
    - `deck_version` integer, nullable, required
    - `passport_status` 'needs_preparation' | 'preparing' | 'ready' | 'unsupported' | 'failed', required
    - `message` string: Fixed status text only; no source HTML, question, or excerpt.

## Other responses

- `404`: Living Link is unavailable under the current rollout, deck, or reader policy
- `409`: Idempotency-Key reused with a different body (or still in flight)

---

[API](https://skmtc.dev/slidesfly/apis/slidesfly-http-api.md) · [All operations](https://skmtc.dev/slidesfly/apis/slidesfly-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slidesfly/apis/slidesfly-http-api/revisions/9da38f802ead?raw)
