Skip to main content

Create Project

POST 

/projects

Create a new project with an optional set of stratification dimensions.

The schema_name must be a registered GDI schema name (e.g. gdi_text_v1) or agent_trace_v1, the schema a trace dataset must land in. The dimensions list declares which dataset columns to use for coverage analysis and run-level score stratification.

test_plan_id instead creates the project from a published plan version: its schema, task type, dimensions and both locks are copied onto the project, and the version is pinned. The copy is a snapshot — republishing the plan later does not change the project. The plan's references must still resolve in this workspace, or the create is a 422 carrying the same failures list the publish routes return.

dimensions may accompany test_plan_id to override the copied set, since an unlocked dimension tier is editable through PATCH /projects from the moment the project exists. A locked tier refuses them here, as that PATCH does.

When the plan names a recommended_dataset, one of its versions is copied into the project as its first dataset, unpromoted, and recommended_dataset_copy names the copy and the version taken. The golden version is preferred, then a curated one, then the newest — an unmapped raw version only wins when the dataset has nothing else. The source is never re-parented, and the tester may supply their own data instead.

A recommended dataset that is not yet active, holds no version, or whose stored object is gone is a 422 in the same failures shape, and no project is created.

Creating from a plan records a created row in the binding audit trail (_record_binding_change), so the enforced methodology is attributable from the start.

Request​

Responses​

Successful Response