---
title: "Summarise a meeting transcript and list its action items"
method: POST
path: "/voice/action-items"
tags: ["voice"]
---

# Summarise a meeting transcript and list its action items

`POST /voice/action-items`

## 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/voice/action-items`
- Auth: HTTP bearer

`action_items` is empty when the meeting had none and `summary` is empty when there was too little to summarise; action_tasks contains editable metadata aligned with action_items. Optional current_datetime resolves relative deadlines, and optional user_names (the user's own names) tell the user's actions from other people's; 502 when extraction fails.

## Request body

- VoiceActionItemsDto
  - `current_datetime` string, date-time: Reference datetime including timezone for relative deadlines; omit when unknown.
  - `transcript` string, required: The transcript of a recorded meeting, one line per paragraph. Lines may start with a speaker label ("Me:", "Someone else:"). Send only the transcript, not the user's own notes.
  - `user_names` string[]: The recording user's display name and aliases (e.g. full name and first name), so the model can tell the user's own tasks from other people's

## Response `200`

- VoiceActionItemsResponseDto
  - `action_items` string[], required: The meeting's action items as plain text in the transcript's language, without bullets or checkboxes (at most 20, each under 200 characters). An item another person owns starts with their name and a colon. Empty when the meeting had none.
  - `action_tasks` VoiceActionTaskDto[], required: Editable task suggestions, in exactly the same order as action_items. Duration is seconds.
    - `duration` number, nullable, required: Estimated work duration in seconds; null when unknown
    - `due_date` string, date-time, nullable, required: Deadline with timezone offset; null when absent or ambiguous
    - `owner` string, nullable, required: "me" for the user who recorded the meeting, else the name or speaker label of whoever took the action on; null when unclear (file it under the user's own)
    - `owner_confidence` number, nullable, required: How clearly the transcript shows owner, from 0 to 1; null when owner is null. "me" always has one
    - `title` string, required: Plain action title, including owner and deadline words when stated.
    - `description` string, required: Brief supporting context from the transcript.
  - `summary` string, required: A short plain-text paragraph (two to four sentences, at most 700 characters) saying what the meeting covered and decided, in the transcript's language. Empty when the transcript had too little to summarise. Added after `action_items`, so clients that predate it simply ignore it.

---

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