Solar potential + AI roof condition for a property
GET /api/solar/analysis/
4 credits
What it returns
Two coupled analyses in one call:
- Solar Potential — 20-year cost projection, payback timeline, energy coverage percentage, federal/state incentive estimate.
- Roof Condition — AI roof condition score (0-10), condition category, material identification, damage indicators, and risk assessment, from AI analysis of aerial imagery.
When to use it
- Pre-screen properties for solar installation viability.
- Underwrite roof replacement cost for an investor offer.
- Add a solar-readiness flag to a property report.
Performance
This is an expensive, slow endpoint — use a 90-second client timeout and cache responses.
Response shape
The response shape varies with the optional query parameters:
- detailed=true — adds the raw solar_potential.data blob and includes both roof_image_url and roof_image_base64 in roof_condition.imagery.
- agent=false — sets roof_condition.analysis to null (skips the AI roof analysis).
If the roof image fails to upload to storage, roof_condition.imagery contains roof_image_base64 (raw base64 PNG) instead of roof_image_url. Individual entries in solar_layers may be missing if a particular data layer was unavailable for the address.
FAQ
Why is agent=true the default?
Without it, the roof condition section is skipped (you get solar potential only). The AI roof analysis is the expensive part but it's what makes the endpoint useful — leave it on unless you specifically need solar-only.
What if the building isn't covered?
Returns a clear error indicating imagery unavailable. Charges 0 credits in that case.
Parameters
address(query, required) — Full property address.agent(query) — Run the AI roof analysis. Default true. Set false to skip it (sets roof_condition.analysis to null).detailed(query) — Include the raw solar data blob + base64 roof image alongside the storage URL. Default false.
Responses
200400— Bad request — a required parameter is missing or failed validation. Costs 0 credits.401— Authentication failed — missing or invalid API key. Costs 0 credits.402— Payment required — no active subscription or insufficient credit balance. Costs 0 credits.404— Not found — the address or identifier did not resolve to a record. Costs 0 credits.503— Upstream data provider is temporarily unavailable — retry with backoff.
More in AI-Powered Analysis
- Composite full property report — everything aggregated —
GET /api/properties/full-report/
The most comprehensive property analysis endpoint — aggregates 11 internal sources into a single response with 292 data fields. - AI-derived property condition score from listing photos —
GET /api/properties/property-condition/
An AI condition assessment for a US residential property — overall condition category (Excellent/Good/Fair/Poor), confidence score, per-room breakdown when photos are available, and any flags (water damage, deferred maintenance signals). - Property condition analysis with your own photos —
POST /api/properties/property-condition-custom-photos/
An overall property-condition rating and confidence score, combining a database lookup with AI vision analysis of property photos you supply. - AI-powered square-footage breakdown by floor —
GET /api/properties/sqft-per-floor/
Per-floor square-footage distribution for a US residential property, derived from a multi-stage AI analysis (photo/room detection, architectural-style inference, and multi-method validation). - Comparable sold properties (comps) for a subject property —
GET /api/properties/comps/
A ranked list of comparable sold properties within a search radius of the subject — each comp scored on similarity (size, beds/baths, year built, distance, condition delta) with the sale price and date. - LLM-powered room-by-room renovation cost breakdown —
POST /api/properties/renovation-cost-breakdown/
An itemized room-by-room renovation cost breakdown powered by a multimodal LLM analyzing the property's images plus its size/feature metadata. - Local market outlook (buyer's/balanced/seller's) for a ZIP —
GET /api/properties/market-outlook/
A composite Market Outlook score (0-100) classifying a ZIP code as a buyer's market (<40), balanced (40-60), or seller's market (>60).