Projects
Partition files, runs and checkpoints by team, and pin each partition to a data region.
Projects partition your organisation's resources. Files, training runs, checkpoints and sessions can all be attached to a project, and an API key can be bound to one, in which case it only sees that project's resources. Bound keys are how you stop one team reading another's runs.
A project is also where data residency is enforced. Set data_region at creation and every
file, run and checkpoint in the project stays in that region. Pinning the region per project
turns a residency commitment into something the platform enforces rather than something you
promise.
List projects
/v1/projectsscope: readReturns your organisation's projects. See Pagination for how limit and
offset behave across list endpoints.
Query parameters
limitintegerMaximum number of projects to return.
offsetintegerNumber of projects to skip from the start of the list.
curl https://api.nucleus-ai.io/v1/projects \
-H "Authorization: Bearer $NUCLEUS_API_KEY"{
"data": [
{
"id": "proj_acme",
"name": "support-assistant",
"created_at": "2026-06-02T04:00:00Z"
}
]
}Create a project
/v1/projectsscope: adminCreates a project. Choose the data_region here: it applies to everything the project will
hold and cannot be worked around by individual uploads, so this one field is where a
residency requirement is settled.
Body parameters
namestringrequiredHuman-readable name, shown in listings and audit logs.
data_regionstringRegion that stores the project's files, runs and checkpoints, e.g. ap-southeast-1.
Once the project exists, bind keys to it with
Create an API key and attach resources by
passing project_id when you create them, or move existing work with
Assign a session to a project.
curl https://api.nucleus-ai.io/v1/projects \
-H "Authorization: Bearer $NUCLEUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "support-assistant",
"data_region": "ap-southeast-1"
}'{
"id": "proj_acme",
"name": "support-assistant",
"data_region": "ap-southeast-1"
}Retrieve a project
/v1/projects/{project_id}scope: readReturns one project with its usage rolled up: session_count and storage_bytes cover
everything held under the project. If you run one project per team or department, this is
the number a per-team chargeback reads.
Path parameters
project_idstringrequiredID of the project.
curl https://api.nucleus-ai.io/v1/projects/proj_acme \
-H "Authorization: Bearer $NUCLEUS_API_KEY"{
"id": "proj_acme",
"data_region": "ap-southeast-1",
"session_count": 6,
"storage_bytes": 41231872
}