Skip to main content
Note! These pages are generated automatically. The content may be incomplete or wrong, screenshots and videos especially. See About these help pages. We would really like your input: reach us through "Did you find what you were looking for?" at the bottom of the page, the chat at bottom right, or support@placepoint.no - we answer as fast as we can!

Kommer snart

Area statistics: what does the area look like?

Aggregated statistics for a kommune or grunnkrets: population by gender, age and education, households, dwellings, commuting and how income and wealth are distributed.

Nøkkelen virker på Placepoint API og på dagens Data API, 35 kall om dagen i 14 dager.

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

  • Test in under a minute
  • One GET call
  • JSON
  • Norway
  • Updated annually
info

Placepoint API is under development. This endpoint does not respond yet, and we have no date for when it will.

From area to statistics​

The call tells you who lives in an area, not just what a single property is. Brokers use it to put a property in context in a sales prospectus without looking up several sources themselves, developers use it to assess the buyer base around a site before they bid, and analysts use it to compare many areas in a loop of calls.

The answer comes with population by gender, age group and education level, households by type, dwellings by type and form of ownership, daytime population and commuting, and the distribution of income and wealth in bands, with averages. Income is alminnelig inntekt (ordinary income) and wealth is net wealth, as defined by Skatteetaten (the Norwegian Tax Administration). The bands are given in thousands of kroner.

The area level is chosen with areaId: a kommunenummer gives broad coverage, a grunnkrets gives finer geographical resolution than the kommune. Both are sums over the 100-metre grid cells in the area, so the figures for a grunnkrets and the figures for the kommune it lies in build on the same source.

  • Two levels in the same call

    An areaId with four digits is a kommunenummer, eight digits is a grunnkrets number. The client needs no separate logic for each level.
  • Distributions, not just averages

    Income and wealth come as the number of people per band, so you can see the spread in an area and not just the average.
  • One source for the whole country

    All figures come from SSB and Skatteetaten via Geodata's demographic grid, with the same year for all of Norway.

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",
"municipality": {
"number": "0301",
"name": "Oslo"
}
},
"population": 717710,
"populationByGender": {
"male": 355200,
"female": 362510
},
"populationByAgeGroup": [
{
"label": "0-5",
"count": 44100,
"sharePct": 6.1
},
{
"label": "6-12",
"count": 52300,
"sharePct": 7.3
},
{
"label": "13-15",
"count": 19500,
"sharePct": 2.7
},
{
"label": "16-18",
"count": 20100,
"sharePct": 2.8
},
{
"label": "19-23",
"count": 41600,
"sharePct": 5.8
},
{
"label": "24-34",
"count": 148200,
"sharePct": 20.6
},
{
"label": "35-44",
"count": 118400,
"sharePct": 16.5
},
{
"label": "45-54",
"count": 93300,
"sharePct": 13
},
{
"label": "55-64",
"count": 73200,
"sharePct": 10.2
},
{
"label": "65-74",
"count": 56800,
"sharePct": 7.9
},
{
"label": "75-84",
"count": 35900,
"sharePct": 5
},
{
"label": "85+",
"count": 14310,
"sharePct": 2
}
],
"populationByEducationLevel": [
{
"label": "Ingen eller uoppgitt",
"count": 48200,
"sharePct": 7.9
},
{
"label": "Grunnskole",
"count": 118400,
"sharePct": 19.4
},
{
"label": "Videregående",
"count": 197300,
"sharePct": 32.3
},
{
"label": "Universitet og høyskole, lavere grad",
"count": 161900,
"sharePct": 26.5
},
{
"label": "Universitet og høyskole, høyere grad",
"count": 85200,
"sharePct": 13.9
}
],
"populationHistory": [
{
"year": 2025,
"value": 717710
}
],
"averageAge": 38.4,
"daytimePopulation": 812400,
"commuters": {
"inbound": 137500,
"outbound": 61200
},
"households": {
"count": 371400,
"averageSize": 1.93,
"byComposition": [
{
"label": "Enslig uten barn",
"count": 190100,
"sharePct": 51.2
},
{
"label": "Par uten barn",
"count": 71300,
"sharePct": 19.2
},
{
"label": "Par med små barn",
"count": 48600,
"sharePct": 13.1
}
]
},
"housing": {
"unitCount": 358900,
"cabinCount": 2140,
"byType": [
{
"label": "Blokk",
"count": 259400,
"sharePct": 72.3
},
{
"label": "Enebolig",
"count": 26800,
"sharePct": 7.5
}
],
"byTenure": [
{
"label": "Selveier",
"count": 171200,
"sharePct": 46.1
},
{
"label": "Eier borettslagsbolig",
"count": 93600,
"sharePct": 25.2
},
{
"label": "Leier",
"count": 106600,
"sharePct": 28.7
}
]
},
"employeeCount": 486200,
"employedResidents": 398700,
"averageIncome": {
"amount": "512300.00",
"currency": "NOK"
},
"incomeDistribution": [
{
"label": "0",
"count": 21400,
"sharePct": 3.6
},
{
"label": "0-100",
"count": 38900,
"sharePct": 6.5
},
{
"label": "100-200",
"count": 54100,
"sharePct": 9
},
{
"label": "200-300",
"count": 61800,
"sharePct": 10.3
},
{
"label": "300-400",
"count": 78500,
"sharePct": 13.1
},
{
"label": "400-500",
"count": 84200,
"sharePct": 14.1
},
{
"label": "500-600",
"count": 66300,
"sharePct": 11.1
},
{
"label": "600-700",
"count": 48700,
"sharePct": 8.1
},
{
"label": "700-800",
"count": 34900,
"sharePct": 5.8
},
{
"label": "800-1000",
"count": 41600,
"sharePct": 6.9
},
{
"label": "1000-1500",
"count": 37800,
"sharePct": 6.3
},
{
"label": "1500+",
"count": 30400,
"sharePct": 5.1
}
],
"averageWealth": {
"amount": "1840000.00",
"currency": "NOK"
},
"wealthDistribution": [
{
"label": "0",
"count": 142600,
"sharePct": 23.8
},
{
"label": "0-50",
"count": 61200,
"sharePct": 10.2
},
{
"label": "50-200",
"count": 58900,
"sharePct": 9.8
},
{
"label": "200-400",
"count": 47300,
"sharePct": 7.9
},
{
"label": "400-700",
"count": 49800,
"sharePct": 8.3
},
{
"label": "700-1000",
"count": 38600,
"sharePct": 6.4
},
{
"label": "1000-2000",
"count": 86400,
"sharePct": 14.4
},
{
"label": "2000-3000",
"count": 46100,
"sharePct": 7.7
},
{
"label": "3000-4000",
"count": 25700,
"sharePct": 4.3
},
{
"label": "4000+",
"count": 43000,
"sharePct": 7.2
}
],
"asOfDate": "2025-01-01"
}

Scope: area:readTeknisk referanse og Try-it

Vis alle felt (65)
FeltTypeBeskrivelse
area.idstringArea identifier, matching the areaId path parameter.
area.kindstringArea granularity. POSTAL_CODE is reserved; postal codes are not served yet.
area.namestringArea name.
area.municipality.numberstringKommunenummer, 4 digits.
area.municipality.namestringKommune 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.
housing.byTenure[].labelstringBucket label.
housing.byTenure[].countintegerHow many fall in the bucket.
housing.byTenure[].sharePctnumberThe bucket's share of the total, as a percentage.
employeeCountintegerPeople employed at workplaces in the area.
employedResidentsintegerResidents of the area who are employed, wherever they work.
averageIncome.amountstringDecimal string, e.g. "12500000.00".
averageIncome.currencystringISO 4217, e.g. NOK or SEK.
incomeDistribution[].labelstringBucket label.
incomeDistribution[].countintegerHow many fall in the bucket.
incomeDistribution[].sharePctnumberThe bucket's share of the total, as a percentage.
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.
wealthDistribution[].labelstringBucket label.
wealthDistribution[].countintegerHow many fall in the bucket.
wealthDistribution[].sharePctnumberThe bucket's share of the total, as a percentage.
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 which year the population figures apply to. incomeDistribution and wealthDistribution give the number of people per band, and averageIncome and averageWealth give the average. The fields for transactions and price level in the schema (transactionsLast12Months, medianPricePerM2, marketActivity, priceHistory) and populationProjection are not in the answer yet.

Test in under a minute​

  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 the buyer base across areas.

Data and sources​

The figures come from SSB and Skatteetaten, compiled on 100-metre grid cells by Geodata and summed by us per kommune and grunnkrets. The grid is updated annually; asOfDate shows the year. Sweden is not included yet.

See also​

Questions and answers​

How fresh is the data?
asOfDate shows which year the population figures apply to. The grid is updated once a year after SSB and Skatteetaten have published, not every night.
What kind of income and wealth is this?
Income is alminnelig inntekt (ordinary income): all taxable income minus deductible costs, which is the basis for income tax. It is not gross income. Wealth is net wealth, that is the assessed value of assets minus debt. The bands in incomeDistribution and wealthDistribution are in thousands of kroner, and the averages are in kroner.
Does it work in Sweden?
Not yet. A Swedish areaId returns 404 until we have a source for Swedish areas.
Which areaId formats are there?
Kommunenummer with four digits and grunnkrets with eight. Postcodes also have four digits and cannot be told apart from a kommunenummer, so postcodes are not supported yet. area.kind in the answer confirms which level the figures apply to.
Note! These pages are generated automatically. The content may be incomplete or wrong, screenshots and videos especially. See About these help pages. We would really like your input: reach us through "Did you find what you were looking for?" at the bottom of the page, the chat at bottom right, or support@placepoint.no - we answer as fast as we can!