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
Starter11 GB25 GB NVMe1 TB$5/mo
Business24 GB80 GB NVMe4 TB$20/mo
Dedicated816 GB320 GB NVMeUnlimited$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:

  • Gogo get github.com/hostingowy/hostingowy-go
  • Rubygem install hostingowy
  • PHPcomposer require hostingowy/sdk
  • Rustcargo add hostingowy
  • Java/Kotlin — Maven/Gradle package
  • .NET/C# — NuGet package

📝 Contribute to Existing SDKs

Our official SDKs are open-source on GitHub:

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 Guide

Conclusion

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?

  1. Sign up for a Hostingowy account
  2. Generate your API key from the dashboard
  3. npm install hostingowy or pip install hostingowy
  4. 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.