Tuned Tensor
DocsDashboard

Datasets

JSONL files used for fine-tuning. Usually auto-generated when you start a run from a behaviour spec. Can also be uploaded manually.

Auto-Generated Datasets

When you start a run, the platform automatically:

  1. Compiles your behaviour spec into JSONL chat format (system + user + assistant messages)
  2. If augmentation is enabled, uses Claude to expand your examples into a larger, more diverse training set (typically 5–10 examples → 30–40 rows)
  3. Uploads the compiled dataset to storage

Auto-generated datasets are named "Spec Name - Run #N".

The Dataset Object

{
  "id": "dc66546b-48b3-4490-8baf-9b50aa78130c",
  "name": "Customer Support Bot - Run #8",
  "description": "Auto-compiled from behaviour spec. 36 examples (augmented).",
  "format": "jsonl",
  "status": "validated",
  "row_count": 36,
  "file_size_bytes": 36922,
  "created_at": "2026-03-06T10:44:30.000Z"
}

Upload a Dataset

POST /api/v1/datasets (multipart form data)

curl -X POST https://api.tunedtensor.com/v1/datasets \
  -H "Authorization: Bearer tt_your_api_key" \
  -F "name=my-training-data" \
  -F "description=Custom training dataset" \
  -F "file=@training.jsonl"

The file must be JSONL format. Each line is validated as valid JSON. Status will be validated if all lines parse correctly, or invalid with error details.

JSONL Format

Each line should be a JSON object with a messages array:

{"messages": [{"role": "system", "content": "You are..."}, {"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hi!"}]}
{"messages": [{"role": "system", "content": "You are..."}, {"role": "user", "content": "Help"}, {"role": "assistant", "content": "Sure!"}]}

List Datasets

GET /api/v1/datasets

curl https://api.tunedtensor.com/v1/datasets \
  -H "Authorization: Bearer tt_your_api_key"

Get a Dataset

GET /api/v1/datasets/:id

Delete a Dataset

DELETE /api/v1/datasets/:id

Deletes the dataset record and the underlying file from storage.