---
title: "Classify a voice command transcript into an app action"
method: POST
path: "/voice/intent"
tags: ["voice"]
---

# Classify a voice command transcript into an app action

`POST /voice/intent`

## 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/intent`
- Auth: HTTP bearer

## Request body

- VoiceIntentDto
  - `transcript` string, required: The spoken command, as returned by `POST /voice/transcribe`.
  - `habits` string[]: Habit names the model may match for `start_habit`.
  - `clientDatetime` string: The client's local "now" as `yyyy-MM-dd HH:mm:ss`, used when `timezone` is absent.
  - `timezone` string: IANA time zone (e.g. "Australia/Melbourne"); preferred over `clientDatetime`.

## Response `200`

- VoiceIntentResponseDto
  - `confidence` 'high' | 'medium' | 'low', required
  - `clarification_needed` string, nullable, required
  - `action` string, required
  - `parameters` VoiceIntentParametersDto, required
    - `task` string
    - `time` string
    - `repeat` string
    - `duration_minutes` number
    - `goal` string
    - `habit_name` string
    - `note_text` string
  - `additional_actions` VoiceIntentAdditionalActionDto[]
    - `parameters` object
    - `action` string, required

---

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