---
title: "Full from-image pipeline: perception → assets → planner v2 → render"
method: POST
path: "/v1/perception/proceed"
tags: ["perception"]
---

# Full from-image pipeline: perception → assets → planner v2 → render

`POST /v1/perception/proceed`

## Request

- Base URL: `https://api.slideforge.dev`
- URL: `https://api.slideforge.dev/v1/perception/proceed`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Drive the full from-image pipeline: preflight → option branch.

reconstruct/explain render via the SSG ladder (ADR 2026-07-02);
preserve/teach_deck keep their deterministic asset paths.

## Request body

- ProceedRequest
  - `image` string, required
  - `instructions` string, nullable
  - `theme_id` string, nullable
  - `brand` object, nullable
  - `name` string, nullable
  - `source` string, nullable
  - `selected_option_id` 'preserve_slide' | 'explain_slide' | 'teach_deck' | 'reconstruct_slide', nullable
  - `mode` string
  - `choices` object, nullable
  - `allow_image_generation` boolean
  - `verify` boolean

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Missing image or invalid choices
- `402`: Insufficient balance
- `422`: Validation Error
- `500`: Pipeline failure

---

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