Why Houski is the superior alternative to Canada Post's AddressComplete service

Photo of Alex Wilkinson
Alex Wilkinson
CEO of Houski
2026-01-30

Canadian businesses have relied on Canada Post's AddressComplete for years. Houski's property data API is a strong alternative: modern tech, straightforward pricing, vastly more valuable data.

Where AddressComplete falls short

Prepaid lookup plans

AddressComplete is sold as tiered plans of prepaid lookups. Businesses have to predict their yearly usage up front, and either overpay for lookups they never use or run short and buy more.

Limited to address completion

AddressComplete completes and validates addresses. It returns no property information to enhance business intelligence or customer experience.

Why Houski is the clear winner

Simple, transparent pricing starting at $99 (USD)/month

  • $99 (USD)/month minimum for full API access
  • Pay-as-you-go on data returned above the minimum
  • No expiring lookup credits
  • No hidden surcharges

Predictable pricing you can budget for, with the minimum acting as the floor instead of a tier you can outgrow.

Modern, developer-friendly API

Built by developers for developers:

  • Comprehensive documentation
  • JSON responses
  • Consistent return values
  • Works with any language
  • No form modifications required

The block below is a live call against the real API, the request code and the JSON response are generated every time this page is rendered:

API request
TypeScript code
const houski_data = async (): Promise<PropertiesResponse> => {

    // You must copy the PropertiesResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/properties');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('city', 'calgary');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('select', 'address,city,province_abbreviation,postal_code');

    const response = await fetch(url);
    const data = await response.json();

    return data;
}

(async () => {
let data: PropertiesResponse = await houski_data();

// Log the response
console.log(data);
})();
API response
JSON
{
  "cache_hit": true,
  "cost_cents": 0.29999998,
  "data": [
    {
      "address": "518 Rochester Terrace NW",
      "city": "Calgary",
      "property_id": "103f92f6cf7bbdd9",
      "province_abbreviation": "AB"
    },
    {
      "address": "36 Crimson Ridge Heights NW",
      "city": "Calgary",
      "property_id": "104fb85a9c002e5d",
      "province_abbreviation": "AB"
    },
    {
      "address": "54 Rowmont Link NW",
      "city": "Calgary",
      "property_id": "1055f97323e53f25",
      "province_abbreviation": "AB"
    },
    {
      "address": "499 Rochester Terrace NW",
      "city": "Calgary",
      "property_id": "1106094a42c3757d",
      "province_abbreviation": "AB"
    },
    {
      "address": "304 30 Rochester View NW",
      "city": "Calgary",
      "postal_code": "T3L0M8",
      "property_id": "1198b011e799062c",
      "province_abbreviation": "AB"
    },
    {
      "address": "95 Royston He NW",
      "city": "Calgary",
      "property_id": "11aa161875771a70",
      "province_abbreviation": "AB"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 110113
  },
  "price_quote": false,
  "result_total": 660677,
  "time_ms": 41,
  "ui_info": {
    "city": "Calgary",
    "city_id": "6ec95b53075d062c",
    "city_link": "ca/ab/calgary",
    "city_slug": "calgary",
    "country": "Canada",
    "country_abbreviation": "CA",
    "country_abbreviation_id": "9ace2b6431b7f1be",
    "country_abbreviation_link": "ca",
    "country_slug": "canada",
    "province": "Alberta",
    "province_abbreviation": "AB",
    "province_abbreviation_id": "aae1f05a0f89d2c7",
    "province_abbreviation_link": "ca/ab",
    "province_slug": "alberta"
  }
}

Address validation plus much more

We don't just validate addresses. We provide a goldmine of property data:

  1. Complete address validation and standardization

    • Standardized address formats
    • Postal code verification
    • City, province, and neighborhood validation
    • Geographic coordinates (latitude/longitude)
  2. Rich property information

    • Property type (house, condo, commercial, etc.)
    • Year built, and permit-based renovation history in the places that publish permits
    • Square footage and lot size
    • Number of bedrooms, bathrooms, etc.
    • Zoning information
    • Tax assessment data
  3. Market and valuation data

    • Estimated property value
    • Listing history for the property
    • Market trends for the area
    • Rental price estimates
  4. Neighborhood intelligence

    • Demographics for the surrounding area
    • School accessibility scores
    • Walkability and transit scores
    • Community amenities

All available through the same API call as address validation. Pick what you need per use case.

Real-world applications beyond address validation

Enhanced e-commerce experiences

  • Auto-populate property characteristics based on verified address
  • Show shipping time estimates based on actual geographic data
  • Offer personalized product recommendations based on housing type
  • Provide accurate installation service quotes using property information

Smarter customer relationship management (CRM) systems

  • Enrich customer profiles with property data
  • Segment customers based on housing type, value, or neighborhood
  • Enable more targeted marketing based on property characteristics
  • Identify high-value customers based on property value

Financial services applications

  • Pre-fill mortgage application forms with verified property data
  • Speed up insurance quote processes with property characteristics
  • Enhance risk assessments with neighborhood data
  • Improve fraud detection with address verification

Real estate and proptech

  • Build better search experiences with standardized addresses
  • Offer instant property valuations during user journeys
  • Create comprehensive property profiles with minimal user input
  • Power comparison tools with consistent data formats

Address autocompletion with additional context

The /search endpoint matches a half-typed or misspelled address and returns any property field you select alongside it, so one keystroke-driven call can carry the property type, size and estimated value along with the address. The live call below pulls the address plus extra context for each match:

API request
TypeScript code
const houski_data = async (): Promise<SearchResponse> => {

    // You must copy the SearchResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/search');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('max_results', '5');
    url.searchParams.set('query', '123+main+st+calgary');
    url.searchParams.set('select', 'address,property_type,estimate_list_price,bedroom,bathroom_half,bathroom_full');

    const response = await fetch(url);
    const data = await response.json();

    return data;
}

(async () => {
let data: SearchResponse = await houski_data();

// Log the response
console.log(data);
})();
API response
JSON
{
  "cache_hit": true,
  "cost_cents": 2.1499999,
  "data": [
    {
      "address": "123 Main Street",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "estimate_list_price": 137236,
      "property_id": "aafadb43ded908a3",
      "property_type": "Townhouse"
    },
    {
      "address": "123 Main Street",
      "bathroom_full": 1,
      "bathroom_half": 0,
      "bedroom": 0,
      "estimate_list_price": 269965,
      "property_id": "ae06f5914a609e6d",
      "property_type": "House"
    },
    {
      "address": "123 Midcrest Crescent SE",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "estimate_list_price": 566339,
      "property_id": "d5f6e3fa9a720e57",
      "property_type": "House"
    },
    {
      "address": "123 Masters Street SE",
      "bathroom_full": 3,
      "bathroom_half": 1,
      "bedroom": 4,
      "estimate_list_price": 644133,
      "property_id": "4a7f48fcb67f69a4",
      "property_type": "House"
    },
    {
      "address": "123 Marquis Green SE",
      "bathroom_full": 4,
      "bathroom_half": 1,
      "bedroom": 3,
      "estimate_list_price": 855035,
      "property_id": "8708c4475c5f506c",
      "property_type": "House"
    }
  ],
  "error": "",
  "match_meta": [
    {
      "match_value": 0.7,
      "property_id": "aafadb43ded908a3"
    },
    {
      "match_value": 0.7,
      "property_id": "ae06f5914a609e6d"
    },
    {
      "match_value": 0.7,
      "property_id": "d5f6e3fa9a720e57"
    },
    {
      "match_value": 0.7,
      "property_id": "4a7f48fcb67f69a4"
    },
    {
      "match_value": 0.7,
      "property_id": "8708c4475c5f506c"
    }
  ],
  "price_quote": false,
  "result_total": 5,
  "time_ms": 61
}

Once the user picks a match, a /properties call on its property_id adds the permits and listing history through expand.

Modernize your address validation today

Why pay for outdated address validation when you can have a modern property data API for $99/month?

Houski delivers:

  • Developer-friendly integration
  • Simple, transparent pricing
  • Comprehensive property information
  • Daily updates
  • Consistent coverage across Canada, the United States and 14 more countries

Ready to upgrade? Visit our API documentation.