Most developers default to AWS or DigitalOcean for servers. Then they see the bill. A $5 VPS on DigitalOcean gives you 1 GB RAM. The same $5 on Hetzner gives you 4 GB RAM and 2 vCPUs.
Hetzner is Europe's best-kept hosting secret — and they have a full API for managing servers, volumes, firewalls, and load balancers programmatically.
Here is what you get and how to use the API.
Pricing Comparison (Why Hetzner Wins)
| Provider | $5/mo gets you | RAM | CPU | Storage |
|---|---|---|---|---|
| Hetzner | CX22 | 4 GB | 2 vCPU | 40 GB NVMe |
| DigitalOcean | Basic Droplet | 1 GB | 1 vCPU | 25 GB SSD |
| Linode | Nanode | 1 GB | 1 vCPU | 25 GB SSD |
| Vultr | Regular | 1 GB | 1 vCPU | 25 GB SSD |
| AWS Lightsail | Nano | 0.5 GB | 2 vCPU | 20 GB SSD |
That is 4x the RAM for the same price. For side projects, hobby servers, and dev environments, Hetzner is the rational choice.
The API: Create a Server in One Command
# Get your API token: https://console.hetzner.cloud → Project → Security → API Tokens
export HETZNER_TOKEN="your_token_here"
# Create a server
curl -X POST "https://api.hetzner.cloud/v1/servers" -H "Authorization: Bearer $HETZNER_TOKEN" -H "Content-Type: application/json" -d '{
"name": "my-app",
"server_type": "cx22",
"image": "ubuntu-24.04",
"location": "nbg1",
"ssh_keys": ["my-key"]
}' | jq '.server | {id, name, public_net}'
Server is ready in ~10 seconds. Not minutes. Seconds.
Python SDK
pip install hcloud
from hcloud import Client
from hcloud.images import Image
from hcloud.server_types import ServerType
client = Client(token="your_token")
# Create server
response = client.servers.create(
name="my-app",
server_type=ServerType(name="cx22"),
image=Image(name="ubuntu-24.04")
)
server = response.server
print(f"Server {server.name}: {server.public_net.ipv4.ip}")
# List all servers
servers = client.servers.get_all()
for s in servers:
print(f"{s.name} ({s.server_type.name}): {s.status}")
# Delete when done
server.delete()
What the API Covers
| Resource | Operations |
|---|---|
| Servers | Create, resize, rebuild, snapshot, rescue mode |
| Volumes | Attach block storage (10 GB to 10 TB) |
| Firewalls | Create rules, attach to servers |
| Load Balancers | HTTP/TCP balancing, health checks |
| Floating IPs | Static IPs, reassign between servers |
| SSH Keys | Manage deployment keys |
| Networks | Private networking between servers |
| Certificates | Manage TLS certificates |
Hetzner vs. DigitalOcean vs. Linode
| Feature | Hetzner | DigitalOcean | Linode |
|---|---|---|---|
| Price/performance | Best | Average | Average |
| API quality | Good | Excellent | Good |
| Managed databases | ❌ | ✅ | ✅ |
| CDN | ❌ | ✅ (Spaces CDN) | ✅ (Akamai) |
| Kubernetes | ❌ | ✅ | ✅ |
| Locations | EU + US (Ashburn) | Global | Global |
| Terraform provider | ✅ | ✅ | ✅ |
Choose Hetzner if: You want maximum performance per dollar and are OK with EU-centric locations.
Choose DigitalOcean if: You need managed services (databases, K8s, app platform).
Choose Linode if: You want Akamai CDN integration or need specific global locations.
When to Use Hetzner
- Side projects: 4 GB RAM for $5 runs most apps
- Dev/staging environments: Cheap to spin up and tear down
- CI runners: Self-hosted GitHub Actions runners at 1/4 the cost
- VPN/proxy servers: Private networking in EU
- Web scrapers: Run headless browsers with enough RAM
The Bottom Line
Hetzner gives you 4x the resources of competitors at the same price. The API is clean and well-documented. The only downside is fewer managed services and primarily European locations (though US East is now available).
Try it: hetzner.cloud — $5/mo for a server that actually has enough RAM for Docker.
Building something that needs data extraction, web scraping, or API integration? I have built 77+ production scrapers. Email Spinov001@gmail.com — quote in 2 hours.
More free developer tools: awesome-web-scraping (9 stars, 150+ tools) | 640+ articles on Dev.to
Top comments (0)