Projects
List the projects in an account, newest first
GET/accounts/{accountId}/projects
Rolesreadereditoradminowner
Parameters
cursorstringquery
Opaque cursor (page.nextCursor).
limitnumberquery
Page size (1–100, default 20).
accountIdstringpathrequired
Returns
200 · ProjectsPageDto
dataobject[]read-only
pageobjectread-only
GET /accounts/{accountId}/projects
bash
curl https://api.koo.io/accounts/:accountId/projects \ -H "Authorization: Bearer kc_your_api_token"Response
json
{ "data": [ { "id": "acct_01example0000000000000000x", "accountId": "acct_01example0000000000000000x", "name": "my-app", "serviceCount": 0, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z" } ], "page": { "nextCursor": "example", "hasMore": true }}Create a project
POST/accounts/{accountId}/projects
Rolesreadereditoradminowner
Creates the project and assigns it an immutable, account-unique word slug.
Parameters
accountIdstringpathrequired
Request body
namestringrequired
The immutable identity name (url-safe word, 3-16 chars). Pick carefully — it cannot be renamed.
Returns
200 · ProjectDto
idstringread-only
accountIdstringread-only
namestringrequired
The project’s IDENTITY: an immutable, account-unique, url-safe word (namespaces this project’s environments in the cloud).
serviceCountintegerread-only
Total active services across all of the project’s environments (shown on the project card).
createdAtstring <date-time>read-only
updatedAtstring <date-time>read-only
POST /accounts/{accountId}/projects
bash
curl https://api.koo.io/accounts/:accountId/projects \ -X POST \ -H "Authorization: Bearer kc_your_api_token" \ -H "Content-Type: application/json" \ -d '{ "name": "my-app" }'Response
json
{ "id": "acct_01example0000000000000000x", "accountId": "acct_01example0000000000000000x", "name": "my-app", "serviceCount": 0, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z"}Get a project
GET/accounts/{accountId}/projects/{projectId}
Rolesreadereditoradminowner
Parameters
projectIdstringpathrequired
accountIdstringpathrequired
Returns
200 · ProjectDto
idstringread-only
accountIdstringread-only
namestringrequired
The project’s IDENTITY: an immutable, account-unique, url-safe word (namespaces this project’s environments in the cloud).
serviceCountintegerread-only
Total active services across all of the project’s environments (shown on the project card).
createdAtstring <date-time>read-only
updatedAtstring <date-time>read-only
GET /accounts/{accountId}/projects/{projectId}
bash
curl https://api.koo.io/accounts/:accountId/projects/:projectId \ -H "Authorization: Bearer kc_your_api_token"Response
json
{ "id": "acct_01example0000000000000000x", "accountId": "acct_01example0000000000000000x", "name": "my-app", "serviceCount": 0, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-01T00:00:00.000Z"}Delete a project
DELETE/accounts/{accountId}/projects/{projectId}
Rolesreadereditoradminowner
Parameters
projectIdstringpathrequired
accountIdstringpathrequired
Returns
204
DELETE /accounts/{accountId}/projects/{projectId}
bash
curl https://api.koo.io/accounts/:accountId/projects/:projectId \ -X DELETE \ -H "Authorization: Bearer kc_your_api_token"