---
title: "Register an uploaded desktop recording for transcription"
method: POST
path: "/v1/desktop/recordings"
tags: ["Desktop"]
---

# Register an uploaded desktop recording for transcription

`POST /v1/desktop/recordings`

## Request

- Base URL: `https://api.quillhub.ai`
- URL: `https://api.quillhub.ai/v1/desktop/recordings`
- Auth: HTTP bearer

Call this AFTER successfully PUT-ing the WAV to the URL returned by `/presign`. Inserts a `request` row in `TO_TRANSCRIBE` state with a 30-day presigned GET URL in `audio_url`; the transcriber worker picks it up directly (no DOWNLOADING phase).

## Request body

- object
  - `device_id` string, required: Stable UUID generated by the desktop app on first launch.
  - `key` string, required: S3 key returned by the /presign call. Server validates it belongs to the caller's prefix.
  - `filename` string, required
  - `mime_type` string, nullable
  - `size_bytes` integer, required
  - `started_at` string, required: ISO-8601 UTC timestamp when the recording started.
  - `duration_ms` integer, nullable
  - `language` string, nullable
  - `title` string, nullable
  - `kind` 'meeting' | 'dictation', nullable: Optional categorisation. 'dictation' for widget voice notes (so the desktop dashboard can filter them), 'meeting' (or absent) for everything else.
  - `workspace_id` integer, nullable: Workspace to route this recording into. When absent, a DB trigger falls back to the caller's default workspace. Server verifies the caller is a member of the target workspace.
  - `project_id` integer, nullable: Project within the target workspace. NULL = Inbox. Server verifies the project belongs to the workspace.

## Response `201`

Recording registered.

- object
  - `request_id` string, required
  - `status` 'TO_TRANSCRIBE', required

## Other responses

- `400`: Key does not belong to caller.
- `401`: Unauthenticated.
- `402`: No minutes left and no active subscription.

---

[API](https://skmtc.dev/quillhub/apis/quillhub-public-api.md) · [All operations](https://skmtc.dev/quillhub/apis/quillhub-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/quillhub/apis/quillhub-public-api/revisions/5bd42ee9d967?raw)
