{"openapi":"3.1.0","info":{"title":"SuperSolar & SOLO Solar Digital Twin & B2B BOM Engine API","version":"1.0.0","description":"Public JSON-RPC 2.0 and GEO Knowledge API for off-grid solar-storage system sizing, NEC/IEC/GB engineering rule verification, SuperSolar & multi-vendor SKU matching, and automated BOM split-order quoting.","contact":{"name":"SuperSolar Engineering & SOLO Platform","url":"https://solar.android.im"}},"servers":[{"url":"https://solar.android.im","description":"Production SOLO Solar Gateway (solar.android.im)"}],"paths":{"/api/":{"post":{"operationId":"invokeSolarJsonRpc","summary":"Invoke a public SOLO Solar JSON-RPC 2.0 engineering or catalog method","description":"Supported public AI methods: solar.vendor.create (Onboard a new solar equipment manufacturer or distributor); solar.vendor.get (Get onboarded vendor detail); solar.vendor.list (List onboarded solar vendors — paginated. Omit cursor for offset mode ({items,total}); pass cursor:null then nextCursor for cursor mode ({items,nextCursor}).); solar.vendor.passport.login (Authenticate an onboarded solar vendor or onboard a new merchant and issue an Ed25519 Passport session token with $owner row isolation); solar.vendor.passport.verify (Verify a merchant Passport session token and return the bound vendor profile and $owner isolation scope); solar.product.create (Publish a new vendor product SKU with electrical specs and 3D Adjunct descriptor); solar.product.get (Get product SKU detail by ID); solar.product.update (Update product SKU record); solar.product.delete (Soft delete product SKU); solar.product.list (List solar equipment, cables, breakers, and mounting accessories — paginated. Omit cursor for offset mode ({items,total}); pass cursor:null then nextCursor for cursor mode ({items,nextCursor}).); solar.product.match (Match best compliant product SKU by component name, vendor, keyword, and technical specification parameters); solar.design.get (Get solar design detail and 2D/3D SSGP topology); solar.design.list (List solar designs — paginated. Omit cursor for offset mode ({items,total}); pass cursor:null then nextCursor for cursor mode ({items,nextCursor}).); solar.design.evaluate (Run declarative JSON constraint engine, geo/altitude/weather solar physics, voltage-drop/shading/autonomy/mounting engineering model, vendor SKU matcher, and vendor sub-order splitter); solar.quote.create (Create a multi-vendor solar procurement order with automated vendor sub-order splitting); solar.quote.get (Get solar procurement quote detail); solar.quote.list (List solar procurement quotes — paginated. Omit cursor for offset mode ({items,total}); pass cursor:null then nextCursor for cursor mode ({items,nextCursor}).); solar.quote.suborder.list (List vendor sub-orders split from customer quotes — paginated. Omit cursor for offset mode ({items,total}); pass cursor:null then nextCursor for cursor mode ({items,nextCursor}).); solar.quote.suborder.update (Update fulfillment status, tracking number, and merchant notes of a vendor sub-order); solar.geo.weather (Resolve geolocation coordinates, DEM altitude, live Open-Meteo solar radiation/weather, and compute altitude/temperature/cloud solar physics); solar.geo.feed (Generate structured GEO (Generative Engine Optimization) feeds (llms, llms-full, sitemap, openapi, snapshot) for AI search engines and RAG crawlers); solar.rule.get (Get the declarative JSON constraint engine configuration); solar.rule.profiles (List national electrical standard profiles — bounded set, intentionally NOT paginated)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method","id"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"],"default":"2.0"},"id":{"type":"string","default":"geo-agent-1"},"method":{"type":"string","enum":["solar.vendor.create","solar.vendor.get","solar.vendor.list","solar.vendor.passport.login","solar.vendor.passport.verify","solar.product.create","solar.product.get","solar.product.update","solar.product.delete","solar.product.list","solar.product.match","solar.design.get","solar.design.list","solar.design.evaluate","solar.quote.create","solar.quote.get","solar.quote.list","solar.quote.suborder.list","solar.quote.suborder.update","solar.geo.weather","solar.geo.feed","solar.rule.get","solar.rule.profiles"]},"params":{"type":"object","description":"Method parameters as declared in handlers/introspection.js"}}}}}},"responses":{"200":{"description":"JSON-RPC 2.0 result object"}}}},"/llms.txt":{"get":{"operationId":"getLlmsIndex","summary":"Get concise Markdown AI index (llms.txt)","responses":{"200":{"description":"Markdown index"}}}},"/llms-full.txt":{"get":{"operationId":"getLlmsFullCorpus","summary":"Get complete Markdown engineering & SKU corpus (llms-full.txt)","responses":{"200":{"description":"Complete Markdown corpus"}}}}}}