The HostStack REST API
Every button in the dashboard is a single HTTP call. Authenticate with a Bearer token, hit the endpoints below in any language, or use the typed TypeScript SDK when you prefer autocompletion over curl.
Authentication
Authenticate API requests with a Bearer token. Generate keys in Settings > API Keys.
Authorization: Bearer hs_live_your_api_keyBase URL & Errors
All endpoints use JSON. Errors return { "error": "message" } with the appropriate HTTP status code.
https://hoststack.dev/apiSensitive endpoints (auth, deploy triggers, credential rotations, deploy hooks) are individually rate-limited. Limited responses return HTTP 429 with X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After headers.
Endpoints
Auth
/api/auth/registerCreate a new account/api/auth/loginSign in with email/password/api/auth/logoutEnd current session/api/auth/forgot-passwordRequest password reset/api/auth/reset-passwordReset password with tokenProjects
/api/projects/:teamIdList all projects/api/projects/:teamId/:projectIdGet project details/api/projects/:teamIdCreate a project/api/projects/:teamId/:projectIdUpdate a project/api/projects/:teamId/:projectIdDelete a projectServices
/api/services/:teamIdList all services/api/services/:teamId/:serviceIdGet service details/api/services/:teamIdCreate a service/api/services/:teamId/:serviceIdUpdate a service/api/services/:teamId/:serviceIdDelete a service/api/services/:teamId/:serviceId/suspendSuspend a service/api/services/:teamId/:serviceId/resumeResume a serviceDeploys
/api/services/:teamId/:serviceId/deploysList deploys/api/services/:teamId/:serviceId/deploysTrigger a deploy/api/services/:teamId/:serviceId/deploys/:deployIdGet deploy details/api/services/:teamId/:serviceId/deploys/:deployId/logsGet build logs/api/services/:teamId/:serviceId/deploys/:deployId/cancelCancel a deploy/api/services/:teamId/:serviceId/deploys/:deployId/rollbackRollback to a deploy/api/services/:teamId/:serviceId/deploys/:deployId/promotePromote to another environmentDatabases
/api/databases/:teamIdList all databases/api/databases/:teamId/:databaseIdGet database details/api/databases/:teamIdCreate a database/api/databases/:teamId/:databaseIdUpdate database settings/api/databases/:teamId/:databaseIdDelete a database/api/databases/:teamId/:databaseId/credentialsGet connection credentials/api/databases/:teamId/:databaseId/reset-passwordRotate database passwordDomains
/api/domains/:teamIdList all domains/api/domains/:teamIdAdd a domain/api/domains/:teamId/:domainIdUpdate domain settings/api/domains/:teamId/:domainIdRemove a domain/api/domains/:teamId/:domainId/verifyVerify DNS configurationEnv Vars
/api/services/:teamId/:serviceId/envList env vars (secrets masked)/api/services/:teamId/:serviceId/envCreate an env var/api/services/:teamId/:serviceId/env/:envVarIdUpdate an env var/api/services/:teamId/:serviceId/env/:envVarIdDelete an env var/api/services/:teamId/:serviceId/env/bulkBulk replace env varsVolumes
/api/services/:teamId/:serviceId/volumesList volumes attached to a service/api/services/:teamId/:serviceId/volumesAttach a volume/api/services/:teamId/:serviceId/volumes/:volumeIdResize / remount a volume/api/services/:teamId/:serviceId/volumes/:volumeIdDetach a volumeEnvironments
/api/projects/:teamId/:projectId/environmentsList environments in a project/api/projects/:teamId/:projectId/environmentsCreate an environment/api/environments/:teamId/:environmentIdUpdate an environment/api/environments/:teamId/:environmentIdDelete an environmentCron
/api/services/:teamId/:serviceId/cron-executionsList recent cron executions/api/services/:teamId/:serviceId/cron-executions/:executionIdGet a cron execution/api/services/:teamId/:serviceId/cron-executions/triggerTrigger an ad-hoc cron runWorkflows
/api/projects/:teamId/:projectId/workflowsList workflows in a project/api/projects/:teamId/:projectId/workflowsCreate a workflow (image + command + cron schedule)/api/teams/:teamId/workflows/:workflowIdGet a workflow/api/teams/:teamId/workflows/:workflowIdUpdate a workflow/api/teams/:teamId/workflows/:workflowIdDelete a workflow/api/teams/:teamId/workflows/:workflowId/triggerTrigger an ad-hoc workflow run/api/teams/:teamId/workflows/:workflowId/runsList workflow runs/api/teams/:teamId/workflows/runs/:runIdGet a workflow run/api/teams/:teamId/workflows/runs/:runId/logsStream a workflow run’s logs/api/teams/:teamId/workflows/runs/:runId/cancelCancel an in-flight run/api/teams/:teamId/workflows/runs/:runId/retryRetry a failed runNotifications
/api/notifications/:teamId/channelsList notification channels (Slack / Discord / email)/api/notifications/:teamId/channelsCreate a notification channel/api/notifications/:teamId/channels/:channelIdUpdate a channel (event filter, recipients)/api/notifications/:teamId/channels/:channelIdDelete a channel/api/notifications/:teamId/channels/:channelId/testSend a test event to a channelAlerts
/api/alerts/:teamIdList recent alert-shaped activity (?aggregate=1 to collapse flapping rows)DNS
/api/dns-zones/:teamIdList DNS zones managed on ns1+ns2.hoststack.dev/api/dns-zones/:teamIdCreate a DNS zone/api/dns-zones/:teamId/:publicIdGet a DNS zone/api/dns-zones/:teamId/:publicIdDelete a DNS zone/api/dns-zones/:teamId/:publicId/recordsList records in a zone/api/dns-zones/:teamId/:publicId/recordsCreate a record/api/dns-zones/:teamId/:publicId/records/:recordPublicIdUpdate a record/api/dns-zones/:teamId/:publicId/records/:recordPublicIdDelete a recordActivity Log
/api/activity-log/:teamIdList team audit-trail entriesBilling
/api/billing/:teamId/subscriptionGet current subscription/api/billing/:teamId/usageGet usage metrics/api/billing/:teamId/checkoutCreate Stripe checkout session/api/billing/:teamId/portalCreate Stripe billing portalExample request
curl -X POST https://hoststack.dev/api/services/:teamId/:serviceId/deploys \
-H "Authorization: Bearer hs_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"branch": "main"}'{
"deploy": {
"id": 42,
"publicId": "dpl_abc123",
"status": "building",
"trigger": "api",
"createdAt": "2026-04-07T12:00:00.000Z"
}
}Prefer a typed client? Use the TypeScript SDK for full autocompletion and error handling.