# Overstappen van Altum

> Wat je bij Altum doet en hoe je dat hier doet.

Bron: https://huispedia.dev/nl/docs/migrate/altum/

Gebaseerd op de openbare documentatie van Altum, oktober 2026.

Werk je met Claude Code? De skill `migrate-from-altum` zet je code over met deze tabellen; zie de [Claude Code-plugin](https://huispedia.dev/nl/docs/claude/).

## Endpoints

| Altum | Wat | Huispedia |
|---|---|---|
| `POST /avm`, `POST /v2/avm` | Woningwaarde | [`GET /v5/properties/{locator}/valuation`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/GET/v5/properties/{locator}/valuation) |
| `POST /avm` met eigen kenmerken | Woningwaarde met eigen invoer | [`POST /v5/valuations/scenarios`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/POST/v5/valuations/scenarios) |
| `POST /avm/bulk` | Bulkwaardering | [`POST /v5/valuations/scenarios`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/POST/v5/valuations/scenarios)<br>Tot 100 woningen per aanroep, direct in het antwoord. |
| `POST /avmplus` | Woningwaarde+ | [`GET /v5/properties/{locator}/valuation/plus`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/GET/v5/properties/{locator}/valuation/plus) (contract) |
| `POST /v2/objectdata` | Woningkenmerken | [`GET /v5/properties/{locator}`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}) |
| `POST /interactive-reference` | Referentiewoningen | [`GET /v5/properties/{locator}/references`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/GET/v5/properties/{locator}/references) (contract) |
| `POST /v2/transaction` | Transacties | [`GET /v5/properties/{locator}/transactions`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}/transactions) (contract) |
| `POST /v2/transaction/ping` | Zijn er transacties? | [`HEAD /v5/properties/{locator}/transactions`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/HEAD/v5/properties/{locator}/transactions) |
| `POST /woz`, `GET /woz` | WOZ-waarde | [`GET /v5/properties/{locator}/woz`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}/woz) |
| `GET /market-trend` | Markttrend | [`GET /v5/areas/{area}/stats`](https://huispedia.dev/nl/docs/endpoints/#tag/areas-and-market/GET/v5/areas/{area}/stats)<br>[`GET /v5/areas/{area}/trends`](https://huispedia.dev/nl/docs/endpoints/#tag/areas-and-market/GET/v5/areas/{area}/trends) |
| `POST /location-data` | Locatiegegevens | [`GET /v5/addresses/{locator}`](https://huispedia.dev/nl/docs/endpoints/#tag/addresses/GET/v5/addresses/{locator})<br>[`GET /v5/areas/{area}/demographics`](https://huispedia.dev/nl/docs/endpoints/#tag/areas-and-market/GET/v5/areas/{area}/demographics) |
| `GET /autosuggest/v2`, `GET /autosearch` | Adres zoeken | [`GET /v5/addresses/suggest`](https://huispedia.dev/nl/docs/endpoints/#tag/addresses/GET/v5/addresses/suggest) |
| `POST /condition-score/{img,url}` | Conditiescore | [`GET /v5/properties/{locator}/condition`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}/condition)<br>Per adres; je stuurt geen eigen foto's mee. |
| `GET /credit` | Verbruik | [`GET /v5/account/usage`](https://huispedia.dev/nl/docs/endpoints/#tag/account/GET/v5/account/usage) |

Transacties, referentiewoningen en Woningwaarde+ krijg je met een contract: [sales@huispedia.nl](mailto:sales@huispedia.nl).

## Authenticatie

|  | Altum | Huispedia |
|---|---|---|
| **Sleutel** | `x-api-key: <sleutel>` | `X-API-Key: hp_…` of `Authorization: Bearer hp_…` |
| **Basis-URL** | `https://api.altum.ai` | `https://huispedia.dev/v5` |
| **Methode** | `POST` met een JSON-body | `GET` met de woning in het pad; `POST` alleen voor scenario's |
| **Testen** | `/sandbox/` in het pad | Geen sandbox: je test met je gratis credits of op de [Endpoints](https://huispedia.dev/nl/docs/endpoints/)-pagina |

## Adressen en gebieden

| Altum | Huispedia | Opmerking |
|---|---|---|
| `postcode` + `housenumber` + `houseaddition` | `1076LJ-12-2` | Postcode, huisnummer en toevoeging met streepjes in het pad. |
| `houseaddition` (`A02`, `2B`) | `-A02`, `-2B` | Twijfel je: `GET /v5/addresses/1076LJ-12?all=true` geeft elke woning met haar `house_number_ext`. |
| `bag_id` (verblijfsobject) | `bag:0363200000028422` (nummeraanduiding) | Het verblijfsobject-id staat als `bag_verblijfsobject_id` in `GET /v5/addresses/{locator}`. |
| `valuationdate` (`20260901`) | `as_of_date` (`2026-09-01`) |  |
| `postcode` (Markttrend) | `neighbourhood:BU0363KH05` | Een gebied is `niveau:code`; `GET /v5/areas/lookup?postcode=1076LJ` geeft de codes. |

Meer in [Adressen en gebieden](https://huispedia.dev/nl/docs/locators/).

## Velden

### Woningwaarde

`POST /avm` → [`GET /v5/properties/{locator}/valuation`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/GET/v5/properties/{locator}/valuation)

| Altum | Huispedia | Opmerking |
|---|---|---|
| `postcode`, `housenumber`, `houseaddition` | `{locator}` |  |
| `valuationdate` | `?as_of_date=` | Tot zes maanden terug; verder terug met de waardehistorie. |
| `Output.PriceEstimation` | `valuation.value` | Een getal, geen string. |
| `Output.Confidence` | `valuation.lower`, `valuation.upper`, `valuation.interval` | Daar een 90%-interval in één string; hier een 80%-interval in twee getallen. |
| `Output.AccuracyIndicator` | `confidence.class`, `confidence.score_pct`, `confidence.within_10_pct` | Daar een klasse 0 tot 7; hier `high`, `medium` of `low` en percentages. |
| `Output.ValuationDate` | `valuation.as_of_date` |  |
| `Output.BagID`, `PostCode`, `HouseNumber`, `HouseAddition`, `Street`, `City` | `address.bag_id`, `address.postcode`, `address.house_number`, `address.house_number_ext`, `address.street`, `address.city` |  |
| `Output.Longitude`, `Latitude` | `address.location.lon`, `address.location.lat` |  |
| `Output.HouseType`, `BuildYear`, `InnerSurfaceArea`, `OuterSurfaceArea`, `Volume`, `EnergyLabel` | `type.house_type`, `construction.construction_year`, `dimensions.living_area_m2`, `dimensions.plot_area_m2`, `dimensions.volume_m3`, `energy.energy_label`<br>In [`GET /v5/properties/{locator}`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}) | Uit Woningkenmerken. |
| `Output.Image` | *Niet beschikbaar hier* |  |

### Woningwaarde met eigen kenmerken

`POST /avm` → [`POST /v5/valuations/scenarios`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/POST/v5/valuations/scenarios)

| Altum | Huispedia | Opmerking |
|---|---|---|
| `postcode`, `housenumber`, `houseaddition` | `data[].postcode`, `data[].house_number`, `data[].house_number_ext` |  |
| `innersurfacearea` | `data[].living_area_m2` |  |
| `outersurfacearea` | `data[].plot_area_m2` |  |
| `buildyear` | `data[].construction_year` |  |
| `housetype` | `data[].house_type` | `terraced`, `corner`, `semi_detached`, `detached` of `apartment`. |
| `energylabel` | `data[].energy_label` |  |
| `Output.PriceEstimation` | `data[].valuation.value` |  |

### Woningkenmerken

`POST /v2/objectdata` → [`GET /v5/properties/{locator}`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator})

| Altum | Huispedia | Opmerking |
|---|---|---|
| `house_type_generic`, `house_type_specific` | `type.object_type`, `type.house_type_detail` |  |
| `inner_surface_area`, `outer_surface_area`, `volume` | `dimensions.living_area_m2`, `dimensions.plot_area_m2`, `dimensions.volume_m3` |  |
| `build_year` | `construction.construction_year` |  |
| `rooms`, `number_of_bathrooms` | `rooms.rooms`, `rooms.bathrooms` |  |
| `garden_orientation`, `garden_size` | `outdoor.garden_orientation`, `outdoor.garden_area_m2` |  |
| `monument` | `construction.is_monument` |  |
| `longitude`, `latitude`, `municipality_name`, `province` | `address.location.lon`, `address.location.lat`, `address.municipality`, `address.province` |  |
| `neighbourhood_code`, `municipality_code` | `neighbourhood.code`, `municipality_code`<br>In [`GET /v5/addresses/{locator}`](https://huispedia.dev/nl/docs/endpoints/#tag/addresses/GET/v5/addresses/{locator}) |  |
| `ozb_tax`, `waste_tax_*`, `sewage_tax_*` | *Niet beschikbaar hier* |  |

### Referentiewoningen

`POST /interactive-reference` → [`GET /v5/properties/{locator}/references`](https://huispedia.dev/nl/docs/endpoints/#tag/valuations/GET/v5/properties/{locator}/references)

| Altum | Huispedia | Opmerking |
|---|---|---|
| `reference_number` | `?limit=` | 3 tot 30. |
| `date_limit` | `?max_age_months=` |  |
| `housetype_to_search`, `strict_*`, `comparable_*` | `?same_type=`, `?max_distance_m=`, `?min_living_area_m2=`, `?max_living_area_m2=`, `?min_construction_year=`, `?max_construction_year=` | Grenzen in plaats van niveaus. |
| `weight_*` | `?sort=` | Sorteer op `similarity`, `distance` of `date`; geen eigen gewichten. |
| `GivenHouse` | `target` |  |
| `ReferenceHouses[]` | `data[]` |  |
| `Distance`, `Transactiondate`, `Source` | `data[].distance_m`, `data[].transaction_date`, `data[].source` |  |
| `TransactionPrice`, `IndexedTransactionPrice` | `data[].price`, `data[].price_indexed` |  |
| `InnerSurfaceArea`, `BuildYear`, `HouseType` | `data[].living_area_m2`, `data[].construction_year`, `data[].house_type` |  |
| `Weight` | *Niet beschikbaar hier* |  |
| `VisualSimilarityScore`, `ReferencePriceMean` | *Niet beschikbaar hier* |  |

### Transacties

`POST /v2/transaction` → [`GET /v5/properties/{locator}/transactions`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}/transactions)

| Altum | Huispedia | Opmerking |
|---|---|---|
| `valuation_date` | *Niet beschikbaar hier* | Je krijgt alle verkopen van de woning; filter zelf op `transaction_date`. |
| `transaction`, `transaction_date` | `data[].transaction_id`, `data[].transaction_date` |  |
| `transaction_price`, `transaction_price_indexed` | `data[].price`, `data[].price_indexed` |  |
| `buyer`, `seller`, `family_transaction`, `more_real_estate`, `business_right` | *Niet beschikbaar hier* |  |

### WOZ-waarde

`POST /woz` → [`GET /v5/properties/{locator}/woz`](https://huispedia.dev/nl/docs/endpoints/#tag/properties/GET/v5/properties/{locator}/woz)

| Altum | Huispedia | Opmerking |
|---|---|---|
| `index: 1` | `?index=` |  |
| `wozvalue[].Date`, `Value`, `IndexedValue` | `values[].reference_date`, `values[].value`, `values[].indexed_value` |  |

### Markttrend

`GET /market-trend` → [`GET /v5/areas/{area}/stats`](https://huispedia.dev/nl/docs/endpoints/#tag/areas-and-market/GET/v5/areas/{area}/stats)

| Altum | Huispedia | Opmerking |
|---|---|---|
| `postcode` | `{area}` | Codes via `GET /v5/areas/lookup?postcode=`. |
| `averagePriceSingleFamilyHomes`, `averagePriceMultiFamilyHomes` | `market.avg_transaction_price` | Niet gesplitst naar woningsoort. |
| `pricePerSquareMeterSingleFamily`, `pricePerSquareMeterMultiFamily` | `market.avg_transaction_price_per_m2` |  |
| `annualPriceChange` | `market.transaction_price_per_m2_yoy_pct` |  |
| `transactionData.totalSalesLast12Months` | `market.transactions_count` |  |
| `fiveYearPriceChange` | `data[].value`, `data[].yoy_pct`<br>In [`GET /v5/areas/{area}/trends`](https://huispedia.dev/nl/docs/endpoints/#tag/areas-and-market/GET/v5/areas/{area}/trends) | Prijs per m² per maand, standaard vijf jaar terug. |

## Fouten

Een fout is `application/problem+json` met een vaste `code`; elke code staat op [Fouten](https://huispedia.dev/nl/docs/errors/).

| Altum | Huispedia | Opmerking |
|---|---|---|
| `400` (adres niet gevonden) | [`404 not_found`](https://huispedia.dev/nl/docs/errors/#not_found) |  |
| `400` (datumformaat, woningtype), `422` (validatie) | [`400 invalid_request`](https://huispedia.dev/nl/docs/errors/#invalid_request) | `errors` noemt per veld wat er mis is. |
| `400` (geen voorspelling mogelijk) | [`422 data_unavailable`](https://huispedia.dev/nl/docs/errors/#data_unavailable) |  |
| `401`, `403` (`Missing Authentication Token`) | [`401 unauthenticated`](https://huispedia.dev/nl/docs/errors/#unauthenticated) |  |
| `403` (`Forbidden`, geen toegang tot de API) | [`403 entitlement_required`](https://huispedia.dev/nl/docs/errors/#entitlement_required) |  |
| `429` (limiet) | [`429 rate_limited`](https://huispedia.dev/nl/docs/errors/#rate_limited) | Wacht `Retry-After` seconden. |
| `429` (quotum) | [`402 insufficient_credits`](https://huispedia.dev/nl/docs/errors/#insufficient_credits), [`402 spend_cap_reached`](https://huispedia.dev/nl/docs/errors/#spend_cap_reached) |  |
| `500` | [`500 internal_error`](https://huispedia.dev/nl/docs/errors/#internal_error) |  |
| `{"Output": "…"}`, `{"detail": […]}` | `application/problem+json` met `code`, `detail`, `errors` |  |

## Bulk en limieten

|  | Altum | Huispedia |
|---|---|---|
| **Snelheid** | Fair use: tot 6 gelijktijdige verzoeken per seconde | [6 per seconde en 6 tegelijk met een betaald plan; 1 en 2 op Free](https://huispedia.dev/nl/docs/rate-limits/) |
| **Bulk** | `POST /avm/bulk`, daarna de taak ophalen | `POST /v5/valuations/scenarios`: 100 woningen per aanroep, direct terug |
| **Verbruik** | `GET /credit` | `GET /v5/account/usage` |

## Voorbeeld: woningwaarde

**Altum**

```bash
curl -X POST https://api.altum.ai/avm \
  -H "x-api-key: $ALTUM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"postcode": "1076LJ", "housenumber": 12, "houseaddition": "2"}'
```

```python
import os, requests

r = requests.post(
    "https://api.altum.ai/avm",
    headers={"x-api-key": os.environ["ALTUM_KEY"]},
    json={"postcode": "1076LJ", "housenumber": 12, "houseaddition": "2"},
)
value = int(r.json()["Output"]["PriceEstimation"])
```

**Huispedia**

```bash
curl https://huispedia.dev/v5/properties/1076LJ-12-2/valuation \
  -H "X-API-Key: $HUISPEDIA_KEY"
```

```python
import os, requests

r = requests.get(
    "https://huispedia.dev/v5/properties/1076LJ-12-2/valuation",
    headers={"X-API-Key": os.environ["HUISPEDIA_KEY"]},
)
r.raise_for_status()
v = r.json()["valuation"]
value, lower, upper = v["value"], v["lower"], v["upper"]
```

## Verschillen

### Niet beschikbaar hier

- Foto bij de waardering (`image`): niet beschikbaar hier.
- Woning aanduiden met een verblijfsobject-id: niet beschikbaar hier; gebruik de nummeraanduiding.
- Waardering op een datum verder dan zes maanden terug: niet beschikbaar hier; de waardehistorie geeft één waarde per maand.
- Eigen gewichten, een gewicht per referentiewoning en beeldgelijkenis: niet beschikbaar hier; de volgorde geeft de gelijkenis.
- Koper, verkoper en Kadaster-codes bij transacties: niet beschikbaar hier.
- Gemeentelijke lasten (`ozb_tax` en verder): niet beschikbaar hier.
- Gemiddelde WOZ per postcode (`/woz/pc6`): niet beschikbaar hier.
- Huurreferenties, WWS-punten, herbouw- en inboedelwaarde: niet beschikbaar hier.
- NTA 8800-labelberekening, verduurzaming, subsidies, dakscans, EPC: niet beschikbaar hier; `GET /v5/properties/{locator}/energy-label` geeft het geregistreerde label.
- Verhuisdata, gebouwgeometrie, foto labelen: niet beschikbaar hier.

### Geen equivalent bij Altum

- `409 address_ambiguous` met de kandidaten als een adres meerdere woningen heeft: geen equivalent bij Altum.
- Wat-als-scenario's tegen dezelfde basis (`scenarios`): geen equivalent bij Altum.
- Maandelijkse waardehistorie in één aanroep: geen equivalent bij Altum.
- Leefomgeving (fundering, bodemdaling, geluid, lucht) en voorzieningen per adres: geen equivalent in Altums openbare documentatie.
- Pand met al zijn adressen (`/v5/buildings/{bag_pand_id}`): geen equivalent in Altums openbare documentatie.

## Bronnen

- [Woningwaarde API](https://docs.altum.ai/taxeren-en-waarderen/woningwaarde-api/authentication-input-and-response)
- [Woningwaarde API, huisnummers en toevoegingen](https://docs.altum.ai/taxeren-en-waarderen/woningwaarde-api/house-numbers-and-additions)
- [Woningwaarde API, accuratesse-indicator](https://docs.altum.ai/taxeren-en-waarderen/woningwaarde-api/accuratesse-indicator)
- [Woningwaarde API, OpenAPI](https://api.altum.ai/avm/openapi)
- [Woningwaarde+ API](https://docs.altum.ai/taxeren-en-waarderen/woningwaarde+-api/authenticatie-invoer-en-resultaat)
- [Woningkenmerken API](https://docs.altum.ai/woningdata/woningkenmerken-api/authenticatie-invoer-en-resultaat)
- [Interactieve woningreferentie API](https://docs.altum.ai/taxeren-en-waarderen/interactieve-woningreferentie-api/authenticatie-invoer-en-resultaat)
- [Kadaster Transactie API](https://docs.altum.ai/taxeren-en-waarderen/kadaster-transactie-api/authenticatie-invoer-en-resultaat)
- [WOZ API](https://docs.altum.ai/woningdata/woz-api/authentication-input-and-response)
- [Markttrend API](https://docs.altum.ai/taxeren-en-waarderen/markttrend-api/authentication-input-and-response)
- [Sandbox](https://docs.altum.ai/ontwikkelaars/sandbox)
- [Fair use policy](https://docs.altum.ai/enterprise/fair-use-policy)
- [Foutcodes 403, 422, 429](https://docs.altum.ai/api-error-codes/422)
- [Verbruik API](https://docs.altum.ai/ontwikkelaars/verbruik-api)
