HelipodDocs

Projects

List, create, rename and delete projects.

GET/containers/projects
Projects the key can reach, each with its environments.
curl https://api.helipod.io/api/containers/projects \
  -H "Authorization: Bearer hel_your_key"
{
  "success": true,
  "data": [
    {
      "id": "3b0cd5ac-ac26-4012-9b28-17466f73788c",
      "name": "My Shop",
      "description": "Online store",
      "createdAt": "2026-09-01T08:00:00.000Z",
      "environments": [
        { "id": "e1d4a0f2-6c11-4a9e-8a0e-5f2b7d1c9a33", "name": "production" },
        { "id": "7f6e5d4c-3b2a-4190-8f7e-6d5c4b3a2910", "name": "staging" }
      ]
    }
  ]
}

A key with project access returns only its project. A whole-account key returns every project you own; projects you were invited to by someone else are not included, because their owner pays for them.

GET/containers/projects/{projectId}
One project with its environments. 404 if the key can't reach it.

Use an environment id to list and create services. Environments are managed on Environments.

Create a project

POST/containers/projectsIdempotency-Key
Creates a project with a Production environment. Needs a whole-account key.

Prop

Type

curl -X POST https://api.helipod.io/api/containers/projects \
  -H "Authorization: Bearer hel_your_key" -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-project-shop-001" \
  -d '{ "name": "My Shop", "description": "Online store" }'

Returns 201 with the project object. A key limited to one project gets 403 KEY_PROJECT_SCOPED, because it must not reach outside its project. Creating a project costs nothing; what you put in it is billed as usual.

Rename a project

PATCH/containers/projects/{projectId}
Change the name and/or the description.

Prop

Type

Send at least one of them (400 NOTHING_TO_UPDATE otherwise). Returns the project object. A project key can rename its own project.

Delete a project

DELETE/containers/projects/{projectId}
Deletes an empty project with its environments and shared variables. Needs a whole-account key.

Prop

Type

curl -X DELETE https://api.helipod.io/api/containers/projects/$PROJECT \
  -H "Authorization: Bearer hel_your_key" -H "Content-Type: application/json" \
  -d '{ "confirm": "My Shop" }'
{ "success": true, "data": { "id": "3b0cd5ac-ac26-4012-9b28-17466f73788c", "deleted": true, "deletedEnvironments": 2 } }

Only empty projects can be deleted

While the project still has services, VPS, databases or an active email plan, the call answers 409 PROJECT_NOT_EMPTY and error lists what is left. Delete those first. A missing or wrong confirm answers 400 CONFIRMATION_REQUIRED, and only the project's owner can delete it (403 FORBIDDEN). This can't be undone.

On this page