// machine access

Give your systems and your AI direct access to property data.

Resolve an address, query a market, or feed your models, live, from the same data behind this site. MCP, API, and data feeds.

resolve & enrich
# ask for offices in a precinct, with vacancy
GET /v1/properties?precinct="Sandton"&category="office"

{
  "precinct": "Sandton",
  "properties": 1284,
  "gla_m2": 3920000,
  "vacancy_m2": 512000,
  "as_at": "2026-06-01"
}
// illustrative response · property & aggregate data only, no personal or contact data (POPIA-safe)

Three ways to plug in.

Same data, whichever fits how you work.

MCP

MCP (Model Context Protocol) is the standard plug that lets an AI assistant such as Claude or ChatGPT use an outside data source directly. Connect yours to Gmaven, and it answers property questions from fact, not guesswork.

Best for: you and your team, working inside an AI assistant.
for AI assistants · conversational

API

Resolve and enrich a single address, or query a whole market, in real time. REST, JSON, keyed.

Best for: your systems, needing answers record by record, in real time.
real-time · per-call

CSV & data feeds

The full dataset, or the slice you need, delivered on a schedule and kept fresh.

Best for: your analysts, wanting the whole slice on a schedule.
batch · scheduled

What it looks like in use.

Three real jobs, one per channel. All values illustrative.
what you send Gmaven what you get back
MCP

Messy list in, clean data out.

Drop a spreadsheet of property names, coordinates or addresses into your AI assistant. Get back clean, enriched data: a unique identifier, the resolved property name, the street address, suburb, precinct, city, province, size and category, for every row.

Your spreadsheet
the meridian sandton?
-26.1076, 28.0567
135 west st sandown
ACME HOUSE
Back to you, enriched
IDNameSuburbProvinceGLA m²Category
GM-084213The MeridianSandownGauteng38 400Office
GM-10246740 On WestSandownGauteng6 250Office
GM-077310135 West StreetSandownGauteng12 800Office
GM-118904Acme HouseSandownGauteng4 100Office
+ street address · precinct · city · names and figures illustrative
API

One question in, one answer out, instantly.

Send a coordinate pair from inside your own system. Get back the suburb name, the average asking rental for that grade, the vacancy rate for that grade in that precinct, and whether rentals are rising or falling.

lat -26.1076 · long 28.0567
Response
suburb  "Sandown"
precinct  "Sandton"
avg_asking_rental_a_grade  R230 / m²
vacancy_a_grade_precinct  9.4%
rental_trend  ▲ rising
Batch

The whole slice, on schedule.

Receive the latest solar penetration, aggregated by suburb, city and province: by lettable area, by installed capacity (kilowatt-peak), by property count, as a percentage of all properties, with available roof space. Delivered on your schedule, kept fresh.

your schedule
solar_by_suburb.csv
solar_by_city.csv
solar_by_province.csv
In each file: lettable area (GLA) installed capacity (kWp) property count % of all properties available roof space

Every answer resolves to one property.

Behind all three channels sits the same mastered database: more than 64,000 commercial properties, each resolved to one persistent, unique identifier, with a name, an address and an as-at date. Whichever channel you choose, you are reading the same single source. Choosing a channel is a workflow decision, not a quality trade-off.

Property and aggregate data only.

What travels over these channels is property and aggregate market data: no personal information.

Get access.

Tell us what you want to plug in, and how you work. We will recommend the channel and scope it with you.

Get access →

Looking for space rather than data? See Find space.