---
title: "Start web dictation"
method: POST
path: "/tally/voice/dictation"
tags: ["Tally Voice"]
---

# Start web dictation

`POST /tally/voice/dictation`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/tally/voice/dictation`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Starts push-to-talk dictation for the web Tally composers, funded like Tally chat. While the firm has included Tally usage, returns a gateway ticket (`transport=gateway`) and holds the audio cost against the firm's allowance; the gateway settles streamed minutes when the dictation ends. Once that usage is used up, the caller's own OpenAI connection answers the supplied WebRTC offer (`transport=webrtc`): a ChatGPT/Codex sign-in through the Codex App Server, or an OpenAI API key through the Realtime API. Credentials never leave the server.

## Request body

- object
  - `sdp` string: Browser WebRTC offer, used only for personal-connection dictation.

## Response `201`

Dictation started

- object
  - `transport` 'gateway' | 'webrtc', required
  - `provider` 'codex' | 'openai'
  - `sdp` string: WebRTC answer SDP (webrtc only).
  - `sessionId` string, uuid
  - `ticket` string: One-time gateway credential (gateway only).
  - `ticketExpiresAt` string, date-time
  - `gatewayUrl` string, uri
  - `reservedSeconds` integer

## Other responses

- `400`: Error response
- `402`: Error response
- `409`: Error response
- `503`: Error response
- `default`: Error response

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
