Self-hosted · Open source

Find the cheapest VM across 7 clouds — in one API call.

One place to ask “what’s the cheapest VM?” across multiple clouds. Send constraints — vCPU, RAM, arch, region, max price. Get cost-ranked recommendations in EUR. Optional TCO: include egress, storage, public IP, OS license. No provisioning. No lock-in.

MIT License FastAPI PostgreSQL 7 Cloud Providers EUR-Normalized Self-Hosted
$ curl -X POST "http://localhost:8000/api/recommendations" \
  -H "Content-Type: application/json" \
  -d '{"min_vcpu":2,"min_ram_gb":4,"arch":"x86_64","region_constraint":"EU"}'
→ 1. cx23         hetzner   fsn1        €0.0048/hr  score: 0.990
  2. Standard_B2s azure     westeurope  €0.0400/hr  score: 0.950
  • Broker for compute — one API, multiple clouds
  • TCO-aware — egress, storage, public IP in total cost
  • Dual scoring — legacy (price+fit) or multi-criteria; transparent explain block; Swagger at /docs
  • 7 providers — AWS, GCP, Azure, Hetzner, Scaleway, DO, OVH
  • Self-hosted — your data, no lock-in
CloudBroker full scope: ingestion (providers → Connectors → Ingestion + FX → PostgreSQL); API flow (Client → CloudBroker → ranked recommendations).
Ingestion pipeline (providers → DB) and API request flow (constraints in → ranked recommendations out).
API request lifecycle: JSON constraints to CloudBroker filter and score, ranked recommendations out.
Constraints in, ranked recommendations out. TCO params add cost breakdown in explain.

Simple. Fast. Yours.

Simple

One endpoint. Send vCPU, RAM, arch, region, max price. Get a cost recommendation — the cheapest VM that fits. No provisioning, just the answer.

Fast & easy

make up, make migrate, make ingest-all. make ingest-egress for TCO-aware recommendations. Hit /api/recommendations for your first cost recommendation. Done.

Self-hosted

Your PostgreSQL. Your credentials. No lock-in. Cloudburst Autoscaler uses CloudBroker as its broker for compute when bursting Kubernetes nodes.

Use cases

When CloudBroker fits best.

Autoscaler & burst

Cloudburst Autoscaler calls POST /api/recommendations to pick the cheapest VM when bursting Kubernetes nodes.

Multi-cloud comparison

Compare instance prices across AWS, GCP, Azure, Hetzner, Scaleway, DigitalOcean, OVH in one query. EUR-normalised.

TCO modelling

With data source and egress estimates, get total cost including egress, storage, public IP, OS license.

Budget planning

"What's the cheapest 4 vCPU / 8 GB RAM in EU?" for capacity planning or migration decisions.

Price analytics

Track price changes and trends over time via /api/price-analytics.

Custom automation

Any script or controller can call the API; not limited to Cloudburst.

Supported providers

CloudBroker ingests compute pricing from each provider: instance types, regions, and prices. Connectors pull data, normalise to EUR, and upsert into one catalogue. Ingest once, query forever.

AWS
GCP
Azure
Hetzner
Scaleway
DigitalOcean
OVH

Pricing ingested via official APIs · Normalized to EUR

Pricing is fetched via each provider’s public or SDK APIs. Cost rates (egress, storage, public IP, OS license) — API for AWS/Azure/GCP; YAML config for Hetzner, DO, Scaleway, OVH. Run make ingest-egress or make ingest-all-costs.

Provider APIs flow into Connectors, then Ingestion Service (upsert and FX) into PostgreSQL — instance types and prices, normalised to EUR.
Data lifecycle: providers → Connectors → Ingestion Service → PostgreSQL. Instance types and prices, normalised to EUR.

CloudBroker vs alternatives

How CloudBroker compares to other multi-cloud pricing tools.

CloudBroker ✓ Recommended Infracost CloudPrice Provider APIs
Providers 7: AWS, GCP, Azure, Hetzner, Scaleway, DigitalOcean, OVH 3: AWS, Azure, GCP 3: AWS, Azure, GCP 1 per API
Hosting ✅ Self-hosted (you run it) ❌ Hosted (SaaS, API key) ❌ Hosted (SaaS) You call provider directly
Recommendation Ranked by cost + fit, one request GraphQL query, Terraform-focused Instance recommendations, regional comparison Raw listings, no ranking
TCO ✅ Egress, storage, public IP, OS license, cross-AZ in total cost ❌ Per-provider or N/A ❌ Per-provider or N/A Per-provider or N/A
Currency Normalised to EUR (FX) Per-provider Per-provider Per-provider (USD, etc.)
Primary use Autoscaler / burst cost selection (e.g. Cloudburst) Terraform cost estimation Pricing lookup, dashboards Single-cloud billing / lookup

CloudBroker targets self-hosted multi-cloud cost selection: 7 providers (including EU-focused Hetzner, Scaleway, OVH), one recommendation endpoint, EUR-normalised. Infracost and CloudPrice are hosted and focus on the big three; provider APIs are single-cloud. Choose based on your stack and who you want to run it.

The only self-hosted option with 7 providers, EUR normalization, and TCO support.

Articles

Four-part intro: problem and product, how it works, the API, scope and run.

Architecture

Ingestion pipeline, data model, and cost recommendation engine. How the broker fits together.

Examples

Start the API and PostgreSQL, then call the recommendation endpoint. Request, response, and interactive docs.

Got questions? Here’s the answers.

How they work together

Used by Cloudburst Autoscaler: when a Kubernetes pod can’t be scheduled, Cloudburst uses CloudBroker as its broker for compute — gets a cost recommendation, then provisions the recommended VM.

flowchart LR
    Cluster --> Cloudburst
    Cloudburst -->|"POST /api/recommendations"| CloudBroker
    CloudBroker -->|"cost recommendation"| Cloudburst
    Cloudburst -->|"provision"| ChosenProvider["Chosen provider"]
    ChosenProvider --> NodeReady["Node Ready"]
          

Get your first recommendation in 5 minutes.

7 Cloud Providers · Self-Hosted · Open Source · EUR-Normalized · TCO-Aware