Machine interface · JSON, MCP, metered
Your software can ask what binds, and get an engineering answer back.
The same engine behind the studies, callable directly. Thirteen electrical, thermal and physical constraints solved against a hall; the binding one returned with its basis, the costed relief ladder behind it, and the date the whole thing turns on. No account manager, no PDF, no spreadsheet round-trip.
Three ways to use GridForge
- 1 · A free result
Find what binds your hall
Seven numbers you already know. The engine returns the constraint that binds first, the racks the hall carries as found and after relief, and which inputs were assumed. No card, no account. Every figure carries an evidence class, and the calibration record is published as it stands.
Run free capacity check - 2 · Metered software
Call the engine from your own code
Start on a free allowance of 25 units a month, no card. Then pay as you go at €2 a unit under a monthly cap you set, from €20 to €2,000: invoiced monthly in arrears, with a hard stop at the cap. Take a plan when the volume warrants it: API — Triage starts to cost less from 450 units a month.
Get the free allowance - 3 · An engineering engagement
A fixed fee, a named deliverable
When you need an engineer's opinion on a hall, not an API response. Fixed fee agreed before we start, produced and reviewed by a person. Most halls begin with the Density Screen, from €4,500, which credits in full against the study it usually leads to. API responses are screening output and never carry an engineer's sign-off.
See the engagements

OpenAI / Anthropic function-calling shape at /v1/tools, and Model Context Protocol over JSON-RPC at /mcp. Both generated from the same schema the server validates against.
A qualify and a forty-hall portfolio run do not cost the same and are not billed the same. Rates are published at /v1/version so you can price a job before you run it.
Each figure carries an evidence class E0–E7 and a provenance digest. A modelled number loose inside an agent loop is more dangerous than one in a board pack, not less.
What you can call
gridforge_qualify and gridforge_estimate are free and need no key. Everything else meters.
| Tool | Endpoint | Units | Returns |
|---|---|---|---|
| gridforge_qualifyfree | /v1/qualify | 0 | binding constraint, racks as found and after relief, the item that sets the date, and the inputs nobody has measured. No capital cost, no lead times: those are the paid engagement. |
| gridforge_estimate | /v1/estimate | Not yet available — awaiting engine release | |
| gridforge_screen | /v1/screen | 1 | screen payload, or the rendered screening document. |
| gridforge_compare | /v1/compare | Not yet available — awaiting engine release | |
| gridforge_study | /v1/study | 5 | the model pack, a rendered document, or the CSV working files. |
| gridforge_portfolio | /v1/portfolio | 1 | halls ranked against the objective, with the total deployable rack count. |
| gridforge_diff | /v1/diff | 2 | headline, racks/weeks/capex deltas, ranked drivers, explained and residual. |
| gridforge_spec | /v1/spec | 3 | the specification document, what it is sized for, and the response template a supplier fills in. |
| gridforge_bids | /v1/bids | 2 | ranked bids with scores, schedule impact, and optional cost-library lines. |
| gridforge_power_assess | /v1/power/assess | Not yet available — awaiting engine release | |
| gridforge_power_deploy_assess | /v1/power/deploy/assess | Not yet available — awaiting engine release | |
| gridforge_power_deploy_spec | /v1/power/deploy/spec | Not yet available — awaiting engine release | |
| gridforge_power_deploy_bids | /v1/power/deploy/bids | Not yet available — awaiting engine release | |
| gridforge_proposal | /v1/proposal | 2 | the proposal document and the engagement's catalogue price. |
The downloadable catalogue (/reference/tools.json) and the schemas it carries describe the engine in this repository. Operations marked not available are not served by the engine that is deployed today, so they cannot be called or billed yet. This table follows the deployed engine and lists them as callable once the release that serves them is live.
Add it to your AI client
The free qualifier works over MCP with no key and no account. Paste one of these and ask your assistant whether a hall can take GB300 racks — it will come back with the constraint that binds first, the rack count as found, and which item sets the energisation date.
claude mcp add --transport http gridforge https://gridforge-engine.fly.dev/mcp
X-GridForge-Project is optional: up to 64 characters of letters, digits and . _ : -. When the engine records it, your usage can be read back per project; a value outside that set is ignored, not rejected. Without a key, only the free qualifier answers. Every other tool asks for one.
The handshake tells the model not to present a modelled figure as a property of a physical asset, and every result carries our calibration state. An E0 number loose in an agent loop is more dangerous than one in a board pack — nobody downstream reads the footnote.
Try it without a key
Seven numbers about an existing air-cooled hall. The answer names the constraint that binds first, how many racks fit as found, and which item sets the energisation date.
curl -s -X POST https://gridforge-engine.fly.dev/v1/qualify \
-H 'content-type: application/json' \
-d '{"contracted_MW":12,
"current_site_peak_MW":7.4,
"current_it_load_MW":4.9,
"busway_ampacity_A":400,
"tapoff_max_A":63,
"plant_supply_C":6,
"positions_available":180}'Point an agent at it
MCP over JSON-RPC 2.0 at /mcp, protocol 2025-06-18. The transport is open; each tool keeps its own tier, so the free qualifier works without a key and everything else asks for one.
curl -s -X POST https://gridforge-engine.fly.dev/mcp \
-H 'x-api-key: YOUR_KEY' \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,
"method":"tools/call",
"params":{"name":"gridforge_qualify",
"arguments":{ ... }}}'What the engine says about its own accuracy
Model accuracy against instrumented sites has not been established: 0 reconciled observations across 0 sites, covering 0 of 20 model outputs. Every figure in this report is modelled. The uncertainty ranges shown come from input uncertainty propagated through the model, not from the difference between this engine's predictions and site data — no such difference has been recorded yet.
State
uncalibrated
Observations
0
Sites
0
Outputs covered
0/20
This block is on every response, including the free one, including while the answer is zero. An accuracy record that only appears once it flatters us is a marketing number. Live at /v1/calibration.
Every numeric field in a response carries an evidence class (E0 assumed … E7 observed in operation) and a provenance digest. An agent consuming these must not present an E0 or E1 figure as a property of the physical asset. The calibration block states how far this engine has been reconciled against site data; where it says uncalibrated, it means uncalibrated.
Free allowance · 25 units a month · no card
What it costs
Free first, then metered, then a plan if the volume warrants one. Every number below is generated from the engine's own tool catalogue and the published unit price: there is no second price list.
What one operation costs
One unit price for every billable operation: €2 a unit. Each endpoint weighs a published number of units, so a constraint screen and a full study are not billed alike. 25 units a month, no card. Free-allowance usage is never invoiced; when it runs out the engine answers 402 and nothing is charged.
| Operation | Endpoint | Units | Pay as you go |
|---|---|---|---|
| gridforge_qualify | /v1/qualify | 0 | free |
| gridforge_portfolio | /v1/portfolio | 1 per hall | €2 per hall |
| gridforge_screen | /v1/screen | 1 | €2 |
| gridforge_bids | /v1/bids | 2 | €4 |
| gridforge_diff | /v1/diff | 2 | €4 |
| gridforge_proposal | /v1/proposal | 2 | €4 |
| gridforge_spec | /v1/spec | 3 | €6 |
| gridforge_study | /v1/study | 5 | €10 |
| gridforge_estimate | /v1/estimate | Not yet available — awaiting engine release | |
| gridforge_compare | /v1/compare | Not yet available — awaiting engine release | |
| gridforge_power_deploy_bids | /v1/power/deploy/bids | Not yet available — awaiting engine release | |
| gridforge_power_deploy_spec | /v1/power/deploy/spec | Not yet available — awaiting engine release | |
| gridforge_power_assess | /v1/power/assess | Not yet available — awaiting engine release | |
| gridforge_power_deploy_assess | /v1/power/deploy/assess | Not yet available — awaiting engine release | |
An operation marked not available is in the engine's published catalogue but is not served by the engine that is deployed today. It cannot be called, so it cannot be billed. This table follows the deployed engine and lists the operation, with its units and price, once the release that serves it is live.
How it is billed
A month's charge is the net ledger units for the UTC month (charges minus refunds) at €2 a unit, invoiced monthly in arrears. A month whose charge is under the €5 minimum invoice is not invoiced on its own: it is carried forward and added to the next month, and so on from month to month. A balance that never reaches €5 is never invoiced. A request that is rejected, unauthorised, invalid or fails is refunded and never charged, and a retry with the same Idempotency-Key is never charged twice. Free-allowance usage is never invoiced. The customer's own monthly cap is a hard stop: beyond it the engine answers 402 and nothing more accrues.
You set a monthly cap between €20 and €2,000. The engine stops at it. It does not go over.
When a plan is cheaper
- API — Triage (€900 a month, 600 units included) costs less than pay-as-you-go from 450 units a month; below that, metering costs less.
- API — Scale (€2,900 a month, 2,500 units included) costs less than pay-as-you-go from 1,450 units a month; below that, metering costs less. That is above the 1,000 units the highest pay-as-you-go cap allows (€2,000), so a cap-limited account cannot reach it.
- API — Platform (€7,500 a month, 10,000 units included) costs less than pay-as-you-go from 3,750 units a month; below that, metering costs less. That is above the 1,000 units the highest pay-as-you-go cap allows (€2,000), so a cap-limited account cannot reach it.
Computed from the plan prices and the unit price above. Plans have no overage: past the included units the engine answers 402.
What will this cost?
Pick an operation and a volume. The figures are worked out from the same published unit weights the engine meters, at €2 a unit.
This call
€2
1 unit
This volume, pay as you go
€40
20 units a month
Cheapest way to buy it
Free allowance
€0
- 1 unit per call.
- The 25-unit free allowance covers 25 calls of this size.
- This volume fits inside the free allowance: no card, no invoice.
The engine's own live estimate (/v1/estimate) is not available yet: the figures above are computed from the published unit weights, not read back from the engine.
Monthly plans
Plans are for steady volume: a fixed price a month for a fixed number of units. If you are not there yet, the free allowance and pay-as-you-go above cost less. Past a plan's units the engine returns 402; there is no overage billing.
The key link goes to this address. Use the one your engineers actually read.
€900 /month
600 units: 120 full studies, or 600 screens, or any mix
- A signed API key and the MCP endpoint, with the same endpoints and evidence on every number as the free allowance.
- API — Triage (€900 a month, 600 units included) costs less than pay-as-you-go from 450 units a month; below that, metering costs less.
- Screening-mode output only: no issued opinion, no named signatory, no professional indemnity.
€2,900 /month
2,500 units: 500 full studies, or 2,500 screens, or any mix
- A signed API key and the MCP endpoint, with the same endpoints and evidence on every number as the free allowance.
- API — Scale (€2,900 a month, 2,500 units included) costs less than pay-as-you-go from 1,450 units a month; below that, metering costs less. That is above the 1,000 units the highest pay-as-you-go cap allows (€2,000), so a cap-limited account cannot reach it.
- Screening-mode output only: no issued opinion, no named signatory, no professional indemnity.
€7,500 /month
10,000 units: 2,000 full studies, or 10,000 screens, or any mix
- A signed API key and the MCP endpoint, with the same endpoints and evidence on every number as the free allowance.
- API — Platform (€7,500 a month, 10,000 units included) costs less than pay-as-you-go from 3,750 units a month; below that, metering costs less. That is above the 1,000 units the highest pay-as-you-go cap allows (€2,000), so a cap-limited account cannot reach it.
- Screening-mode output only: no issued opinion, no named signatory, no professional indemnity.
Billed monthly through Stripe. To cancel, write to power@timetopower.ai. No overage billing: past the included units the engine returns 402 and refuses the call, so you never meet an invoice you did not expect. Anything beyond the API itself, such as support, a named contact or redistribution terms, is arranged by email after purchase. It is not automated and it is not part of what the key does. No availability SLA comes with any plan.
Not sure yet?
The qualifier is free and needs no key, and the full deliverable is published in full — document, deck, proposal and the tables behind every number.