> ## Documentation Index
> Fetch the complete documentation index at: https://docs.musicmint.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload Audio

> Upload an audio file by URL and get a clip ID for use in downstream operations

## Endpoint

```http theme={null}
POST /api/v1/music/upload
```

**Synchronous.** Returns clip metadata immediately after upload completes.

Upload an external audio file (MP3, WAV, etc.) by providing its URL. The returned `clipId` can be used in [Add Instrumental](/api-reference/music/add-instrumental) or [Sample](/api-reference/music/sample) operations.

## Request body

| Field       | Type   | Required | Description                                          |
| ----------- | ------ | -------- | ---------------------------------------------------- |
| `audio_url` | string | **Yes**  | Publicly accessible URL of the audio file to upload. |

## Response

```json theme={null}
{
  "code": 0,
  "message": "ok",
  "request_id": "req-1710000000000",
  "data": {
    "clipId": "abc123def456",
    "audioUrl": "https://cdn.example.com/audio/abc123def456.mp3",
    "duration": 30,
    "status": 1
  }
}
```

| Field      | Type    | Description                              |
| ---------- | ------- | ---------------------------------------- |
| `clipId`   | string  | Clip ID to use in subsequent operations. |
| `audioUrl` | string  | Processed audio URL.                     |
| `duration` | integer | Audio duration in seconds.               |
| `status`   | integer | Upload status code. `1` = ready.         |

## Example

```bash theme={null}
curl -X POST https://api.example.com/api/v1/music/upload \
  -H "Authorization: Bearer sk-mm-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "audio_url": "https://example.com/vocals.mp3"
  }'
```
