Koo Docs
View as Markdown

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
cURL
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
cURL
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
cURL
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
cURL
DELETE /accounts/{accountId}/projects/{projectId}
bash
curl https://api.koo.io/accounts/:accountId/projects/:projectId \  -X DELETE \  -H "Authorization: Bearer kc_your_api_token"