Skip to main content

Create extra column

Endpoint: POST /datasets/{dataset_id}/extra-columns

Description

Adds a user-defined free-text column to a custom dataset. The server assigns a stable column id (col_ + 8 lowercase hex characters). Column type is always "text" today. A dataset can have at most 20 extra columns; labels are limited to 64 characters (trimmed) and must not duplicate an existing extra column or a standard structure field name (case-insensitive).

Sharing rules

Custom datasets only. You must own the dataset or belong to the dataset's organization when it is org-shared.

Parameters

  • Path: dataset_id — integer.
  • Body — application/json:
{
"label": "Notes"
}
  • label — optional string (1–64 characters, trimmed). When omitted or not sent ({} is valid), the server assigns a default — "Notes", then "Notes 2", and so on.

Error responses

  • 401 — Authentication failed.
  • 400 — Dataset is not a custom dataset: Extra columns are only supported on custom datasets. Duplicate label (extra column or structure field): A column with this label already exists. Dataset already has 20 extra columns: A dataset can have at most 20 extra columns.
  • 403 — You don't have permission to perform this action (not the owner and not an org member for an org-owned dataset).
  • 404 — Dataset with id {dataset_id} not found.
  • 422 — Validation failed (for example whitespace-only label): Column label is required.
  • 500 — An error occurred while creating the extra column.

Responses

  • 201 — Created column definition.

Example response (201)

{
"id": "col_aabbccdd",
"label": "Notes",
"type": "text"
}

curl

curl -X POST "https://api.aegisevals.ai/api/v1/datasets/42/extra-columns" \
-H "Authorization: Bearer sk_00000000000000000000000000000000" \
-H "Content-Type: application/json" \
-d '{"label": "Notes"}'