---
title: "Create Capture Endpoint"
method: POST
path: "/captures"
---

# Create Capture Endpoint

`POST /captures`

## Request

- Base URL: `https://api.voicelabs.now` (the document declares no server; this is the origin it was published from)
- URL: `https://api.voicelabs.now/captures`
- Auth: none declared

Upload audio, run STT, persist the capture.

## Response `200`

Successful Response

- CaptureCreateResponse: Response model for ``POST /captures``. Adds ``auto_refine`` and ``allow_auto_paste`` — the server-side settings captured at the moment the capture was created. The client reads these to decide whether to chain a refinement request and whether to fire the synthetic-paste pipeline, so it doesn't need a synced local copy of the capture_settings table across sibling Tauri webviews.
  - `id` string, required
  - `audio_path` string, required
  - `source` string, required
  - `language` string, nullable
  - `duration_ms` integer, nullable
  - `transcript_raw` string, required
  - `transcript_refined` string, nullable
  - `stt_model` string, nullable
  - `llm_model` string, nullable
  - `refinement_flags` RefinementFlagsModel: Boolean toggles that drive the refinement prompt builder.
    - `smart_cleanup` boolean
    - `self_correction` boolean
    - `preserve_technical` boolean
  - `has_segments` boolean
  - `created_at` string, date-time, required
  - `auto_refine` boolean, required
  - `allow_auto_paste` boolean, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/voicelabs/apis/voicebox-api.md) · [All operations](https://skmtc.dev/voicelabs/apis/voicebox-api/llms.txt) · [OpenAPI document](https://skmtc.dev/voicelabs/apis/voicebox-api/revisions/a7a37d1fc02f?raw)
