Machine-readable Minute Solar
Minute Solar for AI agents and integrations
How to compose, validate and hand over Minute Solar configurator deep links, and how to read our compatibility verdicts. Free compatibility verdicts with named evidence, honest unknowns, and no account or key required.
Machine description: /openapi.json · site index for LLMs: /llms.txt
What this is
Contract version 1. The promise is additive-only: slugs and grammar stay stable, new steps and fields may be added, old links always resolve. A renamed slug is a breaking change on our side and ships with a redirect.
Minute Solar is a UK solar equipment knowledge base and configurator. The canonical origin for every URL on this page is https://www.minute-solar.co.uk — link that one. Everything documented here is free to use, requires no account and no key, and is read-only: you can request our evaluation of a configuration, but nothing you send becomes a Minute Solar claim.
You can hand a user a link to a finished configuration — the end of the configurator, not the start. A complete link lands on the summary with our own server-side evaluation of exactly what the link names.
The /design URL grammar
A design link is /design followed by step/value pairs in any order. Values are the catalogue's own names, slugged: lower-case, punctuation folded to single hyphens (SMILE-B3-PLUS becomes smile-b3-plus). Matching is forgiving — casing, hyphenation and ordering survive — and honest: a value that matches nothing available is dropped and reported, never guessed, and everything after a dropped pair is dropped too, because continuing would invent a different system.
Pairs are applied in step order regardless of written order. A link that answers every applicable step lands on the summary; a partial link lands on the first unanswered step with everything before it filled in. A bare step slug with no value names that step's screen.
Every /design page carries a machine-readable meta tag, ms:design-path, holding the full long-form path for the configuration it shows — fetch any /design page and you can recover the whole configuration from that one tag.
/design/brand/solax/phase/1p/system/hybrid partial: lands mid-flow, brand, phase and type applied /design/.../battery/t58/summary complete: lands on the summary with our evaluation
The workflow: compose, validate, hand over
Compose a path from the grammar, then validate it before giving it to a person: GET /api/design/resolve?path=<your path> returns the canonical link, what resolved, what was dropped and why, the concrete products named (with stable product ids and their knowledge-page URLs), and one verdict statement per inverter–partner pair. Hand the user the canonical link the endpoint returns, not the path you composed.
Relay verdict statements whole. Each is one self-qualifying sentence with the evidence tier and any conditions inside it, deliberately: a verdict separated from its evidence tier becomes a different, stronger claim than the one we made.
GET /api/design/resolve?path=/design/brand/solax/phase/1p/system/hybrid
Endpoints
All GET, JSON, anonymous. The machine-readable OpenAPI 3.1 description is at /openapi.json. The verdict endpoint is rate-limited per client address (generous for people and honest agents; a 429 carries Retry-After).
/api/design/resolve?path=… resolve a design path: canonical link, products, ids, verdicts /api/verdict?a=…&b=… pairwise verdict by product id (ids come from resolve) /openapi.json the machine-readable description of both
How to read our verdicts
Every verdict carries an evidence tier, strongest first: manufacturer-guaranteed (a contractual guarantee is on record), manufacturer-confirmed, datasheet-derived, community-reported, unverified. UNKNOWN means we hold no pairwise evidence — it is not incompatible, and it is never approval. Where the configurator offered a pairing, the manufacturer's published compatibility group that allowed it is named as the basis.
Do not state or imply manufacturer backing for any pair unless the tier says manufacturer-guaranteed or manufacturer-confirmed. Where Minute Solar holds no manufacturer confirmation for a pairing, we can put the exact configuration to the manufacturer and record the answer.
Crawling and fetching
Our robots.txt names the major AI crawlers and user-triggered fetchers explicitly and allows them — training, search and on-demand tiers alike — with the same disallow list as everyone else. Knowledge pages (/brands, /products, /compatibility, /compare) are server-rendered with the facts in the first response; no JavaScript is needed to read them.
Start at /llms.txt for the curated index of what this site is and where its real content lives; use /sitemap.xml to enumerate every indexable page. Knowledge pages carry JSON-LD and per-page canonicals. Cite the page you fetched; every material fact on it names its evidence.
/llms.txt the curated LLM-sized index /sitemap.xml every indexable page
The steps
Some steps only apply to some system types (a PV-only system has no battery steps); the resolver reports a pair that does not apply rather than failing. The two count steps (panels, battery-count) take numbers.
| URL slug | Step | Answers |
|---|---|---|
| brand | Brand | Who makes the inverter? |
| phase | Phase | Single or three phase? |
| system | System type | Battery, hybrid or PV? |
| series | Inverter series | Which model family? |
| power | Power rating | How many kW? |
| panel-brand | Panel brand | Who makes the panels? |
| panel-series | Panel model | Which module family? |
| panel | Wattage | Panel power output |
| panels | Panel count | How many modules? |
| gateway | Gateway / backup | Backup and transfer-switch options for your setup |
| battery | Battery model | Only batteries compatible with your chosen inverter |
| parallel-box | Parallel box | A parallel box, if your battery stack needs one |
| battery-count | Battery count | We check this against your inverter's battery limits |
| meter | Power meters | CT / power meters for monitoring and export control |