---
title: "Analyze Image Endpoint"
method: POST
path: "/v1/analyze/image"
tags: ["analyze"]
---

# Analyze Image Endpoint

`POST /v1/analyze/image`

## Request

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

Analyze an uploaded image and return a synthesized slide brief.

Sync. Bills `image_analysis` ($0.05) on success only. Feed the returned
`brief` into POST /v1/render/auto to produce a slide.

For multi-slide breakdowns (`slide_count > 1`) returns
`AnalyzeImageMultiResponse` with one entry per slide; the agent then
calls /v1/render/auto once per slide and assembles a deck.

## Request body

- AnalyzeImageRequest: POST /v1/analyze/image request body — vision LLM analyzes an image and synthesizes a slide brief. Sync. Bills against the wallet on success ($0.05 per call). Feed the returned `brief` to POST /v1/render/auto (or any other endpoint that takes a brief). Decoupled from rendering so agents can analyze without committing to a render — and so the from-image UX is two visible stages (Analyzing → Rendering) instead of one opaque "generate" call.
  - `image` string, required
  - `instructions` string, nullable
  - `slide_count` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Missing or invalid image
- `402`: Insufficient balance
- `422`: Validation Error
- `500`: Vision-model analysis failed

---

[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)
