---
title: "Upload voice attachment"
method: POST
path: "/v3/attachments/voice"
tags: ["Attachments"]
---

# Upload voice attachment

`POST /v3/attachments/voice`

Uploads an audio file as a `multipart/form-data` request, converts it to LinkedIn voice format, and returns the attachment metadata including the duration. Use the returned `id` to attach the voice message to LinkedIn voice outreach endpoints.

## Response `200`

Voice attachment uploaded and converted

- object — Uploaded voice message attachment.
  - `id` integer, required — Attachment identifier.
  - `fileName` string, required — Original file name as supplied by the upload.
  - `lengthInSeconds` integer, required — Duration of the voice message in seconds.

## Other responses

- `400` — File is missing, empty, too long, or could not be converted. | `code` | Meaning | |---|---| | `attachment.emptyFile` | No file provided or file is empty | | `attachment.fileTooLong` | Voice message exceeds the 60-second limit | | `attachment.conversionError` | Audio file could not be converted to LinkedIn voice format |
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — Attachments feature is not available for this user or team.
- `429` — Too Many Requests

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
