---
title: "Create a training job (draft) + presigned dataset upload URLs"
method: POST
path: "/v1/training/jobs"
tags: ["training"]
---

# Create a training job (draft) + presigned dataset upload URLs

`POST /v1/training/jobs`

## Request

- Base URL: `https://api.ditto.audio` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ditto.audio/v1/training/jobs`
- Auth: HTTP bearer

Upload each reference clip with HTTP PUT to its presigned URL, then call confirm-uploads. Gated: paid plan (402) + per-tier concurrent job limit (429).

## Request body

- CreateTrainingJobDto

## Response `201`

---

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