HPR Motor Finder

Developer API

A free, read-only JSON API of everything on this site โ€” every AeroTech, Cesaroni & Loki motor we track, with per-vendor stock and pricing. It's plain static files on a CDN, so:

Endpoints

Base URL https://motor.fusionspace.co/api/v1/

Motor shape

Every payload carries schema_version (currently 1) and generated_at. Prices are integer cents.

{
  "id": 1234,
  "path": "/api/v1/motors/aerotech/H128W.json",   // this motor's own endpoint
  "manufacturer": "AeroTech",        // | "Cesaroni Technology" | "Loki Research"
  "designation": "H128W",
  "impulse_class": "H",              // Aโ€“O
  "diameter_mm": 29,
  "total_impulse_ns": 176.2,
  "avg_thrust_n": 128,
  "burn_time_s": 1.4,
  "propellant": "White Lightning",
  "sparky": false,
  "motor_type": "reload",            // | "SU" | "hybrid"
  "case_info": "RMS-29/180",         // null for single-use
  "in_stock": true,
  "vendor_count": 5,                 // distinct vendors carrying it
  "in_stock_vendor_count": 3,
  "listing_count": 9,                // total listings (a vendor may list variants)
  "cheapest_in_stock": {             // pack-aware per-unit; null if none in stock
    "unit_price_cents": 3000, "currency": "USD",
    "vendor": "Wildman", "url": "https://โ€ฆ", "pack_size": 2
  },
  "listings": [
    {
      "vendor": "Chris' Rocket Supplies",
      "url": "https://โ€ฆ",            // where to buy it
      "status": "in_stock",          // | "out_of_stock" | "special_order" | "unknown"
      "price_cents": 3499,
      "unit_price_cents": 3499,      // sticker รท pack_size
      "pack_size": 1,
      "stock_count": null,           // units on hand, when published
      "last_seen": "2026-06-19T04:00:55Z"
    }
  ]
}

See the full field reference on GitHub for every field.

Examples

# Cheapest in-stock H motors right now
curl -s https://motor.fusionspace.co/api/v1/in-stock.json \
  | jq '.motors[] | select(.impulse_class=="H")
        | {designation, from: .cheapest_in_stock.unit_price_cents,
           vendor: .cheapest_in_stock.vendor}'
// Browser โ€” CORS is open
const res = await fetch("https://motor.fusionspace.co/api/v1/in-stock.json");
const { motors } = await res.json();
const cti54 = motors.filter(
  (m) => m.manufacturer === "Cesaroni Technology" && m.diameter_mm === 54,
);

Terms

Free to use; attribution to motor.fusionspace.co is appreciated. The data is aggregated from public vendor listings and ThrustCurve; it's provided as-is, with no warrantyโ€” verify stock and price on the vendor's own page before relying on it.

Please use this API rather than scraping the vendors directlyโ€” that's what it's for, and it keeps load off the shops. Cache a copy and poll meta.json for changes.

There's no per-key or per-IP rate limit. Cloudflare's standard automatic abuse protection applies to all traffic, as it does to any site behind a CDN โ€” normal use never encounters it.