!

/search

GET
https://api.houski.ca/search

The search endpoint is used to fuzzy find properties by address, and communities, cities, provinces, and countries by name.

This endpoint conforms to Houski API's standard filtering and sorting functionality.

To see all the fields that can be filtered or sorted by, see the fields page.

Example use cases

You can find examples for common use cases on our recipes page.
  1. You want to fuzzy search for properties, communities, cities, provinces, and countries.
  2. You want the user to type their location so you can get relevant results for them in that location.

This example search input utilizes this endpoint.

Request parameters

NameRequiredTypeDescription
api_keyYesUUID v4Authorization API key
queryYesStringThe search query string
max_resultsNoNumber (default: 10)How many results per category to return (max: 10)

Response object

Type declarations are available at the bottom of this page.

NameTypeDescription
cache_hitBooleanIndicates if the data was retrieved from the cache
cost_centsNumberCost of the API call in cents
dataObjectContains the search result data
errorStringDetails about the error. Empty if no error
price_quoteBooleanRequest is for a price quote
time_msNumberTime taken for the request to complete in milliseconds

Example requests and responses

Programming language

Select the programming language you want to display the code examples in.

Programming language

Select the programming language you want to display the code examples in.

Perform a search
Request
Shell session
curl -X GET "https://api.houski.ca/search?api_key=YOUR_API_KEY&query=155 riverside"
TypeScript code
const houski_search_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('query', '155 riverside');

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

    return data;
}

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

// Log the response
console.log(data);
})();
Response
JSON
{
  "cache_hit": true,
  "cost_cents": 0.009999999776482582,
  "data": {
    "cities": [
      {
        "city": "Riverside",
        "city_id": "2d9502aec5a073d8",
        "city_link": "ca/ns/riverside",
        "city_slug": "riverside",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_id": "9ace2b6431b7f1be",
        "country_abbreviation_link": "ca",
        "country_slug": "canada",
        "province": "Nova Scotia",
        "province_abbreviation": "NS",
        "province_abbreviation_id": "6762b7e64abb3230",
        "province_abbreviation_link": "ca/ns",
        "province_slug": "nova-scotia",
        "search_match_score": 0.6428571343421936
      },
      {
        "city": "Utikoomak Lake 155",
        "city_id": "7134b4ee6f8c5bdf",
        "city_link": "ca/ab/utikoomak-lake-155",
        "city_slug": "utikoomak-lake-155",
        "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",
        "search_match_score": 0.2142857164144516
      }
    ],
    "communities": [
      {
        "city": "Edmonton",
        "city_id": "ba0db02120e894c9",
        "city_link": "ca/ab/edmonton",
        "city_slug": "edmonton",
        "community": "River Valley Riverside",
        "community_id": "d5874d31ca21199",
        "community_link": "ca/ab/edmonton/river-valley-riverside",
        "community_slug": "river-valley-riverside",
        "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",
        "search_match_score": 0.6428571343421936
      }
    ],
    "countries": [],
    "properties": [
      {
        "address": "155 Riverside Way SE",
        "address_link": "ca/ab/calgary/riverbend/155-riverside-way-se",
        "city": "Calgary",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 50.98359298706055,
        "longitude": -114.02255249023438,
        "property_id": "eb60abc37742097",
        "province": "Alberta",
        "province_abbreviation": "AB",
        "province_abbreviation_link": "ca/ab",
        "search_match_score": 1.0
      },
      {
        "address": "155 Riverside Close SE",
        "address_link": "ca/ab/calgary/riverbend/155-riverside-close-se",
        "city": "Calgary",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 50.97560501098633,
        "longitude": -114.02802276611328,
        "property_id": "f8bc15e3f737f1f5",
        "province": "Alberta",
        "province_abbreviation": "AB",
        "province_abbreviation_link": "ca/ab",
        "search_match_score": 1.0
      },
      {
        "address": "155 Riverside Mews SE",
        "address_link": "ca/ab/calgary/riverbend/155-riverside-mews-se",
        "city": "Calgary",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 50.97998809814453,
        "longitude": -114.02757263183594,
        "property_id": "b89d484e00cbb2b9",
        "province": "Alberta",
        "province_abbreviation": "AB",
        "province_abbreviation_link": "ca/ab",
        "search_match_score": 1.0
      },
      {
        "address": "1555 Riverside Drive",
        "address_link": "ca/nb/bathurst/unknown/1555-riverside-drive",
        "city": "Bathurst",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 47.606258392333984,
        "longitude": -65.67015838623047,
        "property_id": "557c06a264595e68",
        "province": "New Brunswick",
        "province_abbreviation": "NB",
        "province_abbreviation_link": "ca/nb",
        "search_match_score": 1.0
      },
      {
        "address": "155 Riverside Parkway",
        "address_link": "ca/ns/new-glasgow/unknown/155-riverside-parkway",
        "city": "New Glasgow",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 45.58757019042969,
        "longitude": -62.64662170410156,
        "property_id": "d047013a91c927f1",
        "province": "Nova Scotia",
        "province_abbreviation": "NS",
        "province_abbreviation_link": "ca/ns",
        "search_match_score": 1.0
      },
      {
        "address": "155 Riverside Drive",
        "address_link": "ca/on/vaughan/unknown/155-riverside-drive",
        "city": "Vaughan",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 43.796749114990234,
        "longitude": -79.58148956298828,
        "property_id": "970231384320262c",
        "province": "Ontario",
        "province_abbreviation": "ON",
        "province_abbreviation_link": "ca/on",
        "search_match_score": 1.0
      },
      {
        "address": "155 Riverside Drive",
        "address_link": "ca/on/greater-sudbury/unknown/155-riverside-drive",
        "city": "Greater Sudbury",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 46.485389709472656,
        "longitude": -80.99884033203125,
        "property_id": "552a366b61a80a36",
        "province": "Ontario",
        "province_abbreviation": "ON",
        "province_abbreviation_link": "ca/on",
        "search_match_score": 1.0
      },
      {
        "address": "155 Riverside Drive West",
        "address_link": "ca/on/greater-sudbury/unknown/155-riverside-drive-west",
        "city": "Greater Sudbury",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 46.59049987792969,
        "longitude": -81.34265899658203,
        "property_id": "354e95dc209b28ed",
        "province": "Ontario",
        "province_abbreviation": "ON",
        "province_abbreviation_link": "ca/on",
        "search_match_score": 1.0
      },
      {
        "address": "155 Old Riverside Road",
        "address_link": "ca/ns/guysborough/unknown/155-old-riverside-road",
        "city": "Guysborough",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 45.398868560791016,
        "longitude": -61.50994873046875,
        "property_id": "d8f3f3fea6f490e8",
        "province": "Nova Scotia",
        "province_abbreviation": "NS",
        "province_abbreviation_link": "ca/ns",
        "search_match_score": 0.9285714030265808
      },
      {
        "address": "1500 2505 Riverside Drive",
        "address_link": "ca/on/ottawa/unknown/1500-2505-riverside-drive",
        "city": "Ottawa",
        "country": "Canada",
        "country_abbreviation": "CA",
        "country_abbreviation_link": "ca",
        "latitude": 45.41130065917969,
        "longitude": -75.66258239746094,
        "property_id": "2f0a0c577b03d888",
        "province": "Ontario",
        "province_abbreviation": "ON",
        "province_abbreviation_link": "ca/on",
        "search_match_score": 0.8571428656578064
      }
    ],
    "provinces": []
  },
  "error": "",
  "price_quote": false,
  "time_ms": 2359
}

Response type declarations

TypeScript code
interface SearchResponse {
    cache_hit: boolean;
    cost_cents: number;
    data: SearchData;
    error: string;
    price_quote: boolean;
    time_ms: number;
}

interface SearchData {
    properties: SearchProperty[];
    communities: SearchCommunity[];
    cities: SearchCity[];
    provinces: SearchProvince[];
    countries: SearchCountry[];
}

interface SearchProperty {
    address_link: string;
    address: string;
    property_id: string;
    city: string;
    country_abbreviation_link: string;
    country_abbreviation: string;
    country: string;
    province_abbreviation_link: string;
    province_abbreviation: string;
    province: string;
    search_match_score: number;
    latitude: number;
    longitude: number;
}

interface SearchCountry {
    country_abbreviation_id: string;
    country_abbreviation_link: string;
    country_abbreviation: string;
    country: string;
    country_slug: string;
    search_match_score: number;
}

interface SearchProvince {
    country_abbreviation_id: string;
    country_abbreviation_link: string;
    country_abbreviation: string;
    country: string;
    country_slug: string;
    province_abbreviation_id: string;
    province_abbreviation_link: string;
    province_abbreviation: string;
    province: string;
    province_slug: string;
    search_match_score: number;
}

interface SearchCity {
    city_id: string;
    city: string;
    city_slug: string;
    city_link: string;
    country_abbreviation_id: string;
    country_abbreviation_link: string;
    country_abbreviation: string;
    country: string;
    country_slug: string;
    province_abbreviation_id: string;
    province_abbreviation_link: string;
    province_abbreviation: string;
    province: string;
    province_slug: string;
    search_match_score: number;
}

interface SearchCommunity {
    city_id: string;
    city: string;
    city_link: string;
    city_slug: string;
    community_id: string;
    community_link: string;
    community: string;
    community_slug: string;
    country_abbreviation_id: string;
    country_abbreviation_link: string;
    country_abbreviation: string;
    country: string;
    country_slug: string;
    province_abbreviation_id: string;
    province_abbreviation_link: string;
    province_abbreviation: string;
    province: string;
    province_slug: string;
    search_match_score: number;
}