---
title: "Upload a private voice caption for a photo post"
method: POST
path: "/posts/voice-captions"
tags: ["Posts"]
---

# Upload a private voice caption for a photo post

`POST /posts/voice-captions`

## Request

- Base URL: `https://api.shopseen.com/v1`
- URL: `https://api.shopseen.com/v1/posts/voice-captions`
- Auth: HTTP bearer

## Headers

- `X-Voice-Duration-Ms` integer, required

## Request body `audio/mp4`

- string, binary: M4A recording, at most 2 MiB

## Response `201`

Uploader-owned, single-use reservation

- object
  - `voice_caption` object
    - `id` string, uuid
    - `duration_ms` integer

## Other responses

- `400`: Invalid duration or recording
- `401`: Authentication required
- `413`: Recording exceeds 2 MiB
- `429`: Upload limit reached

---

[API](https://skmtc.dev/shopseen/apis/a-side-api.md) - [All operations](https://skmtc.dev/shopseen/apis/a-side-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shopseen/apis/a-side-api/revisions/f37f989e90da?raw)
