Energy solar potential
POST /v1/energy/solar-potentialRoof characteristics for solar screening: footprint area, roof shape and material, building height, and whether panels are already present.
Same call over MCP
Solar potential of roofssolar_potentialAuthenticate with an API key from the API & MCP Hub. The same call is available as an MCP tool at the same price.
Reference
What POST /v1/energy/solar-potential returns
Returns NO generation estimate, deliberately. Pitch, orientation and shading are not in the warehouse, and a kWp figure derived from footprint alone would read as a yield forecast without being one. Report the usable roof area as a screening figure and say what it excludes.
UK only.
Inputs
Before you call it
- uprns
- A UPRN is the Unique Property Reference Number every UK address carries. Narrow the address with address_autocomplete, which is free, then address_resolve returns the UPRN for 8 credits. property_summary and address_by_postcode return UPRNs too.
Request
Calling POST /v1/energy/solar-potential
curl -X POST "https://api.marketcode.ai/v1/energy/solar-potential" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"
-H "Content-Type: application/json" \
-d '{"uprns":["200003443835"]}'Send your API key as a Bearer token. Every response carries credits_charged and credits_remaining.
Inputs
Parameters
This endpoint takes no path or query parameters.
Request body
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| uprns | Body | integer[] | Yes |
Response
What POST /v1/energy/solar-potential returns for a real request
curl -X POST "https://api.marketcode.ai/v1/energy/solar-potential" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"
-H "Content-Type: application/json" \
-d '{"uprns":["200003443835"]}'{
"buildings": [
{
"building_id": "<string>",
"uprn": 0,
"total_footprint_area_m2": "<string>",
"height_m_above_sea_level": 0,
"building_height_m": "<string>",
"num_floors": 0,
"roof_shape": "<string>",
"roof_material": "<string>",
"solar_panel_presence": "<string>",
"building_use_primary": "<string>",
"n_units": 0,
"n_residential_units": 0,
"already_has_panels": false,
"usable_roof_area_m2_estimate": 0
}
],
"count": 0,
"usable_area_basis": "<string>",
"note": "<string>",
"credits_charged": 0
}Shape only. This call returns licensed records, so the keys are real and every value is a placeholder of its type.
Response
Response fields
| Field | Type |
|---|---|
| buildings | array |
| buildings[].building_id | string |
| buildings[].uprn | integer |
| buildings[].total_footprint_area_m2 | string |
| buildings[].height_m_above_sea_level | number |
| buildings[].building_height_m | string |
| buildings[].num_floors | integer |
| buildings[].roof_shape | string |
| buildings[].roof_material | string |
| buildings[].solar_panel_presence | string |
| buildings[].building_use_primary | string |
| buildings[].n_units | integer |
| buildings[].n_residential_units | integer |
| buildings[].already_has_panels | boolean |
| buildings[].usable_roof_area_m2_estimate | number |
| count | integer |
| usable_area_basis | string |
| note | string |
| credits_charged | integer |
Fields observed in the example response above; a field the example did not exercise is not listed.
Price and licence
What it costs, and where the data comes from
Energy solar potential costs 4 credits per successful call over MCP and over REST, and the two surfaces share one credit balance.
The price covers licensed records in the response, from Ordnance Survey. A call that fails is not charged.
Credits are granted on sign-up and bought in packs; the pricing page lists every call.
Sources
- Ordnance Survey
National Geographic Database (buildings, land and sites)
Used under licence from Ordnance Survey · Great Britain
Related
Endpoints used with Energy solar potential
- Energy profile of an areaFree
energy_profileEnergy composition of an area: EPC band mix, mains gas / electric / oil split, heat-pump penetration.Same category - EPC certificates for a propertyFree
epc_certificatesEvery Energy Performance Certificate lodged against a property, newest first, with current and potential efficiency, CO2, heating fuel and system, floor area and construction age.Same category - Retrofit candidates in an area6 credits
retrofit_candidatesProperties in an area with the most improvement headroom, ranked by potential efficiency. Defaults to the sub-standard bands E, F and G.Same category
FAQ
Questions about Energy solar potential
How much does `solar_potential` cost?
+
Energy solar potential costs 4 credits per successful call over MCP and over REST, and the two surfaces share one credit balance. The price covers licensed records in the response, from Ordnance Survey. A call that fails is not charged.
Do I need to resolve the address first?
+
Yes. solar_potential takes a UPRN, not an address. Start with address_autocomplete (free) to narrow the address, then address_resolve (8 credits) to get the UPRN. An assistant with the MarketCode skills installed does both steps on its own.
How do I authenticate?
+
Send your API key as a Bearer token in the Authorization header. Keys are created in the API & MCP Hub, shown once and revocable. Every response carries the credits charged and your remaining balance.
Is there an MCP version?
+
Yes. The solar_potential tool on the MarketCode MCP server is the same call at the same price, signed in with OAuth rather than a key, so Claude, ChatGPT, Codex and Cursor can run it in a conversation.
Where does the data come from?
+
Read from Ordnance Survey NGD. Coverage is the UK.
Can I store or republish the results?
+
The response includes records we license from Ordnance Survey. Use them in your own analysis, reports and products; bulk redistribution of the raw records or building a competing dataset from them is not covered. Ask us if you need a redistribution licence.
Does `solar_potential` change anything?
+
No. The tool is annotated read-only on the server, so it never writes to your data or ours and an assistant can call it without a confirmation step.
Try Energy solar potential on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.