---
title: "Add a track-specific variant"
method: POST
path: "/v1/track/{track_id}/variant"
tags: ["Variants"]
---

# Add a track-specific variant

`POST /v1/track/{track_id}/variant`

## Request

- Base URL: `https://api.audiodelivery.net`
- URL: `https://api.audiodelivery.net/v1/track/{track_id}/variant`
- Auth: HTTP bearer

Appends a new track file to an already-processed track and queues processing. Only 'transcode' and 'preview' are supported. Common body fields: variant_type_id, index. Transcode fields: codec, bitrate, is_stereo, is_strip_tags, is_strip_cover (lossy codecs only; codec defaults to aac at 128 kbps). Preview fields: preview_type, preview_seconds / preview_min_percent / preview_max_percent (when preview_type is seconds), preview_percent / preview_min_seconds / preview_max_seconds (when preview_type is percent), preview_start_percent — plus the same Transcode audio fields. The track is moved to 'processing' and returns to 'ready' when the file is generated.

## Path parameters

- `track_id` string, uuid, required

## Request body

- object
  - `variant_type_id` 'transcode' | 'preview', required
  - `index` string, required: Delivery name; unique across organization and track variants
  - `codec` 'aac' | 'mp3' | 'ogg' | 'opus'
  - `bitrate` integer
  - `is_stereo` boolean
  - `is_strip_tags` boolean
  - `is_strip_cover` boolean
  - `preview_type` 'seconds' | 'percent': preview only
  - `preview_seconds` number: preview + preview_type 'seconds'
  - `preview_min_percent` number: preview + preview_type 'seconds'
  - `preview_max_percent` number: preview + preview_type 'seconds'
  - `preview_percent` number: preview + preview_type 'percent'
  - `preview_min_seconds` number: preview + preview_type 'percent'
  - `preview_max_seconds` number: preview + preview_type 'percent'
  - `preview_start_percent` number: preview only: clip start as a percent of duration

## Response `200`

Variant created and processing queued.

- object
  - `ok` true, required
  - `api_request_id` string, uuid, required
  - `track_id` string, uuid
  - `variant_id` string, uuid
  - `job_id` string, uuid
  - `variant` Variant
    - `id` string, uuid
    - `name` string
    - `type` string: Variant kind (e.g. transcode, preview, waveform, analysis, transcribe).
    - `format` string
    - `bitrate` integer

## Other responses

- `400`: Invalid parameters.
- `401`: Missing or invalid API key.
- `404`: Resource not found.
- `409`: A variant with the given index already exists for this track.
- `422`: The track has no source file to process yet.

---

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