---
title: "Generate a draft note from an uploaded photo"
method: POST
path: "/note/generate"
tags: ["note"]
---

# Generate a draft note from an uploaded photo

`POST /note/generate`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/note/generate`
- Auth: HTTP bearer

Returns an async task to poll. The draft is not saved: the client reviews it and saves it with PUT /note.

## Request body

- GenerateNoteFromImageDto
  - `image_id` string, uuid, required: image_id returned by POST /note/generate/upload-url

## Response `200`

- GenerateNoteFromImageResponseDto
  - `asyncTaskId` string, required: Poll GET /async-task/{id}. When COMPLETED, metadata.aiResponse is the draft note ({ title, body }, body as HTML) for the client to review and save with PUT /note; when FAILED, metadata.failureReason says why.

## Other responses

- `400`: note_generation_not_uploaded | note_generation_unsupported_type | note_generation_too_large

---

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