Create dataset

Declares the next version of a dataset from a bound query over this org's own feature surface.

POST /v1/dataset

Addresshttps://api.hanzo.ai/v1/dataset
MethodPOST
OperationriskCreateDataset
AuthAuthorization: Bearer $HANZO_API_KEY

Declares the next version of a dataset from a bound query over this org's own feature surface.

It mints a VERSION and writes no rows: a version is declared, then materialised once, then never rewritten. Version numbers are monotone and never reused, so "version 3 of signups" means one thing forever — which is the whole reason a model can cite one.

The window is bounded by the source's retention, the horizon by a year, the rows by the plane's cap, and the number of datasets and versions per org by their own limits. Every refusal names which bound it hit.

Request

9 fields, body application/json (required).

FieldInTypeRequiredDescription
cutsbodystring[]—Cuts are the two RFC 3339 instants dividing train | val | test.
dimsbodystring[]—Dims are the coordinates to carry, by published name.
frombodystring—From is where the event window opens, RFC 3339, INCLUSIVE.
horizonbodyinteger (int64)—Horizon is how many days a row must have aged before it may be admitted.
kindbodystring—Kind narrows to one subject kind — person, session or account.
namebodystring—Name identifies the dataset across its versions: lower-case letters, digits and hyphens, starting with a letter.
rowsbodyinteger (int64)—Rows caps the materialisation.
seedbodystring—Seed decides WHICH subjects are admitted when the window holds more rows than the cap allows.
tobodystring—To is where the window ends, EXCLUSIVE, so two datasets meeting at one instant share no row.

Response

StatusBodyMeaning
200dataset.riskDatasetok
defaultproblem-detailsrefused

200 body — 30 fields.

FieldInTypeAlwaysDescription
atbodystring—At is when this version last changed state, RFC 3339 UTC.
bybodystring—By is who moved it there: the validated user, or the org itself when the caller is a machine with no user behind it.
countsbodydataset.riskSplitCounts—
counts.judgedbodyinteger (int64)—Judged is how many rows carry a disposition.
counts.productivebodyinteger (int64)—Productive is how many judged rows carry the one disposition.
counts.rowsbodyinteger (int64)—Rows is how many rows the version holds across every split.
counts.subjectsbodyinteger (int64)—Subjects is how many distinct subjects the rows belong to.
counts.testbodyinteger (int64)—Test is how many fall after the second cut — the LATEST slice, and the only one a score is honest about, since the split is temporal.
counts.trainbodyinteger (int64)—Train is how many rows fall before the first cut — the EARLIEST slice of the window, which is what a model is fitted on.
counts.unproductivebodyinteger (int64)—Unproductive is how many carry the other.
counts.valbodyinteger (int64)—Val is how many fall between the two cuts, held out for tuning.
digestbodystring—Digest fingerprints the SPEC and the ROWS together.
namebodystring—Name identifies the dataset across all of its versions.
oversizebodyinteger (int64)—Oversize is how many of the window's subjects this version could NOT carry because their subject identity exceeds the plane's per-subject byte bound.
refusalbodystring—Refusal names why there are no bytes, when there are none.
runningbodyboolean—Running is true while THIS process is materialising the version.
sharebodyinteger (int64)—Share is the fraction of the window's subjects admitted, in thousandths.
specbodydataset.riskDatasetSpec—
spec.cutsbodystring[]—Cuts are the two RFC 3339 instants dividing train | val | test.
spec.dimsbodystring[]—Dims are the coordinates to carry, by published name.
spec.frombodystring—From is where the event window opens, RFC 3339, INCLUSIVE.
spec.horizonbodyinteger (int64)—Horizon is how many days a row must have aged before it may be admitted.
spec.kindbodystring—Kind narrows to one subject kind — person, session or account.
spec.namebodystring—Name identifies the dataset across its versions: lower-case letters, digits and hyphens, starting with a letter.
spec.rowsbodyinteger (int64)—Rows caps the materialisation.
spec.seedbodystring—Seed decides WHICH subjects are admitted when the window holds more rows than the cap allows.
spec.tobodystring—To is where the window ends, EXCLUSIVE, so two datasets meeting at one instant share no row.
statusbodystring—Status is declared, materializing, ready or refused.
truncatedbodyboolean—Truncated is true when the row cap bound before the window ran out.
versionbodyinteger (int64)—Version is which version this is, from 1 and monotone within the dataset.

Failure carries the platform error shape — see Errors.

Examples

hanzo dataset create
import { Configuration, DatasetApi } from 'hanzoai';

const api = new DatasetApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.riskCreateDataset({ cuts: ["<cuts>"], dims: ["<dims>"] });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import DatasetApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = DatasetApi(client).risk_create_dataset(cuts=["<cuts>"], dims=["<dims>"])
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.DatasetAPI.RiskCreateDataset(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, dataset_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = dataset_api::risk_create_dataset(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.DatasetApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new DatasetApi(client).riskCreateDataset();
curl -X POST https://api.hanzo.ai/v1/dataset \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "cuts": [
         "<cuts>"
       ],
       "dims": [
         "<dims>"
       ]
     }'

Tool dataset, op riskCreateDataset — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "dataset",
         "arguments": {
           "op": "riskCreateDataset",
           "input": {
             "cuts": [
               "<cuts>"
             ],
             "dims": [
               "<dims>"
             ]
           }
         }
       }
     }'

Dataset API · All Hanzo APIs · Interactive reference

Was this page useful?