Projects
Every account has two projects to start with, and you can create more.
| Project | What it is for |
|---|---|
| Production | Your real servers. |
| Development | A safe place to experiment. |
Everything belongs to a project: servers, SSH keys, and API keys. An API key can act on exactly one project, which is what keeps a key you paste into a script from reaching anything you did not intend.
Development projects are simulated
A development project’s servers never reach real hardware. You cannot SSH into a development server — it does not actually exist. Reboot and re-image report success after a short delay without opening a connection to a BMC.
That is a property of the project, not of where the code is running. It is also the project whose key the documentation fills its examples with, so an example you copy from these pages and run as it is cannot power-cycle anything real.
Actions taken in a development project are recorded with simulated: true, so a simulated success
can never be mistaken for a real one.
Creating a project
In the dashboard, use New project under the project selector in the sidebar. Choosing a kind is the meaningful part — a development project can never touch hardware, a production one can.
Through the API:
curl -X POST https://braesystems.com/api/v1/projects \
-H "Authorization: Bearer bs_live_..." \
-H "Content-Type: application/json" \
-d '{"name":"Staging EU"}'{
"data": {
"id": "9f1c7d2e-4a3b-4c5d-8e6f-0a1b2c3d4e5f",
"name": "Staging EU",
"slug": "staging-eu",
"kind": "production",
"created_at": "2026-07-30T14:03:11.000Z"
}
}kind defaults to production; send "kind": "development" for a project that
can never reach hardware.
A new project gets its own API key, and a development one is seeded with a server and an SSH key so its endpoints return something useful straight away.
Names are unique within an account, by their slug — Staging EU and staging eu
are the same project name, and the second request returns 409 Duplicate project.
Listing projects
curl https://braesystems.com/api/v1/projects \
-H "Authorization: Bearer bs_live_..."Projects themselves are the one collection that is not scoped to a specific key’s project — any key lists all projects. Every other endpoint returns only what belongs to the key’s own project.