---
title: "Onboard a dataset — zero-config schema profiling + auto-training"
method: POST
path: "/v1/datasets/onboard"
tags: ["Datasets"]
---

# Onboard a dataset — zero-config schema profiling + auto-training

`POST /v1/datasets/onboard`

## Request

- Base URL: `https://api.algenta.ai`
- URL: `https://api.algenta.ai/v1/datasets/onboard`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

**Drop in data → instantly queryable.**

- Accepts JSON records, inline CSV, or column names only
- Profiles schema and role-classifies every column automatically
- Auto-suggests domain aliases (PPA → per/person/average, etc.)
- Fires background semantic training immediately when the training runtime is installed
- Returns model tier — queries work immediately via base/deterministic fallback

For file uploads (CSV, Excel, Parquet, JSON) use `POST /v1/datasets/onboard/file`.

## Request body

- OnboardRequest: Register any data source for semantic querying. Provide data via ONE of: records — list of row dicts (JSON records) csv — raw CSV text (headers in first row) columns — list of column name strings (schema-only, no samples) For file uploads use POST /v1/datasets/onboard/file.
  - `name` string: Human-readable dataset name
  - `source_name` string, nullable: Table name used in the schema
  - `records` object[], nullable: JSON records (list of row dicts)
  - `csv` string, nullable: Raw CSV text with header row
  - `columns` string[], nullable: Column names only — no data required
  - `domain_aliases` object, nullable: Manual alias map. Auto-suggested from column names when omitted.
  - `async_train` boolean: Fire background semantic training immediately
  - `epochs` integer
  - `batch_size` integer

## Response `200`

Successful Response

- OnboardResponse
  - `dataset_id` string, required
  - `name` string, required
  - `schema_hash` string, required
  - `status` string, required
  - `model_tier` string, required
  - `decision_mode` string, required
  - `source_names` string[], required
  - `column_count` integer, required
  - `domain_aliases` object, nullable, required
  - `registered_at` string, nullable, required
  - `updated_at` string, nullable, required
  - `schema` object, required
  - `suggested_aliases` object, required
  - `latency_ms` number, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/codna/apis/algenta-api.md) · [All operations](https://skmtc.dev/codna/apis/algenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/codna/apis/algenta-api/revisions/35d30f84a5df?raw)
