Self-hosted. Open source.

One API. Seven clouds. No hassle.

Send constraints — vCPU, RAM, region, max price. Get a ranked answer in EUR. No provisioning. No lock-in. Just the cheapest VM that fits.

  • One request — ranked recommendation
  • Seven providers — AWS, GCP, Azure, Hetzner, Scaleway, DigitalOcean, OVH
  • You run it — your data, cancel anytime
CloudBroker: multiple clouds feeding into a central API

One API, with peace of mind.

Get started in minutes. Run locally or deploy yourself.

Ingest instance types and prices from seven clouds. Normalize to EUR. Expose a single recommendation endpoint. No vendor lock-in — you own the stack.

What you get
One API
  • Ranked recommendations
  • Constraints in, list out
  • Transparent explain block
  • Swagger at /docs

Simple. Fast. Yours.

Simple

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

Fast & easy

make up, make migrate, make ingest-all. Hit /api/recommendations. Done.

Self-hosted

Your PostgreSQL. Your credentials. No SSN, no lock-in. Used by Cloudburst Autoscaler for cost-aware Kubernetes burst.

Our providers? Glad you asked.

One API over seven clouds. Ingest once, recommend forever.

AWS GCP Azure Hetzner Scaleway DigitalOcean OVH

Related articles

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

Browse all articles →

Architecture

An ingestion pipeline: CLI connectors pull from seven providers; the ingestion service upserts data and normalizes prices to EUR via FX rates. The data model is Provider → Region → InstanceType → Price (append-only) plus FxRate. The recommendation engine filters by constraints (vCPU, RAM, region, max price, allowed providers), scores candidates (price + fit or multi-criteria), and returns a ranked list with a transparent explain block. Cloudburst Autoscaler integrates by calling POST /api/recommendations.

CLI make ingest-* Connectors 7 providers Ingestion Service upsert + FX → EUR PostgreSQL Providers, Regions, Prices, FxRates Recommendation Engine scoring + ranking Price Analytics /recommendations /providers, /prices, /metrics Cloudburst Autoscaler (consumer)
Full architecture doc →

Examples

Start the API and PostgreSQL, then call the recommendation endpoint:

curl -X POST http://localhost:8000/api/recommendations \
  -H "Content-Type: application/json" \
  -d '{"min_vcpu": 2, "min_ram_gb": 4, "region_constraint": "EU", "max_price_eur_per_hour": 0.2, "limit": 5}'

Interactive docs at http://localhost:8000/docs when the API is running.

Got questions? Here’s the answers.

What is CloudBroker?

CloudBroker is a self-hosted API that ingests VM instance types and hourly prices from seven cloud providers, normalizes them to EUR, and exposes a single recommendation endpoint. Send constraints (vCPU, RAM, region, max price); get a ranked list. No provisioning — it only answers “what’s the cheapest VM that fits?”

Does it create or delete VMs?

No. It only recommends. Used by Cloudburst Autoscaler for cost-aware Kubernetes burst; any script or controller can call it.

How much does it cost?

It’s open source. You run it. Your PostgreSQL, your credentials. No monthly fee to us.

How do I get started?

Clone the repo, make up, make migrate, make seed, make ingest-all. Then hit POST /api/recommendations. See the repo for provider credentials in .env.

Get running in four steps

Yes, we kept it simple.

1 Clone
2 make up
3 make migrate & seed
4 make ingest-all

Then call /api/recommendations. Swagger at /docs.

How they work together

Used by Cloudburst Autoscaler: when a Kubernetes pod can’t be scheduled, Cloudburst calls POST /api/recommendations to pick the cheapest VM that fits, then provisions it.

Cluster Cloudburst CloudBroker Node

One API. One price.

Your infra. Your data. No lock-in.

View on GitHub