Renovation Uplift Calculator API

Calculate adjusted property values with extensions, renovations, and quality uplift scenarios

REST API
JSON Responses
API Key Authentication
1 Credit Per API Call

Overview

The Renovation Uplift Calculator API is a standalone, pure-math calculator that lets you provide your own base property value and floor area, then model the impact of extensions and renovation uplift — without needing to look up any property data.

How it works:

  • Base price per m² — Calculated from your supplied value and floor area
  • Extension value — Uses the base price per m² to value additional floor area
  • Renovation uplift — Applied as a percentage uplift on the post-extension total
  • No data fetching — Pure calculation, instant response

This API is ideal for:

  • Property investors modelling extension and renovation scenarios
  • Developers building "what-if" calculators into their apps
  • Estate agents providing quick adjusted value estimates
  • Mortgage brokers assessing post-improvement property values

Tip

Use this API when you already know the property's value and floor area. If you need an automated valuation from an address, use the Property Valuation API instead.

Authentication

All requests to the Renovation Uplift Calculator API require authentication using an API key. You can obtain your API key from your PropertyInsights dashboard after subscribing to an API plan.

Include your API key in the request header as follows:

X-API-Key: your_api_key_here

Security Warning

Never expose your API key in client-side code. Always make API calls from your server-side application to protect your credentials.

Endpoints

Base URL

https://propertyinsights.co.uk/api/v1/

Calculate Adjusted Valuation

GET
/property/renovation-uplift-calculator

Returns an adjusted property valuation based on your supplied base value and floor area, with optional extension area and renovation uplift applied.

Request Parameters

ParameterRequiredTypeDefaultDescription
valueRequiredNumberBase property value in GBP (e.g. 250000)
floorAreaRequiredNumberCurrent floor area in m² (e.g. 85)
extensionAreaOptionalNumber0Planned extension area in m². Valued at the base price per m² and added to the total.
renovationUpliftOptionalNumber0Quality/renovation uplift percentage (0–50). Applied after any extension value is added.

The calculation order is: extension first, then renovation uplift. The extension value is calculated using the base price per m², then the renovation uplift percentage is applied to the combined total (original value + extension value).

Billing details in the response

Successful chargeable JSON responses include a top-level billing object. The endpoint examples on this page focus on the endpoint-specific data, so this repeated block may not be shown in every example.

"billing": {
  "mode": "prepaid",
  "creditsCharged": 1,
  "creditsRemaining": 1999,
  "creditsRefreshAt": "2026-08-14T09:30:00.000Z"
}
Field or headerMeaning
billing.creditsCharged
X-Credits-Charged
Credits charged by this call. Failed and non-chargeable calls return 0 in the header.
billing.creditsRemaining
X-Credits-Remaining
The credit balance after the call.
billing.creditsRefreshAt
X-Credits-Refresh-At
The next monthly credit refresh as an ISO 8601 timestamp. Trial and non-renewing balances return null and omit the header.

All authenticated API-key calls expose the billing headers, including validation errors and zero-credit status or management requests. Only successful chargeable JSON responses add the billing object to the response body.

Response Format

The response is returned in JSON format with the following structure:

{
  "success": true,
  "data": {
    "input": {
      "value": 250000,
      "floorArea": 85,
      "extensionArea": 20,
      "renovationUplift": 10
    },
    "result": {
      "originalValue": 250000,
      "adjustedValue": 339706,
      "totalChange": 89706,
      "totalChangePercent": "35.9%",
      "pricePerM2": {
        "original": 2941,
        "adjusted": 3235
      },
      "pricePerSqFt": {
        "original": 273,
        "adjusted": 300
      },
      "breakdown": {
        "extensionArea": 20,
        "extensionValue": 58824,
        "totalFloorArea": 105,
        "renovationUplift": "10%",
        "renovationUpliftValue": 30882
      }
    }
  }
}

input

Echoes back the parameters that were used in the calculation.

result

The calculated valuation figures:

  • originalValue — the base value you provided
  • adjustedValue — the final value after extensions and uplift
  • totalChange — the absolute difference in GBP
  • totalChangePercent — the percentage change
  • pricePerM² — original and adjusted price per square metre
  • pricePerSqFt — original and adjusted price per square foot
  • breakdown — detailed breakdown of extension value and renovation uplift value

Examples

Basic — Value Only (No Adjustments)

GET https://propertyinsights.co.uk/api/v1/property/renovation-uplift-calculator?value=250000&floorArea=85

Returns the original value with price per m² and price per sq ft calculations.

Extension Only

GET https://propertyinsights.co.uk/api/v1/property/renovation-uplift-calculator?value=250000&floorArea=85&extensionArea=20

Adds a 20m² extension valued at the base price per m² (£2,941/m²), adding £58,824 to the value.

Extension + Renovation Uplift

GET https://propertyinsights.co.uk/api/v1/property/renovation-uplift-calculator?value=250000&floorArea=85&extensionArea=20&renovationUplift=10

Adds the extension first (£308,824), then applies 10% renovation uplift (£30,882) for a final value of £339,706.

cURL Example

curl -X GET \
  "https://propertyinsights.co.uk/api/v1/property/renovation-uplift-calculator?value=250000&floorArea=85&extensionArea=20&renovationUplift=10" \
  -H "x-api-key: YOUR_API_KEY"

JavaScript Fetch Example

const response = await fetch(
  'https://propertyinsights.co.uk/api/v1/property/renovation-uplift-calculator?' +
  new URLSearchParams({
    value: 250000,
    floorArea: 85,
    extensionArea: 20,
    renovationUplift: 10
  }),
  {
    headers: { 'x-api-key': 'YOUR_API_KEY' }
  }
)

const data = await response.json()
console.log(data.data.result.adjustedValue)
// 339706

Error Handling

The API uses standard HTTP status codes to indicate the success or failure of requests.

CodeError CodeDescription
400INVALID_VALUEA positive numeric "value" parameter is required
400INVALID_FLOOR_AREAA positive numeric "floorArea" parameter is required
401UNAUTHORIZEDAPI key is missing or invalid
402INSUFFICIENT_CREDITSInsufficient API credits to process this request
500INTERNAL_ERRORAn error occurred while calculating the valuation

Error Response Example

{
  "success": false,
  "error": {
    "code": "INVALID_VALUE",
    "message": "A positive numeric \"value\" parameter is required (base property value in GBP)"
  }
}

Need Help?

If you need assistance with implementation or have questions about the API, our support team is here to help.