{"openapi":"3.1.0","info":{"title":"Off-Grid Solar Sizing API","version":"1.0.0","description":"Off-grid solar system-sizing maths as an API, computed locally and deterministically — the battery-bank, solar-array and charge-controller numbers an RV, cabin, boat or off-grid homeowner sizes a system with. The battery-bank endpoint gives the storage you need = (daily load × days of autonomy) ÷ (depth of discharge × round-trip efficiency), then ÷ the system voltage for amp-hours: the autonomy carries you through cloudy days and the depth-of-discharge limit protects the cells (lead-acid ~50 %, lithium 80–100 %, which is why lithium banks run smaller), so a 2 kWh/day load at 12 V with 2 days autonomy, 50 % DoD and 85 % efficiency needs about 785 Ah. The array endpoint gives the panels = daily energy ÷ (peak sun hours × system efficiency), where peak sun hours is the day's irradiance as equivalent full-sun hours (~3–6 by place and season) and the efficiency rolls up controller, wiring, heat and dust losses — about 670 W for that load at 4 sun hours and 75 %. The charge-controller endpoint sizes the controller = array watts ÷ battery voltage × a 1.25 safety factor, so a 700 W array on a 12 V bank wants roughly an 80 A controller. Everything is computed locally and deterministically, so it is instant and private. Ideal for solar-installer and DIY tools, RV/marine/cabin power planners, and renewable-energy calculators. Pure local computation — no key, no third-party service, instant. Size for the worst month. 3 compute endpoints. For solar irradiance and sun hours use a solar API; for battery runtime under load a battery API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/offgrid-api","description":"oanor gateway"}],"tags":[{"name":"OffGrid"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/array":{"get":{"operationId":"get_v1_array","tags":["OffGrid"],"summary":"Solar-array wattage","description":"","parameters":[{"name":"daily_load_wh","in":"query","required":true,"description":"Daily energy use (Wh)","schema":{"type":"string"},"example":"2000"},{"name":"peak_sun_hours","in":"query","required":false,"description":"Peak sun hours (default 4)","schema":{"type":"string"},"example":"4"},{"name":"system_efficiency_pct","in":"query","required":false,"description":"System efficiency % (default 75)","schema":{"type":"string"},"example":"75"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/battery-bank":{"get":{"operationId":"get_v1_battery_bank","tags":["OffGrid"],"summary":"Battery bank for autonomy","description":"","parameters":[{"name":"daily_load_wh","in":"query","required":true,"description":"Daily energy use (Wh)","schema":{"type":"string"},"example":"2000"},{"name":"system_voltage_v","in":"query","required":true,"description":"System voltage (V)","schema":{"type":"string"},"example":"12"},{"name":"days_autonomy","in":"query","required":false,"description":"Days of autonomy (default 2)","schema":{"type":"string"},"example":"2"},{"name":"depth_of_discharge_pct","in":"query","required":false,"description":"Depth of discharge % (default 50)","schema":{"type":"string"},"example":"50"},{"name":"battery_efficiency_pct","in":"query","required":false,"description":"Round-trip efficiency % (default 85)","schema":{"type":"string"},"example":"85"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/charge-controller":{"get":{"operationId":"get_v1_charge_controller","tags":["OffGrid"],"summary":"Charge-controller current","description":"","parameters":[{"name":"array_watts","in":"query","required":true,"description":"Array power (W)","schema":{"type":"string"},"example":"700"},{"name":"system_voltage_v","in":"query","required":true,"description":"System voltage (V)","schema":{"type":"string"},"example":"12"},{"name":"safety_factor","in":"query","required":false,"description":"Safety factor (default 1.25)","schema":{"type":"string"},"example":"1.25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":6600,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1090,"monthly_call_quota":65000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3500,"monthly_call_quota":256000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":10850,"monthly_call_quota":1320000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/offgrid-api"}