Documentation
Everything you need to deploy and manage your applications on HostStack.
TypeScript SDK Reference
Manage your HostStack infrastructure programmatically with full TypeScript support.
Installation
npm
npm install @hoststack/sdkbun
bun add @hoststack/sdkQuick Start
typescript
import { HostStack } from '@hoststack/sdk';
const client = new HostStack({
apiKey: 'hs_live_your_api_key',
});
// List all services
const services = await client.services.list();
// Trigger a deploy
const deploy = await client.deploys.trigger('svc_abc123');
// Get deploy logs
const logs = await client.deploys.getLogs(deploy.id);Available Resources
client.projectslist, get, create, update, deleteclient.serviceslist, get, create, update, delete, suspend, resume, metricsclient.deployslist, get, trigger, cancel, rollback, getLogsclient.databaseslist, get, create, delete, credentials, resetPasswordclient.domainslist, add, update, remove, verifyclient.envVarslist, create, update, delete, bulkSetclient.cronlist, get, triggerExamples
Manage environment variables
typescript
// Set a single variable
await client.envVars.set('svc_abc123', {
key: 'DATABASE_URL',
value: 'postgres://...',
target: 'runtime',
});
// Bulk set multiple variables
await client.envVars.bulkSet('svc_abc123', [
{ key: 'NODE_ENV', value: 'production', target: 'both' },
{ key: 'API_SECRET', value: 'sk_...', target: 'runtime', isSecret: true },
]);Deploy and monitor
typescript
// Trigger deploy
const deploy = await client.deploys.trigger('svc_abc123');
// Check status
const status = await client.deploys.get(deploy.id);
console.log(status.status); // 'building' | 'live' | 'failed'
// Rollback if needed
await client.deploys.rollback('svc_abc123');Database management
typescript
// Create a Postgres database
const db = await client.databases.create({
name: 'my-db',
engine: 'postgres',
version: '17',
plan: 'starter',
projectId: 'prj_abc123',
});
// Get connection credentials
const creds = await client.databases.credentials(db.id);
console.log(creds.connectionUrl);Error Handling
typescript
import { HostStack, NotFoundError, RateLimitError } from '@hoststack/sdk';
try {
const service = await client.services.get('svc_invalid');
} catch (error) {
if (error instanceof NotFoundError) {
console.log('Service not found');
} else if (error instanceof RateLimitError) {
console.log('Rate limited, retry after:', error.retryAfter);
}
}Next: Managed Databases