---
title: "Start a transcription upload"
method: POST
path: "/api/v1/transcriptions/uploads"
tags: ["Transcriptions"]
---

# Start a transcription upload

`POST /api/v1/transcriptions/uploads`

## Request

- Base URL: `https://your-deployment.example.com`
- URL: `https://your-deployment.example.com/api/v1/transcriptions/uploads`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Returns a presigned upload for one audio file of at most 25 MiB. POST the audio to `upload_url` as `multipart/form-data`, with every `upload_fields` entry as a form field and the audio last as the `file` field, before `expires_at`. Send no `Authorization` header: the signature is the credential. Storage refuses a type other than `mime_type` or a size outside 1 byte to 25 MiB. Then call `POST /api/v1/transcriptions` with `file_key`.

## Request body

- CreateTranscriptionUploadRequest
  - `mime_type` 'audio/mpeg' | 'audio/mp4' | 'audio/wav' | 'audio/webm' | 'audio/ogg' | 'audio/flac', required
  - `file_size` integer, required: Size in bytes of the audio you will upload. At most 25 MiB.

## Response `201`

The upload is ready; POST the audio to `upload_url`.

- CreateTranscriptionUploadResponse201
  - `upload_url` string, required: POST the audio here as `multipart/form-data`. Send no `Authorization` header.
  - `upload_fields` object, required: Form fields to send, unchanged and before the `file` field, with the upload.
  - `file_key` string, required: Pass this to `POST /api/v1/transcriptions` once the upload succeeds.
  - `expires_at` string, required: ISO 8601. The upload is refused after this; mint a new one to retry.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: The API key lacks `ai:generate`.
- `405`: The path does not serve this HTTP method.
- `422`: Request body failed validation, or the balance cannot cover the estimated cost of transcribing `file_size` bytes (`errorCode: "insufficient_credits"`).
- `429`: Per-user rate limit exceeded.

---

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