Generate a dataset from scratch
Creates a dataset and starts generating it. Describe the data either by taxonomy — domains and/or subdomains — or in your own words with dataset_prompt: when neither taxonomy field is given, the domains and subdomains are inferred from the prompt. Explicit taxonomy is authoritative and disables that inference. If the prompt cannot be mapped onto the catalog (or inference is unavailable), the request is rejected with 400 asking for explicit domains/subdomains — it is never widened to every domain. Returns immediately — poll GET /datasets/{id} for the status and GET /datasets/{id}/download once it reports succeeded. Set estimate: true to price a request without generating anything.
Body ParametersJSON
Domain codes to generate from, e.g. medical. Optional: omit it and the domains come from the parents of your subdomains, or — when subdomains is omitted too — are inferred from dataset_prompt. When you do supply it, it is authoritative: inference is skipped, and a subdomain naming a domain that is not listed here is rejected rather than silently added. Retrieve the valid codes from GET /datasets/invent/domains.
Narrow generation to specific subdomains, as domain.subdomain codes e.g. medical.symptoms_diagnosis. Qualified by their domain because a bare code can belong to more than one (wildlife sits under both agriculture and animal nature). Requested domains with no subdomain listed here are generated across all of theirs. Optional: with neither this nor domains, the taxonomy is inferred from dataset_prompt. Supplying it disables that inference. Retrieve the valid codes from GET /datasets/invent/domains.
Number of rows to generate, subject to your plan’s per-launch row cap. Treat it as a target: the delivered count can land slightly either side of it, so read row_count on the finished dataset for what was actually produced.
Free-text description of the data you want, in your own words — the wizard shows this as “Dataset Details”. Drives the semantic search that selects rows, so a specific prompt yields more relevant data, and it is woven into the generation instructions. Written for you from your domain selections when omitted. When domains and subdomains are both omitted this is required, and the domains and subdomains are inferred from it; if none can be inferred the request is rejected with 400 asking for explicit domains/subdomains rather than generating across every domain.
Deprecated alias for dataset_prompt, kept for existing clients. Use dataset_prompt in new code. prompt will be removed in a future release.
Returns
Dataset id, or null on an estimate. Pass it straight to finetune_jobs.create or autoscientist.create once the status is succeeded.
Domain codes the generation covers, echoed from the request — including any inferred from subdomains.
Generate a dataset from scratch
curl https://api.prod.adaptionlabs.ai/api/v1/datasets/invent \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ADAPTION_API_KEY" \
-d '{
"name": "Medical Q&A dataset",
"domains": [
"medical",
"personal_finance"
],
"subdomains": [
"medical.symptoms_diagnosis",
"medical.preventive_care"
],
"rows": 1000,
"dataset_prompt": "Patient-facing answers to cardiology questions, plain language, no jargon"
}'{
"estimate": false,
"id": "3f1b9c62-6f3e-4a1e-9a5c-0b7d2f8e4a10",
"name": "Clinical Q&A",
"training_type": "instruction_dataset",
"domains": [
"medical"
],
"subdomains": [
"medical.symptoms_diagnosis"
],
"rows": 1000,
"status": "running",
"created_at": "2026-08-03T16:12:04.000Z",
"estimated_credits": 800,
"available_credits": 5000
}Returns Examples
{
"estimate": false,
"id": "3f1b9c62-6f3e-4a1e-9a5c-0b7d2f8e4a10",
"name": "Clinical Q&A",
"training_type": "instruction_dataset",
"domains": [
"medical"
],
"subdomains": [
"medical.symptoms_diagnosis"
],
"rows": 1000,
"status": "running",
"created_at": "2026-08-03T16:12:04.000Z",
"estimated_credits": 800,
"available_credits": 5000
}