Skip to main content
Beta! Dokumentasjonen er automatisk generert. Informasjonen kan være ufullstendig og inneholde feil, spesielt skjermbilder og videoer. Se Om hjelpesidene. Vi vil veldig gjerne ha innspill: Kontakt oss via «Fant du det du lette etter?» nederst, i chatten nede til høyre eller på support@placepoint.no – vi svarer så fort vi kan!

What does the area look like?

Aggregated statistics for a kommune, grunnkrets or postcode: population, median income, number of transactions and price per square metre over the past year.

Nøkkelen virker i dag på Leietaker-API og dagens Data API; Placepoint API godtar samme nøkkel når det lanseres.

Prøv med et ekte område: Oslo kommune

  • Trial key with GitHub in under a minute
  • One GET call
  • JSON
  • Norway and Sweden
  • Updated periodically

ℹ️ The endpoint responds once the Placepoint API is launched. The contract below is final; the Tenant API already responds.

From area to statistics

The call tells you what characterises an area, not just a single property. Brokers use it to put a property in context in a sales prospectus without looking up several sources themselves, developers use it for early market screening of an area before a site purchase is considered, and analysts use it to compare transaction levels across many areas in a loop of calls.

The answer comes with population figures, median income, median price per square metre, the number of transactions over the past 12 months, and a qualitative marketActivity assessment of the transaction level in the area.

The area level is chosen with areaId: a kommunenummer gives broad coverage, a grunnkrets gives finer geographical resolution than the kommune, and the postcode is what most people recognise from an address. The same call handles all three, so a client does not need separate logic for each granularity.

  • Three levels in the same call

    areaId switches between kommunenummer, grunnkrets and postcode without separate logic for each granularity in the client.
  • marketActivity tells you the temperature

    A qualitative assessment of the transaction level comes with the figures, instead of the client having to interpret the transaction rate itself.
  • Norway and Sweden, different methodology

    Both countries respond in the same schema, but each with its own source base and currency, see the questions below.

Fields that actually tell you something

One GET call with areaId gives you the statistics for the area. The fields below are the ones that decide what the figures actually measure.

GET/areas/{country}/{areaId}/statistics
curl -X GET "https://data.placepoint.no/areas/NO/0301/statistics" \
-H "Authorization: Bearer $TOKEN"

svar · 200

{
"area": {
"id": "0301",
"kind": "MUNICIPALITY",
"name": "Oslo"
},
"population": 717710,
"populationByGender": {
"male": 355200,
"female": 362510
},
"populationByAgeGroup": [
{
"label": "0-5",
"count": 44100,
"sharePct": 6.1
},
{
"label": "6-15",
"count": 71800,
"sharePct": 10
},
{
"label": "16-66",
"count": 501300,
"sharePct": 69.8
},
{
"label": "67+",
"count": 100510,
"sharePct": 14.1
}
],
"populationByEducationLevel": [
{
"label": "Grunnskole",
"count": 118400,
"sharePct": 19.4
},
{
"label": "Videregående",
"count": 197300,
"sharePct": 32.3
},
{
"label": "Universitet og høyskole",
"count": 294600,
"sharePct": 48.3
}
],
"populationHistory": [
{
"year": 2023,
"value": 709037
},
{
"year": 2024,
"value": 713265
},
{
"year": 2025,
"value": 717710
}
],
"populationProjection": [
{
"year": 2030,
"value": 748000
},
{
"year": 2040,
"value": 792000
}
],
"averageAge": 38.4,
"daytimePopulation": 812400,
"commuters": {
"inbound": 137500,
"outbound": 61200
},
"households": {
"count": 371400,
"averageSize": 1.9,
"byComposition": [
{
"label": "Enperson",
"count": 190100,
"sharePct": 51.2
},
{
"label": "Par med barn",
"count": 82600,
"sharePct": 22.2
}
]
},
"housing": {
"unitCount": 358900,
"cabinCount": 2140,
"averageAreaM2": 74,
"averageBuiltYear": 1968,
"averagePrice": {
"amount": "6250000.00",
"currency": "NOK"
},
"byType": [
{
"label": "Blokkleilighet",
"count": 259400,
"sharePct": 72.3
},
{
"label": "Enebolig",
"count": 26800,
"sharePct": 7.5
}
]
},
"employeeCount": 486200,
"medianIncome": {
"amount": "465000.00",
"currency": "NOK"
},
"totalIncome": {
"amount": "412000000000.00",
"currency": "NOK"
},
"averageWealth": {
"amount": "1840000.00",
"currency": "NOK"
},
"transactionsLast12Months": 8340,
"medianPricePerM2": {
"amount": "95000.00",
"currency": "NOK"
},
"marketActivity": "HIGH",
"priceHistory": [
{
"quarter": "2026-Q1",
"medianPricePerM2": {
"amount": "93500.00",
"currency": "NOK"
},
"transactionCount": 1980
},
{
"quarter": "2026-Q2",
"medianPricePerM2": {
"amount": "95000.00",
"currency": "NOK"
},
"transactionCount": 2140
}
],
"asOfDate": "2026-06-30"
}

Scope: areas.readTeknisk referanse og Try-it

Vis alle felt (51)
FeltTypeBeskrivelse
area.idstringArea identifier, matching the areaId path parameter.
area.kindstringArea granularity.
area.namestringArea name.
populationintegerRegistered population.
populationByGender.maleintegerRegistered men.
populationByGender.femaleintegerRegistered women.
populationByAgeGroup[].labelstringBucket label.
populationByAgeGroup[].countintegerHow many fall in the bucket.
populationByAgeGroup[].sharePctnumberThe bucket's share of the total, as a percentage.
populationByEducationLevel[].labelstringBucket label.
populationByEducationLevel[].countintegerHow many fall in the bucket.
populationByEducationLevel[].sharePctnumberThe bucket's share of the total, as a percentage.
populationHistory[].yearintegerYear.
populationHistory[].valuenumberValue for that year.
populationProjection[].yearintegerYear.
populationProjection[].valuenumberValue for that year.
averageAgenumberAverage age of the registered population.
daytimePopulationintegerPeople present in the area during working hours.
commuters.inboundintegerPeople commuting into the area.
commuters.outboundintegerPeople commuting out of the area.
households.countintegerNumber of households.
households.averageSizenumberAverage number of people per household.
households.byComposition[].labelstringBucket label.
households.byComposition[].countintegerHow many fall in the bucket.
households.byComposition[].sharePctnumberThe bucket's share of the total, as a percentage.
housing.unitCountintegerDwelling units in the area.
housing.cabinCountintegerHoliday homes in the area.
housing.averageAreaM2numberAverage dwelling area in square meters.
housing.averageBuiltYearintegerAverage year of completion for the dwellings.
housing.averagePrice.amountstringDecimal string, e.g. "12500000.00".
housing.averagePrice.currencystringISO 4217, e.g. NOK or SEK.
housing.byType[].labelstringBucket label.
housing.byType[].countintegerHow many fall in the bucket.
housing.byType[].sharePctnumberThe bucket's share of the total, as a percentage.
employeeCountintegerPeople employed at workplaces in the area.
medianIncome.amountstringDecimal string, e.g. "12500000.00".
medianIncome.currencystringISO 4217, e.g. NOK or SEK.
totalIncome.amountstringDecimal string, e.g. "12500000.00".
totalIncome.currencystringISO 4217, e.g. NOK or SEK.
averageWealth.amountstringDecimal string, e.g. "12500000.00".
averageWealth.currencystringISO 4217, e.g. NOK or SEK.
transactionsLast12MonthsintegerRecorded property transactions in the trailing 12 months.
medianPricePerM2.amountstringDecimal string, e.g. "12500000.00".
medianPricePerM2.currencystringISO 4217, e.g. NOK or SEK.
marketActivitystringQualitative transaction-volume tier for the area.
priceHistory[].quarterstringQuarter, YYYY-Qn.
priceHistory[].medianPricePerM2.amountstringDecimal string, e.g. "12500000.00".
priceHistory[].medianPricePerM2.currencystringISO 4217, e.g. NOK or SEK.
priceHistory[].transactionCountintegerRecorded transactions in the quarter.
priceHistory[].dwellingTypestringThe dwelling type the figure covers, absent when it covers all types.
asOfDatestringThe date the statistics were computed as of.

area.kind shows the level of detail the figures apply to, and asOfDate shows when the figures were last calculated.

Three steps to your first answer

  1. Log in with GitHub

    One click, under a minute, no payment card. The key comes back to this page.
  2. Call the endpoint

    The curl above fills itself in with your key when you are logged in. The call needs a country code and an areaId in the right format for the level you are asking about.
  3. Apply the answer

    Put the property in context in a sales prospectus, or loop over several areaId values to compare transaction levels across areas.

Data and sources

Norwegian figures come from SSB and registered transactions at Kartverket. Swedish figures come from SCB via Combify. Both are updated periodically after each new official publication.

See also

Questions and answers

How fresh is the data?
asOfDate shows when the figures were last calculated. Norwegian and Swedish figures are updated periodically after each new official publication, not every night.
Does it work in Sweden?
Yes. Swedish figures come from Statistiska centralbyrån (SCB) via Combify, in the same response schema as the Norwegian one.
Can I compare a Norwegian and a Swedish area directly?
With one caveat. The two countries' figures are built on different methodology and currency, so a Norwegian and a Swedish area should be compared with that in mind, not read as the same scale.
Which areaId formats are there?
Kommunenummer, grunnkrets and postcode for Norway, kommunkod for Sweden. area.kind in the answer confirms which level the figures actually apply to.
Beta! Dokumentasjonen er automatisk generert. Informasjonen kan være ufullstendig og inneholde feil, spesielt skjermbilder og videoer. Se Om hjelpesidene. Vi vil veldig gjerne ha innspill: Kontakt oss via «Fant du det du lette etter?» nederst, i chatten nede til høyre eller på support@placepoint.no – vi svarer så fort vi kan!