Skip to content
NL

Migrating from Altum

Based on Altum's public documentation, October 2026.

Using Claude Code? The migrate-from-altum skill moves your code over with these tables; see the Claude Code plugin.

AltumWhatHuispedia
POST /avm, POST /v2/avmHome valuationGET /v5/properties/{locator}/valuation
POST /avm with your own characteristicsValuation with your own inputsPOST /v5/valuations/scenarios
POST /avm/bulkBulk valuationPOST /v5/valuations/scenarios
Up to 100 homes per call, answered at once.
POST /avmplusHome valuation plusGET /v5/properties/{locator}/valuation/plus (contract)
POST /v2/objectdataProperty characteristicsGET /v5/properties/{locator}
POST /interactive-referenceReference homesGET /v5/properties/{locator}/references (contract)
POST /v2/transactionTransactionsGET /v5/properties/{locator}/transactions (contract)
POST /v2/transaction/pingAny transactions?HEAD /v5/properties/{locator}/transactions
POST /woz, GET /wozWOZ valueGET /v5/properties/{locator}/woz
GET /market-trendMarket trendGET /v5/areas/{area}/stats
GET /v5/areas/{area}/trends
POST /location-dataLocation dataGET /v5/addresses/{locator}
GET /v5/areas/{area}/demographics
GET /autosuggest/v2, GET /autosearchAddress searchGET /v5/addresses/suggest
POST /condition-score/{img,url}Condition scoreGET /v5/properties/{locator}/condition
Per address; you do not send your own photos.
GET /creditUsageGET /v5/account/usage

Transactions, reference homes and home valuation plus come with a contract: [email protected].

AltumHuispedia
Keyx-api-key: <key>X-API-Key: hp_… or Authorization: Bearer hp_…
Base URLhttps://api.altum.aihttps://huispedia.dev/v5
MethodPOST with a JSON bodyGET with the home in the path; POST only for scenarios
Testing/sandbox/ in the pathNo sandbox: you test with your free credits or on the Endpoints page
AltumHuispediaNote
postcode + housenumber + houseaddition1076LJ-12-2Postcode, number and extension with hyphens in the path.
houseaddition (A02, 2B)-A02, -2BNot sure: GET /v5/addresses/1076LJ-12?all=true returns every home with its house_number_ext.
bag_id (verblijfsobject)bag:0363200000028422 (nummeraanduiding)The verblijfsobject id is bag_verblijfsobject_id in GET /v5/addresses/{locator}.
valuationdate (20260901)as_of_date (2026-09-01)
postcode (Markttrend)neighbourhood:BU0363KH05An area is level:code; GET /v5/areas/lookup?postcode=1076LJ gives the codes.

More in Addresses and areas.

Home valuation

POST /avm → GET /v5/properties/{locator}/valuation

AltumHuispediaNote
postcode, housenumber, houseaddition{locator}
valuationdate?as_of_date=Up to six months back; further back with the valuation history.
Output.PriceEstimationvaluation.valueA number, not a string.
Output.Confidencevaluation.lower, valuation.upper, valuation.intervalThere a 90% interval in one string; here an 80% interval in two numbers.
Output.AccuracyIndicatorconfidence.class, confidence.score_pct, confidence.within_10_pctThere a class 0 to 7; here high, medium or low and percentages.
Output.ValuationDatevaluation.as_of_date
Output.BagID, PostCode, HouseNumber, HouseAddition, Street, Cityaddress.bag_id, address.postcode, address.house_number, address.house_number_ext, address.street, address.city
Output.Longitude, Latitudeaddress.location.lon, address.location.lat
Output.HouseType, BuildYear, InnerSurfaceArea, OuterSurfaceArea, Volume, EnergyLabeltype.house_type, construction.construction_year, dimensions.living_area_m2, dimensions.plot_area_m2, dimensions.volume_m3, energy.energy_label
In GET /v5/properties/{locator}
From Property characteristics.
Output.ImageNot available here

Valuation with your own characteristics

POST /avm → POST /v5/valuations/scenarios

AltumHuispediaNote
postcode, housenumber, houseadditiondata[].postcode, data[].house_number, data[].house_number_ext
innersurfaceareadata[].living_area_m2
outersurfaceareadata[].plot_area_m2
buildyeardata[].construction_year
housetypedata[].house_typeterraced, corner, semi_detached, detached or apartment.
energylabeldata[].energy_label
Output.PriceEstimationdata[].valuation.value

Property characteristics

POST /v2/objectdata → GET /v5/properties/{locator}

AltumHuispediaNote
house_type_generic, house_type_specifictype.object_type, type.house_type_detail
inner_surface_area, outer_surface_area, volumedimensions.living_area_m2, dimensions.plot_area_m2, dimensions.volume_m3
build_yearconstruction.construction_year
rooms, number_of_bathroomsrooms.rooms, rooms.bathrooms
garden_orientation, garden_sizeoutdoor.garden_orientation, outdoor.garden_area_m2
monumentconstruction.is_monument
longitude, latitude, municipality_name, provinceaddress.location.lon, address.location.lat, address.municipality, address.province
neighbourhood_code, municipality_codeneighbourhood.code, municipality_code
In GET /v5/addresses/{locator}
ozb_tax, waste_tax_*, sewage_tax_*Not available here

Reference homes

POST /interactive-reference → GET /v5/properties/{locator}/references

AltumHuispediaNote
reference_number?limit=3 to 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=Bounds instead of levels.
weight_*?sort=Sort by similarity, distance or date; no weights of your own.
GivenHousetarget
ReferenceHouses[]data[]
Distance, Transactiondate, Sourcedata[].distance_m, data[].transaction_date, data[].source
TransactionPrice, IndexedTransactionPricedata[].price, data[].price_indexed
InnerSurfaceArea, BuildYear, HouseTypedata[].living_area_m2, data[].construction_year, data[].house_type
WeightNot available here
VisualSimilarityScore, ReferencePriceMeanNot available here

Transactions

POST /v2/transaction → GET /v5/properties/{locator}/transactions

AltumHuispediaNote
valuation_dateNot available hereYou get every sale of the home; filter on transaction_date yourself.
transaction, transaction_datedata[].transaction_id, data[].transaction_date
transaction_price, transaction_price_indexeddata[].price, data[].price_indexed
buyer, seller, family_transaction, more_real_estate, business_rightNot available here

WOZ value

POST /woz → GET /v5/properties/{locator}/woz

AltumHuispediaNote
index: 1?index=
wozvalue[].Date, Value, IndexedValuevalues[].reference_date, values[].value, values[].indexed_value

Market trend

GET /market-trend → GET /v5/areas/{area}/stats

AltumHuispediaNote
postcode{area}Codes from GET /v5/areas/lookup?postcode=.
averagePriceSingleFamilyHomes, averagePriceMultiFamilyHomesmarket.avg_transaction_priceNot split by home type.
pricePerSquareMeterSingleFamily, pricePerSquareMeterMultiFamilymarket.avg_transaction_price_per_m2
annualPriceChangemarket.transaction_price_per_m2_yoy_pct
transactionData.totalSalesLast12Monthsmarket.transactions_count
fiveYearPriceChangedata[].value, data[].yoy_pct
In GET /v5/areas/{area}/trends
Price per m² per month, five years back by default.

An error is application/problem+json with a fixed code; every code is on Errors.

AltumHuispediaNote
400 (address not found)404 not_found
400 (date format, house type), 422 (validation)400 invalid_requesterrors names what is wrong per field.
400 (no prediction possible)422 data_unavailable
401, 403 (Missing Authentication Token)401 unauthenticated
403 (Forbidden, no access to the API)403 entitlement_required
429 (limit)429 rate_limitedWait Retry-After seconds.
429 (quota)402 insufficient_credits, 402 spend_cap_reached
500500 internal_error
{"Output": "…"}, {"detail": […]}application/problem+json with code, detail, errors
AltumHuispedia
RateFair use: up to 6 concurrent requests per second6 per second and 6 at once on a paid plan; 1 and 2 on Free
BulkPOST /avm/bulk, then fetch the jobPOST /v5/valuations/scenarios: 100 homes per call, answered at once
UsageGET /creditGET /v5/account/usage

Altum

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"}'

Huispedia

curl https://huispedia.dev/v5/properties/1076LJ-12-2/valuation \
-H "X-API-Key: $HUISPEDIA_KEY"
  • Photo with the valuation (image): not available here.
  • Pointing at a home by verblijfsobject id: not available here; use the nummeraanduiding.
  • A valuation more than six months back: not available here; the valuation history gives one value per month.
  • Your own weights, a weight per reference home and visual similarity: not available here; the order gives the likeness.
  • Buyer, seller and Kadaster codes with transactions: not available here.
  • Municipal charges (ozb_tax and the like): not available here.
  • Average WOZ per postcode (/woz/pc6): not available here.
  • Rental comparables, WWS points, rebuild and contents value: not available here.
  • NTA 8800 label calculation, sustainability, subsidies, roof scans, EPC: not available here; GET /v5/properties/{locator}/energy-label gives the registered label.
  • Move data, building geometry, photo labelling: not available here.
  • 409 address_ambiguous with the candidates when an address has several homes: no equivalent at Altum.
  • What-if scenarios against the same base (scenarios): no equivalent at Altum.
  • Monthly valuation history in one call: no equivalent at Altum.
  • Environment (foundation, subsidence, noise, air) and amenities per address: no equivalent in Altum's public documentation.
  • A building with all its addresses (/v5/buildings/{bag_pand_id}): no equivalent in Altum's public documentation.