{"openapi":"3.1.0","info":{"title":"Solar, Battery & Distributed Energy Intelligence API","version":"1.0.0","description":"Detect solar generation deviations, estimate panel degradation and battery SOH, classify inverter faults from supplied logs, check warranty thresholds, calculate round-trip efficiency and self-consumption, and compare distributed energy assets—using caller-supplied telemetry only. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/solar-battery/generation-deviation-detect":{"post":{"operationId":"detect_solar_generation_deviations","summary":"Detect solar generation deviations","description":"Compare supplied solar generation kWh to expected kWh and flag deviations. Missing expected values are not invented.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","generation":[{"id":"G1","assetId":"SITE-A","at":"2026-11-01","kwh":180,"expectedKwh":200,"irradiance":4.2,"source":"Caller-supplied meter"},{"id":"G2","assetId":"SITE-A","at":"2026-11-02","kwh":210,"expectedKwh":205,"source":"Caller-supplied meter"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"pointCount":{"type":"number"},"deviationCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"assetId":{"type":"string"},"at":{"type":"string"},"kwh":{"type":"number"},"kwhSupplied":{"type":"boolean"},"expectedKwh":{"type":"number"},"expectedKwhSupplied":{"type":"boolean"},"deviationKwh":{"type":"number"},"deviationKwhSupplied":{"type":"boolean"},"deviationPct":{"type":"number"},"deviationPctSupplied":{"type":"boolean"},"irradiance":{"type":"number"},"irradianceSupplied":{"type":"boolean"},"source":{"type":"string"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"detected","pointCount":2,"deviationCount":0,"items":[{"id":"G1","assetId":"SITE-A","at":"2026-11-01","kwh":180,"kwhSupplied":true,"expectedKwh":200,"expectedKwhSupplied":true,"deviationKwh":-20,"deviationKwhSupplied":true,"deviationPct":-10,"deviationPctSupplied":true,"irradiance":4.2,"irradianceSupplied":true,"source":"Caller-supplied meter","cloudPlatformUsed":false},{"id":"G2","assetId":"SITE-A","at":"2026-11-02","kwh":210,"kwhSupplied":true,"expectedKwh":205,"expectedKwhSupplied":true,"deviationKwh":5,"deviationKwhSupplied":true,"deviationPct":2.439,"deviationPctSupplied":true,"irradiance":0,"irradianceSupplied":false,"source":"Caller-supplied meter","cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/panel-degradation-estimate":{"post":{"operationId":"estimate_solar_panel_degradation","summary":"Estimate solar panel degradation","description":"Estimate panel degradation from supplied nameplate/prior and measured capacity over time. Missing baselines are not invented.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","panels":[{"id":"P1","assetId":"SITE-A","name":"Array 1","installedAt":"2022-01-01","nameplateKw":50,"measuredKw":46.5,"measuredAt":"2026-11-01","source":"Caller-supplied IV curve"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"panelCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"assetId":{"type":"string"},"name":{"type":"string"},"nameplateKw":{"type":"number"},"nameplateKwSupplied":{"type":"boolean"},"measuredKw":{"type":"number"},"measuredKwSupplied":{"type":"boolean"},"priorMeasuredKw":{"type":"number"},"priorMeasuredKwSupplied":{"type":"boolean"},"degradationPct":{"type":"number"},"degradationPctSupplied":{"type":"boolean"},"years":{"type":"number"},"yearsSupplied":{"type":"boolean"},"annualDegradationPct":{"type":"number"},"annualDegradationPctSupplied":{"type":"boolean"},"source":{"type":"string"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"estimated","panelCount":1,"items":[{"id":"P1","assetId":"SITE-A","name":"Array 1","nameplateKw":50,"nameplateKwSupplied":true,"measuredKw":46.5,"measuredKwSupplied":true,"priorMeasuredKw":0,"priorMeasuredKwSupplied":false,"degradationPct":7,"degradationPctSupplied":true,"years":4.8323,"yearsSupplied":true,"annualDegradationPct":1.4486,"annualDegradationPctSupplied":true,"source":"Caller-supplied IV curve","cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/inverter-fault-classify":{"post":{"operationId":"classify_solar_inverter_faults","summary":"Classify solar inverter faults","description":"Classify supplied inverter log events using a caller fault map or keyword signals in supplied messages. Cloud catalogs are not queried.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","inverterEvents":[{"id":"E1","assetId":"SITE-A","at":"2026-11-01T10:00:00.000Z","code":"F01","message":"Grid overvoltage","severity":"warn","source":"Caller-supplied inverter log"},{"id":"E2","assetId":"SITE-A","at":"2026-11-01T11:00:00.000Z","code":"ISO","message":"Isolation fault detected","severity":"fault","source":"Caller-supplied inverter log"}],"faultMap":[{"code":"F01","label":"Grid overvoltage","category":"grid"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"eventCount":{"type":"number"},"categories":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"count":{"type":"number"}},"additionalProperties":true}},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"assetId":{"type":"string"},"at":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"severity":{"type":"string"},"category":{"type":"string"},"label":{"type":"string"},"method":{"type":"string"},"source":{"type":"string"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"classified","eventCount":2,"categories":[{"category":"grid","count":1},{"category":"insulation","count":1}],"items":[{"id":"E1","assetId":"SITE-A","at":"2026-11-01T10:00:00.000Z","code":"F01","message":"Grid overvoltage","severity":"warn","category":"grid","label":"Grid overvoltage","method":"caller_fault_map","source":"Caller-supplied inverter log","cloudPlatformUsed":false},{"id":"E2","assetId":"SITE-A","at":"2026-11-01T11:00:00.000Z","code":"ISO","message":"Isolation fault detected","severity":"fault","category":"insulation","label":"Ground/isolation signal in supplied text","method":"keyword","source":"Caller-supplied inverter log","cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/cycle-aging-analyze":{"post":{"operationId":"analyze_battery_cycle_aging","summary":"Analyze battery cycle aging","description":"Analyze supplied battery cycle counts, depth of discharge, and throughput. Rated cycle life is used only when supplied.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","batteryCycles":[{"id":"C1","assetId":"SITE-A","at":"2026-01-01","cycleCount":400,"depthOfDischargePct":80,"throughputKwh":12000,"source":"Caller-supplied BMS"},{"id":"C2","assetId":"SITE-A","at":"2026-11-01","cycleCount":520,"depthOfDischargePct":75,"throughputKwh":3500,"source":"Caller-supplied BMS"}],"batteryHealth":[{"id":"H1","assetId":"SITE-A","ratedCycles":6000,"cycleCount":520,"source":"Caller-supplied BMS"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"assetCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"observationCount":{"type":"number"},"latestCycleCount":{"type":"number"},"latestCycleCountSupplied":{"type":"boolean"},"cycleDelta":{"type":"number"},"cycleDeltaSupplied":{"type":"boolean"},"averageDodPct":{"type":"number"},"averageDodPctSupplied":{"type":"boolean"},"throughputKwh":{"type":"number"},"throughputKwhSupplied":{"type":"boolean"},"ratedCycles":{"type":"number"},"ratedCyclesSupplied":{"type":"boolean"},"cycleLifeUsedPct":{"type":"number"},"cycleLifeUsedPctSupplied":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"analyzed","assetCount":1,"items":[{"assetId":"SITE-A","observationCount":2,"latestCycleCount":520,"latestCycleCountSupplied":true,"cycleDelta":120,"cycleDeltaSupplied":true,"averageDodPct":77.5,"averageDodPctSupplied":true,"throughputKwh":15500,"throughputKwhSupplied":true,"ratedCycles":6000,"ratedCyclesSupplied":true,"cycleLifeUsedPct":8.6667,"cycleLifeUsedPctSupplied":true,"cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/state-of-health-estimate":{"post":{"operationId":"estimate_battery_state_of_health","summary":"Estimate battery state of health","description":"Estimate battery SOH from supplied sohPct or measured versus nameplate energy. Missing capacities are not invented.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","batteryHealth":[{"id":"H1","assetId":"SITE-A","name":"Battery A","nameplateKwh":60,"measuredKwh":54,"cycleCount":520,"ratedCycles":6000,"measuredAt":"2026-11-01","source":"Caller-supplied BMS"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"assetCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"assetId":{"type":"string"},"name":{"type":"string"},"nameplateKwh":{"type":"number"},"nameplateKwhSupplied":{"type":"boolean"},"measuredKwh":{"type":"number"},"measuredKwhSupplied":{"type":"boolean"},"sohPct":{"type":"number"},"sohPctSupplied":{"type":"boolean"},"cycleCount":{"type":"number"},"cycleCountSupplied":{"type":"boolean"},"ratedCycles":{"type":"number"},"ratedCyclesSupplied":{"type":"boolean"},"cycleLifeUsedPct":{"type":"number"},"cycleLifeUsedPctSupplied":{"type":"boolean"},"measuredAt":{"type":"string"},"source":{"type":"string"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"estimated","assetCount":1,"items":[{"id":"H1","assetId":"SITE-A","name":"Battery A","nameplateKwh":60,"nameplateKwhSupplied":true,"measuredKwh":54,"measuredKwhSupplied":true,"sohPct":90,"sohPctSupplied":true,"cycleCount":520,"cycleCountSupplied":true,"ratedCycles":6000,"ratedCyclesSupplied":true,"cycleLifeUsedPct":8.6667,"cycleLifeUsedPctSupplied":true,"measuredAt":"2026-11-01","source":"Caller-supplied BMS","cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/warranty-threshold-check":{"post":{"operationId":"check_battery_warranty_thresholds","summary":"Check battery warranty thresholds","description":"Compare supplied SOH, cycles, and calendar age to caller-supplied warranty thresholds. Legal warranty coverage is not determined.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","batteryHealth":[{"id":"H1","assetId":"SITE-A","nameplateKwh":60,"measuredKwh":54,"cycleCount":520,"ratedCycles":6000,"source":"Caller-supplied BMS"}],"warranties":[{"id":"W1","assetId":"SITE-A","kind":"capacity","minSohPct":70,"maxCycles":6000,"maxCalendarYears":10,"installedAt":"2022-01-01","asOf":"2026-11-04","source":"Caller-supplied warranty extract"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"warrantyCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"assetId":{"type":"string"},"kind":{"type":"string"},"measuredSohPct":{"type":"number"},"measuredSohPctSupplied":{"type":"boolean"},"minSohPct":{"type":"number"},"minSohPctSupplied":{"type":"boolean"},"sohWithinThreshold":{"type":"boolean"},"sohWithinThresholdSupplied":{"type":"boolean"},"cycleCount":{"type":"number"},"cycleCountSupplied":{"type":"boolean"},"maxCycles":{"type":"number"},"maxCyclesSupplied":{"type":"boolean"},"cyclesWithinThreshold":{"type":"boolean"},"cyclesWithinThresholdSupplied":{"type":"boolean"},"ageYears":{"type":"number"},"ageYearsSupplied":{"type":"boolean"},"maxCalendarYears":{"type":"number"},"maxCalendarYearsSupplied":{"type":"boolean"},"calendarWithinThreshold":{"type":"boolean"},"calendarWithinThresholdSupplied":{"type":"boolean"},"source":{"type":"string"},"warrantyCoverageDetermined":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"warrantyCoverageDetermined":{"type":"boolean"},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"checked","warrantyCount":1,"items":[{"id":"W1","assetId":"SITE-A","kind":"capacity","measuredSohPct":90,"measuredSohPctSupplied":true,"minSohPct":70,"minSohPctSupplied":true,"sohWithinThreshold":true,"sohWithinThresholdSupplied":true,"cycleCount":520,"cycleCountSupplied":true,"maxCycles":6000,"maxCyclesSupplied":true,"cyclesWithinThreshold":true,"cyclesWithinThresholdSupplied":true,"ageYears":4.8405,"ageYearsSupplied":true,"maxCalendarYears":10,"maxCalendarYearsSupplied":true,"calendarWithinThreshold":true,"calendarWithinThresholdSupplied":true,"source":"Caller-supplied warranty extract","warrantyCoverageDetermined":false,"cloudPlatformUsed":false}],"warrantyCoverageDetermined":false,"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/round-trip-efficiency":{"post":{"operationId":"calculate_battery_round_trip_efficiency","summary":"Calculate battery round-trip efficiency","description":"Calculate round-trip efficiency from supplied charge and discharge energy for each period.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","efficiencyPeriods":[{"id":"R1","assetId":"SITE-A","periodStart":"2026-10-01","periodEnd":"2026-10-31","chargeKwh":1000,"dischargeKwh":920,"source":"Caller-supplied meter"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"periodCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"assetId":{"type":"string"},"periodStart":{"type":"string"},"periodEnd":{"type":"string"},"chargeKwh":{"type":"number"},"chargeKwhSupplied":{"type":"boolean"},"dischargeKwh":{"type":"number"},"dischargeKwhSupplied":{"type":"boolean"},"roundTripEfficiencyPct":{"type":"number"},"roundTripEfficiencyPctSupplied":{"type":"boolean"},"source":{"type":"string"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"calculated","periodCount":1,"items":[{"id":"R1","assetId":"SITE-A","periodStart":"2026-10-01","periodEnd":"2026-10-31","chargeKwh":1000,"chargeKwhSupplied":true,"dischargeKwh":920,"dischargeKwhSupplied":true,"roundTripEfficiencyPct":92,"roundTripEfficiencyPctSupplied":true,"source":"Caller-supplied meter","cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/storage-self-consumption":{"post":{"operationId":"calculate_solar_storage_self_consumption","summary":"Calculate solar storage self-consumption","description":"Calculate self-consumption and self-sufficiency from supplied generation, load, and optional import/export energy.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","consumption":[{"id":"N1","assetId":"SITE-A","at":"2026-11-01","generationKwh":180,"loadKwh":120,"gridExportKwh":50,"gridImportKwh":10,"source":"Caller-supplied"},{"id":"N2","assetId":"SITE-A","at":"2026-11-02","generationKwh":210,"loadKwh":150,"gridExportKwh":55,"gridImportKwh":5,"source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"assetCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string"},"observationCount":{"type":"number"},"generationKwh":{"type":"number"},"generationKwhSupplied":{"type":"boolean"},"loadKwh":{"type":"number"},"loadKwhSupplied":{"type":"boolean"},"gridImportKwh":{"type":"number"},"gridImportKwhSupplied":{"type":"boolean"},"gridExportKwh":{"type":"number"},"gridExportKwhSupplied":{"type":"boolean"},"selfConsumedKwh":{"type":"number"},"selfConsumedKwhSupplied":{"type":"boolean"},"selfConsumptionPct":{"type":"number"},"selfConsumptionPctSupplied":{"type":"boolean"},"selfSufficiencyPct":{"type":"number"},"selfSufficiencyPctSupplied":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"calculated","assetCount":1,"items":[{"assetId":"SITE-A","observationCount":2,"generationKwh":390,"generationKwhSupplied":true,"loadKwh":270,"loadKwhSupplied":true,"gridImportKwh":15,"gridImportKwhSupplied":true,"gridExportKwh":105,"gridExportKwhSupplied":true,"selfConsumedKwh":270,"selfConsumedKwhSupplied":true,"selfConsumptionPct":69.2308,"selfConsumptionPctSupplied":true,"selfSufficiencyPct":100,"selfSufficiencyPctSupplied":true,"cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/asset-compare":{"post":{"operationId":"compare_distributed_energy_assets","summary":"Compare distributed energy assets","description":"Compare supplied solar/storage assets on generation deviation, SOH, efficiency, and self-consumption metrics derived only from caller records.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","assets":[{"id":"SITE-A","name":"Rooftop A","kind":"solar-storage","capacityKw":50,"capacityKwh":60,"region":"NL"},{"id":"SITE-B","name":"Rooftop B","kind":"solar-storage","capacityKw":40,"capacityKwh":40,"region":"NL"}],"generation":[{"id":"G1","assetId":"SITE-A","at":"2026-11-01","kwh":180,"expectedKwh":200,"source":"Caller-supplied"},{"id":"G3","assetId":"SITE-B","at":"2026-11-01","kwh":140,"expectedKwh":150,"source":"Caller-supplied"}],"batteryHealth":[{"id":"H1","assetId":"SITE-A","nameplateKwh":60,"measuredKwh":54,"source":"Caller-supplied"}],"consumption":[{"id":"N1","assetId":"SITE-A","at":"2026-11-01","generationKwh":180,"loadKwh":120,"source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"assetCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"region":{"type":"string"},"capacityKw":{"type":"number"},"capacityKwSupplied":{"type":"boolean"},"capacityKwh":{"type":"number"},"capacityKwhSupplied":{"type":"boolean"},"generationPointCount":{"type":"number"},"averageDeviationPct":{"type":"number"},"averageDeviationPctSupplied":{"type":"boolean"},"sohPct":{"type":"number"},"sohPctSupplied":{"type":"boolean"},"averageRoundTripEfficiencyPct":{"type":"number"},"averageRoundTripEfficiencyPctSupplied":{"type":"boolean"},"selfConsumptionPct":{"type":"number"},"selfConsumptionPctSupplied":{"type":"boolean"},"source":{"type":"string"},"cloudPlatformUsed":{"type":"boolean"}},"additionalProperties":true}},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"compared","assetCount":2,"items":[{"id":"SITE-A","name":"Rooftop A","kind":"solar-storage","region":"NL","capacityKw":50,"capacityKwSupplied":true,"capacityKwh":60,"capacityKwhSupplied":true,"generationPointCount":1,"averageDeviationPct":-10,"averageDeviationPctSupplied":true,"sohPct":90,"sohPctSupplied":true,"averageRoundTripEfficiencyPct":0,"averageRoundTripEfficiencyPctSupplied":false,"selfConsumptionPct":66.6667,"selfConsumptionPctSupplied":true,"source":"","cloudPlatformUsed":false},{"id":"SITE-B","name":"Rooftop B","kind":"solar-storage","region":"NL","capacityKw":40,"capacityKwSupplied":true,"capacityKwh":40,"capacityKwhSupplied":true,"generationPointCount":1,"averageDeviationPct":-6.6667,"averageDeviationPctSupplied":true,"sohPct":0,"sohPctSupplied":false,"averageRoundTripEfficiencyPct":0,"averageRoundTripEfficiencyPctSupplied":false,"selfConsumptionPct":0,"selfConsumptionPctSupplied":false,"source":"","cloudPlatformUsed":false}],"paidProviderUsed":false,"apiKeyRequired":false,"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/solar-battery/performance-report":{"post":{"operationId":"build_solar_battery_performance_report","summary":"Build solar battery performance report","description":"Aggregate generation deviation, degradation, inverter faults, cycle aging, SOH, warranty, efficiency, self-consumption, and asset comparison from caller-supplied records only.","tags":["solar-battery"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"generation":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"kwh":{"type":"number","minimum":0,"maximum":1000000000},"expectedKwh":{"type":"number","minimum":0,"maximum":1000000000},"irradiance":{"type":"number","minimum":0,"maximum":1000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"panels":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"installedAt":{"type":"string","maxLength":40},"nameplateKw":{"type":"number","minimum":0,"maximum":1000000},"measuredKw":{"type":"number","minimum":0,"maximum":1000000},"measuredAt":{"type":"string","maxLength":40},"priorMeasuredKw":{"type":"number","minimum":0,"maximum":1000000},"priorMeasuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"inverterEvents":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"code":{"type":"string","maxLength":80},"message":{"type":"string","maxLength":500},"severity":{"type":"string","maxLength":40},"label":{"type":"string","maxLength":160},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryCycles":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"depthOfDischargePct":{"type":"number","minimum":0,"maximum":100},"throughputKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"batteryHealth":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"nameplateKwh":{"type":"number","minimum":0,"maximum":1000000000},"measuredKwh":{"type":"number","minimum":0,"maximum":1000000000},"cycleCount":{"type":"number","minimum":0,"maximum":1000000000},"ratedCycles":{"type":"number","minimum":0,"maximum":1000000000},"sohPct":{"type":"number","minimum":0,"maximum":100},"measuredAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"warranties":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"minSohPct":{"type":"number","minimum":0,"maximum":100},"maxCycles":{"type":"number","minimum":0,"maximum":1000000000},"maxCalendarYears":{"type":"number","minimum":0,"maximum":100},"installedAt":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"efficiencyPeriods":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"periodStart":{"type":"string","maxLength":40},"periodEnd":{"type":"string","maxLength":40},"chargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"dischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"consumption":{"maxItems":2000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"assetId":{"type":"string","maxLength":80},"at":{"type":"string","maxLength":40},"generationKwh":{"type":"number","minimum":0,"maximum":1000000000},"loadKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridImportKwh":{"type":"number","minimum":0,"maximum":1000000000},"gridExportKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryChargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"batteryDischargeKwh":{"type":"number","minimum":0,"maximum":1000000000},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"assets":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":160},"kind":{"type":"string","maxLength":80},"capacityKw":{"type":"number","minimum":0,"maximum":1000000},"capacityKwh":{"type":"number","minimum":0,"maximum":1000000000},"region":{"type":"string","maxLength":120},"installedAt":{"type":"string","maxLength":40},"source":{"type":"string","maxLength":200}},"additionalProperties":false}},"faultMap":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"code":{"type":"string","maxLength":80},"label":{"type":"string","maxLength":160},"category":{"type":"string","maxLength":80}},"additionalProperties":false}},"asOf":{"type":"string","maxLength":40}},"additionalProperties":false},"example":{"asOf":"2026-11-04T21:00:00.000Z","assets":[{"id":"SITE-A","name":"Rooftop A","kind":"solar-storage","capacityKw":50,"capacityKwh":60,"region":"NL","installedAt":"2022-01-01"},{"id":"SITE-B","name":"Rooftop B","kind":"solar-storage","capacityKw":40,"capacityKwh":40,"region":"NL","installedAt":"2023-06-01"}],"generation":[{"id":"G1","assetId":"SITE-A","at":"2026-11-01","kwh":180,"expectedKwh":200,"irradiance":4.2,"source":"Caller-supplied meter"},{"id":"G2","assetId":"SITE-A","at":"2026-11-02","kwh":210,"expectedKwh":205,"source":"Caller-supplied meter"},{"id":"G3","assetId":"SITE-B","at":"2026-11-01","kwh":140,"expectedKwh":150,"source":"Caller-supplied meter"}],"panels":[{"id":"P1","assetId":"SITE-A","name":"Array 1","installedAt":"2022-01-01","nameplateKw":50,"measuredKw":46.5,"measuredAt":"2026-11-01","source":"Caller-supplied IV curve"}],"inverterEvents":[{"id":"E1","assetId":"SITE-A","at":"2026-11-01T10:00:00.000Z","code":"F01","message":"Grid overvoltage","severity":"warn","source":"Caller-supplied inverter log"},{"id":"E2","assetId":"SITE-A","at":"2026-11-01T11:00:00.000Z","code":"ISO","message":"Isolation fault detected","severity":"fault","source":"Caller-supplied inverter log"}],"faultMap":[{"code":"F01","label":"Grid overvoltage","category":"grid"}],"batteryCycles":[{"id":"C1","assetId":"SITE-A","at":"2026-01-01","cycleCount":400,"depthOfDischargePct":80,"throughputKwh":12000,"source":"Caller-supplied BMS"},{"id":"C2","assetId":"SITE-A","at":"2026-11-01","cycleCount":520,"depthOfDischargePct":75,"throughputKwh":3500,"source":"Caller-supplied BMS"}],"batteryHealth":[{"id":"H1","assetId":"SITE-A","name":"Battery A","nameplateKwh":60,"measuredKwh":54,"cycleCount":520,"ratedCycles":6000,"measuredAt":"2026-11-01","source":"Caller-supplied BMS"}],"warranties":[{"id":"W1","assetId":"SITE-A","kind":"capacity","minSohPct":70,"maxCycles":6000,"maxCalendarYears":10,"installedAt":"2022-01-01","asOf":"2026-11-04","source":"Caller-supplied warranty extract"}],"efficiencyPeriods":[{"id":"R1","assetId":"SITE-A","periodStart":"2026-10-01","periodEnd":"2026-10-31","chargeKwh":1000,"dischargeKwh":920,"source":"Caller-supplied meter"}],"consumption":[{"id":"N1","assetId":"SITE-A","at":"2026-11-01","generationKwh":180,"loadKwh":120,"gridExportKwh":50,"gridImportKwh":10,"source":"Caller-supplied"},{"id":"N2","assetId":"SITE-A","at":"2026-11-02","generationKwh":210,"loadKwh":150,"gridExportKwh":55,"gridImportKwh":5,"source":"Caller-supplied"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"asOf":{"type":"string"},"sections":{"type":"object","properties":{"generationDeviation":{"type":"object","properties":{"pointCount":{"type":"number"},"deviationCount":{"type":"number"}},"additionalProperties":true},"panelDegradation":{"type":"object","properties":{"panelCount":{"type":"number"}},"additionalProperties":true},"inverterFaults":{"type":"object","properties":{"eventCount":{"type":"number"},"categoryCount":{"type":"number"}},"additionalProperties":true},"cycleAging":{"type":"object","properties":{"assetCount":{"type":"number"}},"additionalProperties":true},"stateOfHealth":{"type":"object","properties":{"assetCount":{"type":"number"}},"additionalProperties":true},"warranty":{"type":"object","properties":{"warrantyCount":{"type":"number"}},"additionalProperties":true},"roundTripEfficiency":{"type":"object","properties":{"periodCount":{"type":"number"}},"additionalProperties":true},"selfConsumption":{"type":"object","properties":{"assetCount":{"type":"number"}},"additionalProperties":true},"assetCompare":{"type":"object","properties":{"assetCount":{"type":"number"}},"additionalProperties":true}},"additionalProperties":true},"cloudPlatformUsed":{"type":"boolean"},"warrantyCoverageDetermined":{"type":"boolean"},"paidProviderUsed":{"type":"boolean"},"apiKeyRequired":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T21:00:00.000Z","status":"reported","asOf":"2026-11-04T21:00:00.000Z","sections":{"generationDeviation":{"pointCount":3,"deviationCount":0},"panelDegradation":{"panelCount":1},"inverterFaults":{"eventCount":2,"categoryCount":2},"cycleAging":{"assetCount":1},"stateOfHealth":{"assetCount":1},"warranty":{"warrantyCount":1},"roundTripEfficiency":{"periodCount":1},"selfConsumption":{"assetCount":1},"assetCompare":{"assetCount":2}},"cloudPlatformUsed":false,"warrantyCoverageDetermined":false,"paidProviderUsed":false,"apiKeyRequired":false,"findings":[],"limitations":["Generation, panel, inverter, battery, warranty, efficiency, consumption, and asset records are copied only from labeled fields supplied by the caller.","No inverter cloud platform or paid energy monitoring service is used and no API key is required.","Degradation, SOH, efficiency, and deviation metrics use only supplied measurements. Missing values are not invented.","Inverter fault labels come from caller-supplied fault maps or simple keyword signals in supplied messages. Manufacturer cloud catalogs are not queried.","Warranty comparisons use only caller-supplied warranty thresholds and measured values. Legal warranty coverage is not determined."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.08"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}