SpotRoutePublic Beta
Open API for spot compute. No signup.

Route batch jobs to the cheapest spot market instantly.

SpotRoute monitors AWS, Azure, and GCP spot prices to find the most cost-effective regions for interruptible workloads. Perfect for model training, rendering, and ephemeral CI pipelines.

Latency
< 50ms

Cache-first response path once sync completes.

Protection
IP-limited

Open MVP, protected against naive floods.

Markets
3 clouds

AWS Spot, Azure Spot VM, and GCP Spot.

Routing Console
API Preview
v1.0
Request
curl -s "https://spotroute.co/api/v1/best-region\
?sku=g4dn.xlarge\\
&baseline_cloud=aws"
Response
Winnergcp / eu-west1
Price$0.001055/hr
Savings94.6%
Statusready

Built for spot capacity hunting

Compare tracked AWS Spot, Azure Spot VM, and GCP Spot equivalents before you place a single batch workload.

Fast enough for pipelines

Providers are polled in the background so CI jobs, render queues, and ML launch scripts can make a routing decision immediately.

Public beta, not a gated dashboard

No login or token barrier in the MVP. The endpoint is open for evaluation and guarded with an in-memory per-IP limiter.

Macroeconomic Reality

Energy scarcity is about to amplify cloud costs.

Due to escalating geopolitical conflicts—specifically the ongoing war involving Iran—global energy markets are facing severe and prolonged instability. The assumption of universally cheap data center power is no longer safe.

As power grids become constrained, hyperscaler compute prices will mechanically increase. To survive the incoming margin squeeze, infrastructure must be able to dynamically route workloads to temporary, spatial pockets of cheap power.

SpotRoute mitigates this risk by automatically targeting markets with the lowest pricing footprint, insulating your compute pipelines from global energy shocks.
Why SpotRoute

Built for workloads that tolerate interruption but hate overpaying.

Optimized for stateless compute where region choice is flexible and spot variance is worth capturing before every launch.

ML Training

Pick the cheapest GPU market before each run kicks off.

Training models on large parameter spaces heavily relies on high-end clusters like A100s or H100s. Spot availability for these instances is notoriously volatile. Instead of statically locking your workflows to us-east-1, let your orchestrator dynamically seek out idle GPU capacity globally to maximize your engineering runway.

import requests
import os

# Find cheapest p4d.24xlarge region before cluster up
api = "https://spotroute.co/api/v1/best-region?sku=p4d"
res = requests.get(api).json()

print(f"Deploying to {res['region']}...")
os.system(f"ray up cluster.yaml --region {res['region']}")
# Dynamically resolve spot target from SpotRoute
REGION=$(curl -s "https://spotroute...g4dn" | jq -r .region)

aws batch submit-job \
  --job-queue "render-$REGION" \
  --job-definition "blender-cycles"

Render Queues

Send frames to whichever spot region is cheapest right now.

VFX framing and 3D pipelines involve thousands of independent, stateless rendering tasks. Because they are highly parallelizable but compute-intensive, your farm manager can aggressively shift target render pools to wherever compute drops down to rock bottom, avoiding price spikes on your default deployment region.

CI Runners

Route ephemeral runners to low-cost spot capacity.

Large test suites, integration environments, and building Docker images require substantial momentary compute force. Rather than paying on-demand prices for persistent builder nodes, query SpotRoute to spin up massive ephemeral compute pools globally for pennies on the dollar before kicking off complex GitHub Actions pipelines.

# .github/workflows/ci.yml
jobs:
  resolve:
    runs-on: ubuntu-latest
    outputs:
      region: ${{ steps.route.outputs.region }}
    steps:
      - name: Query SpotRoute
        id: route
        run: |
          R=$(curl -sf "https://spotroute.co/api/v1/best-region?sku=g4dn.xlarge" | jq -r .region)
          echo "region=$R">> $GITHUB_OUTPUT
@task
def get_cheapest_spark_region():
    res = requests.get("https://spotroute...e2")
    return res.json()["region"]

spark_cluster = DataprocCreateClusterOperator(
    region=get_cheapest_spark_region(),
    cluster_name="ephemeral-spark"
)

Scheduled ETL

Use a preflight API call in cron or Airflow jobs.

Heavy data extraction and transformation pipelines orchestrated by Apache Airflow, dbt, or Dagster usually run asynchronously on a schedule. Because the execution timing and location are flexible, run a lightning-fast preflight routing check to determine the most cost-effective region for your Spark clusters before the heavy crunching begins.

Drop-in integrations

One API call fits into any pipeline.

Paste a SpotRoute call into your existing toolchain. No SDK, no agent, no vendor lock-in. If it can runcurlit can route to the cheapest spot market.

.github/workflows/deploy.yml

GitHub Actions integration

Before spinning up a self-hosted spot runner, query SpotRoute once to pick the cheapest region and export it as a job output. Downstream steps reference `TARGET_REGION` so your Terraform or AWS CLI calls always land in the optimal market.

No API key needed in the current MVP — just call the endpoint directly.

Response is < 50 ms from cache — safe to call in a pipeline step without adding meaningful latency.

Add baseline_region to get estimated savings back in the same response.

.github/workflows/deploy.yml
name: Deploy to Cheapest Spot Region

on:
  push:
    branches: [main]
  workflow_dispatch:

jobs:
  resolve-region:
    name: Resolve cheapest spot region
    runs-on: ubuntu-latest
    outputs:
      region: ${{ steps.route.outputs.region }}
      cloud:  ${{ steps.route.outputs.cloud }}
    steps:
      - name: Query SpotRoute
        id: route
        run: |
          RESPONSE=$(curl -sf \
            "https://spotroute.co/api/v1/best-region?sku=g4dn.xlarge&clouds=aws")
          echo "region=$(echo $RESPONSE | jq -r .region)" >> $GITHUB_OUTPUT
          echo "cloud=$(echo $RESPONSE  | jq -r .cloud)"  >> $GITHUB_OUTPUT

  provision:
    name: Provision spot runner
    needs: resolve-region
    runs-on: ubuntu-latest
    env:
      TARGET_REGION: ${{ needs.resolve-region.outputs.region }}
    steps:
      - uses: actions/checkout@v4

      - name: Launch spot instance
        run: |
          aws ec2 run-instances \
            --region $TARGET_REGION \
            --instance-type g4dn.xlarge \
            --instance-market-options MarketType=spot \
            --image-id ami-0abcdef1234567890 \
            --tag-specifications \
              'ResourceType=instance,Tags=[{Key=Purpose,Value=ci}]'

      - name: Run test suite on spot node
        run: ./scripts/run_tests.sh --region $TARGET_REGION
Provider Examples

Copy a request and hit the endpoint

Each example shows the public request shape for one spot market. No `Authorization` header is needed in the current MVP. If you want a true multi-cloud cheapest-result lookup, omit the `clouds` filter entirely.

AWS Spot

AWS example

Ask for the best region while comparing against an AWS baseline.

request.sh
curl "https://spotroute.co/api/v1/best-region?sku=g4dn.xlarge&clouds=aws&baseline_cloud=aws&baseline_region=us-east-1"

This endpoint is open. Rate limiting is based on source IP, so you can test spot-routing flows without provisioning an account, dashboard, or API key first.

Sample response
What the API returns
response.json
{
  "cloud": "aws",
  "region": "us-east-1",
  "zone": "us-east-1f",
  "native_sku": "g4dn.xlarge",
  "price_usd": "0.218500",
  "stale": false
}

sku must exist in the tracked spot-equivalence catalog. Unknown SKUs return `404`.

clouds is optional. Leaving it out lets SpotRoute compare across all enabled spot markets.

baseline_region is optional. It lets the response estimate savings against the region you would otherwise launch in.