Gauss is in preview: it is reachable only by sending
X-API-Version: 2026-09-08.gauss explicitly, is never a client’s default, and may still change before it graduates.Breaking changesGET /plans/{id}/quotebecomesPOST /plans/{id}/quote, Calculate a quote: same path, and theGETnow returnsNOT_FOUND. The inputs move into a body so the §14a EnWG modules travel as onegrid_fee_reductionsobject, and so the response of Calculate savings can be posted straight back.usageis an object there as well: send the priced kWh asusage.consumption, not as a plain number. On earlier versions theGETis unchanged.meter_typeis gone. Load shifting needs a smart meter, so the quote prices one whenever the optimization rate that applies is above zero and an analog meter otherwise. That rate isoptimization_ratewhen sent, and the plan’s own rate when it is not, so a plan configured with a rate is quoted on a smart meter by default andoptimization_rate: 0is how you ask for an analog one.- Calculate a quote states the load-shifting discount on a subcomponent of its own (
subgroup: "optimization", a negative amount) instead of folding it intoenergy.energyis now the undiscounted EPEX day-ahead average; the subcomponents still sum tounit_amountand the quote total is unchanged. Clients that readenergyas the billed energy price should read the two rows together, or keep pinning2026-05-27.curie. - Both new endpoints are a
POST, so they need awrite:*token even though they read and change nothing: the required scope follows the HTTP method, not the effect.
- Retrieve spot prices adds
GET /spot-prices, independent of a subscription. Select raw realized German EPEX prices withtype=day_ahead(the default), or Nomos’s forecast of that market price withtype=day_ahead_forecast. Both use the familiar price time-series envelope inct/kWh, with no subscription, components, fees, margins, VAT, taxes or levies. The response lists every interval start without a published price undermissing, so an unpublished day or a partial multi-day response is detectable without counting intervals. Partner integrations use their existing read access; forecasts require separate partner enablement, cover yesterday through seven days ahead, and retain the curve frozen before delivery. Realized prices can be requested for any past date through tomorrow. Subscription prices are unchanged. - Calculate a quote takes an optional
optimization_rate, the share of the day-ahead price load shifting is expected to save. Omit it for the plan’s own rate (a plan that configures none is quoted without optimization), or send a number to override it, with0pricing the plan without any optimization. Feed-in plans never earn an optimization row, whatever is sent. Where there is no discount to state theoptimizationsubcomponent is absent rather than zero. grid_fee_reductionsadds14a_module_3(Zeitvariable Netzentgelte) to the two modules already supported. With it thegridsubcomponent is the operator’s low, standard and high windows blended over the share of the year the schedule is in effect, rather than the static rate. It requires14a_module_1, and the blended rate can exceed the static one, in which case the grid line goes up.- The quote response carries
resolution, the period its amounts cover. It ismonthtoday, matching every earlier version. - Calculate savings estimates what a household saves per year on a plan, broken down into the tariff, the §14a EnWG grid fee reductions, and optimization. Describe the household in the body by its base
household.usageplus one object per asset it owns underassets(ev,heatpump,pv,battery), with an optionalcurrent_tariff(base_feein EUR per year,var_feein EUR per kWh) to compare against instead of the market benchmark. The optimization rate and the §14a EnWG eligibility are derived from that mix and from what the plan sells; they cannot be requested. Postusage,optimization_rateandgrid_fee_reductionsfrom the response back to Calculate a quote unchanged to price the same household and reconcile every figure.
Curie introduces feed-in support, improved smart meter orders, webhook events, the first
PATCH endpoints, and restructures key resources around top-level endpoints. Older versions keep the removed routes and previous response shapes.Breaking changesSeveral routes are replaced by top-level endpoints. The old routes are removed from this version onwards:Scope the new list endpoints to a single subscription with
filter[subscription][eq]=<id>- The Retrieve usage data response
objectfield changes fromconsumptiontousage. - Meter order responses collapse
statusfrom 14 internal partner-specific states to 8 public values and dropupdated_at; see Retrieve a smart meter order for the full list.POST /meter-ordersis unchanged.
- Feed-in plans compensate customers for electricity they feed into the grid, for example from rooftop solar. Plans and subscriptions carry a
typefield (consumptionorfeed_in). POST /subscriptions/{id}/terminateterminates a subscription via a discriminatedreasonfield:ORDINARY,MOVE_OUT, orWITHDRAWAL.PATCH /subscriptions/{id}updates the billing address, payment method, or metadata.PATCH /customers/{id}updates the customer’s name.- Meter orders report lifecycle timestamps and reasons for cancelled or blocked orders.
- Invoices add support for prepayments and voided invoices via new
typevalues (prepayment,void) and statuses (voided,uncollectible). - Structured validation errors: failures return an
errors[]array with one entry per invalid field instead of a single message. - Webhook events for invoices and smart meter orders.
Edison adds grid fee reductions for §14a EnWG modules, smart meter orders, and filtering on all list endpoints.New features
GET /grid-fee-reductions,GET /grid-fee-reductions/{id}, andPOST /grid-fee-reductionsmanage grid fee reductions for §14a EnWG modules.GET /meter-orders,GET /meter-orders/{id}, andPOST /meter-ordersmanage smart meter orders for a subscription.- All list endpoints support Filtering.
Batman introduces pagination on all list endpoints and API versioning.Breaking changes
- List endpoints are paginated. See Pagination. Affects
/customers,/leads,/plans,/subscriptions,/subscriptions/{id}/invoices,/subscriptions/{id}/meter_readings,/suppliers, and/suppliers/search.
- Versioning. Routes stay the same; pin a version per Auth Client or per request via
X-API-Version.
Initial public version of the Nomos API.