Table of Contents
Introduction
Infrastructure automation isn't just for the big cloud providers anymore. At Hostingowy, we believe every development team — from solo founders to scaling startups — should have API-driven infrastructure control without the complexity, vendor lock-in, or surprise bills of hyperscalers.
In this guide, you'll learn how to use the Hostingowy API to provision, manage, and monitor your VPS servers programmatically. We'll cover our official Node.js and Python SDKs, REST API endpoints, and integration patterns for CI/CD pipelines, monitoring, and event-driven automation.
Getting Started with the Hostingowy API
1. Generate an API Key
Log in to your Hostingowy Dashboard, navigate to Settings → API Keys, and click Generate API Key. Your key will start with hos_.
2. Choose Your SDK
We provide official SDKs for the two most popular languages. Community SDKs for Go, Rust, Ruby, and PHP are also available (see Community SDKs).
| Language | Package | Install | GitHub | Status |
|---|---|---|---|---|
| Node.js | hostingowy (npm) |
npm install hostingowy |
hostingowy-node | ⭐ Official |
| Python | hostingowy (PyPI) |
pip install hostingowy |
hostingowy-python | ⭐ Official |
| cURL | — | Pre-installed on most systems | — | REST API |
Base URL
https://hostingowy.com/api/v1
Rate Limits
- 500 requests per hour per API key (standard tier)
- Rate limit headers (
X-RateLimit-Remaining,X-RateLimit-Reset) in all responses - Contact sales for higher limits on Enterprise plans
SDK Quickstart
Node.js SDK
const Hostingowy = require('hostingowy');
// Initialize with your API key
const client = new Hostingowy('hos_xxxxxxxxxxxx');
// List your servers
async function main() {
const { data: servers } = await client.servers.list();
console.log(`You have ${servers.length} server(s):`);
servers.forEach(s => console.log(` - ${s.name} (${s.plan}): ${s.status}`));
}
main().catch(console.error);
Python SDK
from hostingowy import Hostingowy
# Initialize with your API key
client = Hostingowy(api_key='hos_xxxxxxxxxxxx')
# List your servers
servers = client.servers.list()
print(f"You have {len(servers['data'])} server(s):")
for s in servers['data']:
print(f" - {s['name']} ({s['plan']}): {s['status']}")
cURL (REST API)
curl -H "Authorization: Bearer hos_xxxxxxxxxxxx" \
https://hostingowy.com/api/v1/servers
Provisioning a VPS Server
Servers are typically provisioned in under 60 seconds. Here's how with each SDK:
Node.js
const { data: server } = await client.servers.create({
plan: 'starter',
name: 'My Web Server',
os: 'ubuntu-24.04',
region: 'eu-west'
});
console.log(`Server ${server.id} is ${server.status}`);
Python
server = client.servers.create(
plan='starter',
name='My Web Server',
os='ubuntu-24.04',
region='eu-west'
)
print(f"Server {server['data']['id']} is {server['data']['status']}")
Available Plans
| Plan | vCPU | RAM | Storage | Bandwidth | Price |
|---|---|---|---|---|---|
| Starter | 1 | 1 GB | 25 GB NVMe | 1 TB | $5/mo |
| Business | 2 | 4 GB | 80 GB NVMe | 4 TB | $20/mo |
| Dedicated | 8 | 16 GB | 320 GB NVMe | Unlimited | $80/mo |
Managing Your Servers
Power Operations
// Node.js
await client.servers.action('server-uuid', 'reboot');
await client.servers.action('server-uuid', 'start');
await client.servers.action('server-uuid', 'stop');
# Python
client.servers.action('server-uuid', 'reboot')
client.servers.action('server-uuid', 'start')
client.servers.action('server-uuid', 'stop')
Error Handling
// Node.js - Structured error handling
try {
await client.servers.create({ plan: 'nonexistent' });
} catch (err) {
if (err.code === 'invalid_plan') {
console.error('Please select a valid plan:', err.details.availablePlans);
} else {
console.error(`API Error (${err.status}): ${err.message}`);
}
}
# Python - Structured error handling
from hostingowy import HostingowyError
try:
client.servers.create(plan='nonexistent')
except HostingowyError as err:
if err.code == 'invalid_plan':
print('Please select a valid plan:', err.details.get('availablePlans'))
else:
print(f'API Error ({err.status}): {err}')
Snapshot & Backup Management
# Create a snapshot
curl -X POST https://hostingowy.com/api/v1/servers/srv_abc123/snapshots \
-H "Authorization: Bearer $HOSTINGOWY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "pre-deploy-v2"}'
# List snapshots
curl -H "Authorization: Bearer $HOSTINGOWY_API_KEY" \
https://hostingowy.com/api/v1/servers/srv_abc123/snapshots
# Restore from a snapshot
curl -X POST https://hostingowy.com/api/v1/servers/srv_abc123/snapshots/snp_xyz/restore \
-H "Authorization: Bearer $HOSTINGOWY_API_KEY"
Webhooks for Event-Driven Automation
Configure webhooks to receive real-time events like server provisioning, backups, and alerts:
curl -X POST https://hostingowy.com/api/v1/webhooks \
-H "Authorization: Bearer $HOSTINGOWY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://hooks.slack.com/services/T00/B00/xxxxx",
"events": [
"server.provisioned",
"server.stopped",
"backup.completed",
"alert.triggered"
]
}'
Available events: server.provisioned, server.started, server.stopped, server.resized, backup.completed, snapshot.created, alert.triggered, invoice.paid.
CI/CD Integration
Provision ephemeral test environments in your GitHub Actions pipeline:
name: Deploy to Hostingowy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Provision test server
run: |
curl -X POST https://hostingowy.com/api/v1/servers \
-H "Authorization: Bearer ${{ secrets.HOSTINGOWY_API_KEY }}" \
-d '{"plan": "starter", "region": "eu-west", "os": "ubuntu-24.04"}'
- name: Run tests
run: ./run-tests.sh
Community SDKs & Contributions
The Hostingowy API ecosystem is growing, and we'd love your help building it. Here's how you can contribute:
🌐 Build a Community SDK
We welcome community-maintained SDKs in any language. Popular requests include:
- Go —
go get github.com/hostingowy/hostingowy-go - Ruby —
gem install hostingowy - PHP —
composer require hostingowy/sdk - Rust —
cargo add hostingowy - Java/Kotlin — Maven/Gradle package
- .NET/C# — NuGet package
📝 Contribute to Existing SDKs
Our official SDKs are open-source on GitHub:
- hostingowy-node — Node.js SDK
- hostingowy-python — Python SDK
We accept pull requests for bug fixes, new features, documentation improvements, and test coverage.
📚 Write Tutorials & Examples
Built something cool with the Hostingowy API? Write a tutorial, record a screencast, or publish a blog post. We'll feature the best community content on our blog and social media.
🐛 Report Issues
Found a bug or have a feature request? Open an issue on the relevant GitHub repo. We respond within 24 hours on business days.
Get Involved Today
Star our SDK repos on GitHub, join the conversation, or build the next great community integration. Every contribution helps grow the Hostingowy ecosystem.
⭐ Star on GitHub 📖 Contribution GuideConclusion
The Hostingowy API puts the power of VPS infrastructure automation at your fingertips. Whether you're a solo developer spinning up test environments or a DevOps team managing a fleet of production servers, our API — and our growing ecosystem of SDKs — gives you the control and flexibility you need.
Ready to automate your infrastructure?
- Sign up for a Hostingowy account
- Generate your API key from the dashboard
npm install hostingowyorpip install hostingowy- Start building!
Star our GitHub repos, contribute an SDK in your language of choice, or write a tutorial — we can't wait to see what you build.