Developer API

Australian property data,
as an API.

GetReal's calculation engine as a free API. Stamp duty for every state, mortgage ceiling calculators, LMI estimates, repayment figures, and suburb-level realism scores — all from the same data that powers get-real.co.

Full API reference → View on GitHub

At a glance

15
Endpoints
Free
No auth, no key
All states
Stamp duty coverage
146k+
NSW sale records
NSW + VIC
Suburb scores

Base URL: https://get-real.co/api/v1  ·  All requests: GET with query params  ·  All responses: JSON  ·  CORS: open (*)

Endpoints

Stamp Duty & Costs
GET
/api/v1/stamp-duty
Stamp duty by state + buyer type. Params: state, price, buyer_type (standard/fhb), property_type (house/apartment/townhouse, default house), is_new_build (bool, default false), is_hbcs (bool, ACT Home Buyer Concession Scheme, default false). Returns gross_stamp_duty, net_stamp_duty, fhb_saving, newbuild_saving, concession_applied.
GET
/api/v1/lmi
LMI estimate for deposit < 20%
GET
/api/v1/repayments
Monthly repayment at a given rate
Ceiling Calculator
GET
/api/v1/ceiling/deposit
Max purchase price for a given deposit
GET
/api/v1/ceiling/deposit/min-income
Minimum income to reach a target price
GET
/api/v1/ceiling/dti
DTI ceiling (6× gross income cap)
GET
/api/v1/ceiling/serviceability
Serviceability ceiling (APRA stress test)
GET
/api/v1/ceiling/all
All three ceilings + binding constraint. Accepts is_new_build=true to apply state new-build stamp duty concessions.
GET
/api/v1/ceiling/check
Can you afford a specific price?
GET
/api/v1/ceiling/deposit/sensitivity
Max price at multiple deposit levels
Realism Score
GET
/api/v1/score
Budget realism score for one suburb
GET
/api/v1/score/batch
Score multiple suburbs in one call
GET
/api/v1/score/budget-for-score
Budget needed to reach a target score
GET
/api/v1/score/suburbs-in-range
All suburbs within budget across a state
GET
/api/v1/score/ceiling
Realism score at each ceiling level
GET
/api/v1/cgt
CGT estimate — current law and post-2027 transitional regime

Quick start

Stamp duty — NSW first home buyer, $750,000
curl "https://get-real.co/api/v1/stamp-duty?state=NSW&price=750000&buyer_type=fhb"
Response
{ "state": "NSW", "price": 750000, "buyer_type": "fhb", "property_type": "house", "duty": 0, // exempt under FHB threshold "fhb_saving": 29240, // duty saving from FHB concession "newbuild_saving": 0, // duty saving from new-build concession "concession_applied": "fhb_concession", "lmi": 0, "registration": 1318, "total_upfront": 1318 }
Stamp duty — WA new build, non-FHB, $650,000
curl "https://get-real.co/api/v1/stamp-duty?state=WA&price=650000&buyer_type=standard&is_new_build=true&property_type=house"
Response
{ "state": "WA", "price": 650000, "buyer_type": "standard", "property_type": "house", "duty": 11275, // 50% taper applied (above $600k exempt threshold) "fhb_saving": 0, "newbuild_saving": 11275, // saving vs gross duty of $22,550 "concession_applied": "newbuild_concession", "lmi": 0, "registration": 1400, "total_upfront": 12675 }
Suburb realism score — Fitzroy, VIC, house, $1,200,000
curl "https://get-real.co/api/v1/score?suburb=fitzroy&state=VIC&property_type=house&budget=1200000"
Response
{ "suburb": "fitzroy", "suburb_display": "Fitzroy", "state": "VIC", "property_type": "house", "budget": 1200000, "median_price": 1650000, "annual_sales": 58, "score_pct": 18, "score_label": "very_tight", "methodology": "estimated_curve" // VIC uses NSW-derived curves }
All ceilings — $180k income, $120k deposit, VIC FHB, owner-occupier
curl "https://get-real.co/api/v1/ceiling/all?state=VIC&savings=120000&gross_income_1=180000&takehome_monthly=11000&buyer_type=fhb&household_type=single&dependants=0&postcode=3000"
Deposit ceiling — QLD FHB, new build, $80k deposit
curl "https://get-real.co/api/v1/ceiling/deposit?state=QLD&savings=80000&buyer_type=fhb&is_owner_occupier=true&is_new_build=true"
JavaScript fetch
const res = await fetch( 'https://get-real.co/api/v1/score/suburbs-in-range' + '?state=NSW&property_type=house&budget=900000&min_score_pct=40' ); const { suburbs } = await res.json(); // suburbs → array sorted by score desc, all NSW houses where // $900k budget gives ≥40% of market access

Data sources

NSW Valuer General
146,285+ individual residential sale records. Used for exact price distribution curves and suburb-level statistics.
NSW scores
Victorian Valuer General
Quarterly property sales reports with suburb-level median prices and annual sales volumes. Q4 2025 data (calendar year 2025).
VIC scores
State Revenue Offices
Stamp duty brackets and FHB concession rules for all states and territories. Updated manually when legislation changes.
Stamp duty
Home Loan Experts
Indicative LMI rate table (15 LVR bands × 5 loan amount bands). Sourced May 2026.
LMI
JMD Mortgages
HEM (Household Expenditure Measure) benchmark table used for serviceability calculations. March 2026 figures.
Serviceability
RBA / APRA
RBA benchmark rates and APRA 3% serviceability buffer, used for stress-test calculations.
Repayments

Data update schedules and pipeline health: data pipeline status →

Important disclaimer

GetReal is a best-efforts side project, not a licensed financial service. The API is built on open government data and publicly available rate information, but the calculations are indicative only.

Stamp duty figures, LMI estimates, HEM benchmarks, and serviceability calculations are based on data sourced at the dates listed above. They may be out of date. Individual lender policies vary significantly and change frequently.

Do not rely solely on this API for major financial decisions. Always verify figures with a licensed mortgage broker before committing to a purchase.

VIC suburb scores are estimated using NSW market distribution curves matched by property type, price bracket, and market depth. They are explicitly labelled methodology: "estimated_curve" in API responses. NSW scores are derived from actual sale record distributions and are labelled "actual_distribution".

The API is free to use. Please be reasonable with request volumes. No SLA is provided or implied.

Errors

Error response format
{ "error": "suburb not found", "code": "SUBURB_NOT_FOUND" }

HTTP status matches the error type: 400 for bad input, 404 for missing data, 500 for server errors. Machine-readable code field is safe to switch on.