Container API
Create, deploy and run services on Helipod from your own code, CI or AI agents.
The Container API gives you the same control over services as the Containers part of the dashboard: create a service from an image, a Git repository or a Dockerfile, deploy it, set variables, attach domains and volumes, scale it, and read its logs and metrics.
https://api.helipod.io/api/containersAuthenticate with a Helipod API key that has Container API enabled:
curl https://api.helipod.io/api/containers/projects \
-H "Authorization: Bearer hel_your_key"How it is organised
project
└── environment (production, staging, ...)
└── service ── deployments, variables, domains, scale, volumes, logs, metrics- A project is what you see in the dashboard sidebar. A key with project access sees one project; a whole-account key sees every project you own and can create and delete projects.
- An environment holds a set of services. Services in the same environment reach each other over a private network.
- A service is one app. Everything else hangs off its id:
/services/{serviceId}/....
Things to know
Changes apply on deploy
Variables, volumes and service settings are saved immediately and take effect on the next deploy. Responses say so with needsRedeploy: true.
Secrets are write-only
You can set secret variables and upload secret files, but the API never returns their values.
Dry runs and idempotency
Calls that cost money accept ?dryRun=true; calls that create things accept Idempotency-Key.
Templates and stacks
Create several connected services at once, from the template gallery or your own spec.
Endpoints
| Method and path | |
|---|---|
| Projects | GET POST /projects, GET PATCH DELETE /projects/{projectId} |
| Environments | POST /projects/{projectId}/environments, PATCH DELETE /environments/{environmentId} |
| Shared variables | GET PUT /projects/{projectId}/variables, DELETE /projects/{projectId}/variables/{key} |
| Services | GET POST /environments/{environmentId}/services, GET PATCH DELETE /services/{serviceId} |
| Deployments | GET POST /services/{serviceId}/deployments, GET /services/{serviceId}/deployments/{deploymentId}, GET .../logs, POST /services/{serviceId}/restart |
| Variables | GET PUT /services/{serviceId}/variables, DELETE /services/{serviceId}/variables/{key} |
| Domains | GET POST /services/{serviceId}/domains, PATCH DELETE /services/{serviceId}/domains/{domainId} |
| Scale | GET PATCH /services/{serviceId}/scale |
| Volumes | GET POST /services/{serviceId}/volumes, PATCH DELETE /services/{serviceId}/volumes/{volumeId} |
| Secret files | GET POST /services/{serviceId}/files, PUT DELETE /services/{serviceId}/files/{fileId} |
| Function code | GET PUT /services/{serviceId}/function |
| Runtime | GET /services/{serviceId}/logs, GET /services/{serviceId}/metrics |
| Templates | GET /templates, POST /environments/{environmentId}/templates/{slug}, POST /environments/{environmentId}/stacks |