Build a quote
Open beta · schema 2026-09-25 · engine 3.0.0

Run the same engine headlessly

POST a reference-case key or a complete 8,760-hour project to the simulation endpoint. The response returns provenance, an input fingerprint, technical results, lifecycle economics, and any requested outage or component-disturbance resilience analysis. Use is subject to the API terms.

Endpoint

POST /api/v1/simulate

JSON in, JSON out. CORS is enabled for public read-and-run integrations.

Default response

Aggregate, not hourly

Technical, economic, and requested resilience results are returned by default. Set includeHourly to true when the complete dispatch trace is required.

Limits

20 per minute · 3 MB · 50 years

20 requests per minute per client (HTTP 429 with Retry-After). Payloads are capped at 3 MB, project life at 50 years, and resilience studies by a published compute budget. Custom projects need exactly 8,760 non-negative load values.

Fastest first call

Run one of the published reference projects without constructing a full project payload.

curl -X POST https://www.microgridmodeler.com/api/v1/simulate \
  -H "Content-Type: application/json" \
  -d '{"benchmarkKey":"clinic-small","includeHourly":false}'

Request contract

Provide exactly one source: benchmarkKey or project.

FieldTypeRequiredMeaning
benchmarkKeystringOne of twoKey of a synthetic reference case (table below).
projectProject objectOne of twoComplete site, 8,760 load, economics, constraints, and system design payload; optional grid and resilience specs.
includeHourlybooleanNoReturns the complete hourly dispatch series when true. Default false.
Error responses
StatusCodeMeaning
415UNSUPPORTED_MEDIA_TYPESend the body as application/json.
422VALIDATION_ERRORThe request does not match the OpenAPI schema; errors[] lists a JSON pointer, keyword and message for each problem. Unknown properties are rejected.
422COMPUTE_BUDGET_EXCEEDEDThe requested resilience study is too large; the response gives the budget and a suggested start-hour stride.
429RATE_LIMITEDMore than 20 requests a minute; retry after the given seconds.
500NON_FINITE_RESULT, SIMULATION_ERROR, INTERNAL_ERRORA server-side fault; the result is withheld rather than returned with invalid numbers.
Open-beta boundary. The schema is versioned, but authentication, service-level guarantees, bulk optimization, and stored projects are not part of this public endpoint. Archive the schemaVersion, project payload, and returned fingerprint with any automated study.

Published benchmark keys

Stable inputs to the endpoint: the same synthetic reference cases shown on the reference-case page.

KeyNameLoad archetypePeak
arctic-telecomArctic telecom relaytelecom8 kW
desert-telecomDesert telecom relaytelecom12 kW
clinic-smallRemote clinic (small)clinic20 kW
clinic-mediumRemote clinic (medium)clinic60 kW
island-guesthouseIsland guesthousehospitality80 kW
island-resortIsland resorthospitality300 kW
rural-schoolRural schoolschool40 kW
boarding-schoolBoarding schoolschool120 kW
village-tinyVillage microgrid (tiny)village50 kW
village-smallVillage microgrid (small)village150 kW
village-mediumVillage microgrid (medium)village400 kW
mine-camp-smallMine camp (small)mine-camp250 kW
mine-camp-mediumMine camp (medium)mine-camp1000 kW
cold-storageCold storage agro sitecold-storage150 kW
water-pumpingWater pumping stationwater-pumping75 kW
fisheries-iceFisheries / ice plantcold-storage200 kW
municipalityRemote municipalityutility-feeder500 kW
construction-campConstruction campmine-camp300 kW
military-baseRemote military support basemilitary750 kW
island-feederHigh-fuel-cost island feederutility-feeder2000 kW

Response shape

The exact component and result schemas are published in the OpenAPI document.

{
  "schemaVersion": "2026-09-25",
  "engine": "MicrogridModeler 3.0.0 chronological techno-economic, resilience, and Pareto-sizing engine",
  "engineVersion": "3.0.0",
  "fingerprint": {
    "value": "…",
    "method": "cyrb53 over the serialized project payload",
    "cryptographic": false
  },
  "project": { "id": "clinic-small", "name": "Remote clinic (small)" },
  "provenance": { "solar": { "source": "synthetic", "badge": { "label": "Offline estimate" } }, "wind": null },
  "resource": { "annualGhiKwhM2": 0, "annualPoaKwhM2": 0, "specificYieldKwhPerKw": 0 },
  "result": {
    "feasible": true,
    "violations": [],
    "technical": { "annualLoadKwh": 0, "fuelLitres": 0 },
    "economics": { "npc": 0, "lcoe": 0 }
  }
}