Building material suppliers: a permit application is a customer announcing themselves

Photo of Alex Wilkinson
Alex Wilkinson
CEO of Houski
2026-07-15

Somebody who pulls a building permit is about to spend money on materials. Not "considering a project someday." The drawings are done, the application fee is paid, and in a few weeks a truck is going to deliver lumber, concrete, drywall, windows, or roofing to that address. The only open question is whose truck.

Most suppliers find out about projects when the buyer walks in. The permit record exists weeks earlier, it is attached to a specific address, and it frequently says what the project is, what it is estimated to cost, and who is running it.

Houski carries permit records for more than 20 Canadian cities and more than 60 American cities, counties and states, plus whole countries such as France, Poland, Finland and South Korea, and cities and regions across Europe. Each permit is attached to the property record, so the permit and the property details come back in one query.

The volume is real

A large city files thousands of permit applications a year, and every one of them is an address where a project is in motion. Nobody can visit thousands of addresses. But a distributor can absolutely rank them, territory them, and put the top slice in front of an outside sales team every Monday morning.

Pulling the active projects

Add expand=permits to a property query and filter on the application date:

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('expand', 'permits');
    url.searchParams.set('expand_permit_application_date_gte', '2026-01-01');
    url.searchParams.set('expand_permit_type_eq', 'Building');
    url.searchParams.set('filter_expand_match', 'all');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('results_per_page', '25');
    url.searchParams.set('select', 'address,community,property_type,construction_year,interior_sq_m');

    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": 8.5,
  "data": [
    {
      "address": "435 Crimson Ridge Place NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 185.43292,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-11",
          "expand_permit_content": "Status: Completed|Issued date: 2026-08-26T00:00:00.000|Completed date: 2026-10-05T00:00:00.000|Estimated project cost: 3170.88|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: WESTERN ELEMENTS LANDSCAPING WORKS|contractor: WESTERN ELEMENTS LANDSCAPING WORKS|estimated project cost: 3170.88|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-15151",
          "expand_permit_type": "Building",
          "expand_permit_value": 3171,
          "property_id": "1209fe3057284c96"
        }
      ],
      "property_id": "1209fe3057284c96",
      "property_type": "House"
    },
    {
      "address": "24 Rowley Common NW",
      "community": "Haskayne",
      "construction_year": 2021,
      "interior_sq_m": 161.60349,
      "permits": [
        {
          "expand_permit_application_date": "2026-01-06",
          "expand_permit_content": "Status: Completed|Issued date: 2026-01-06T00:00:00.000|Completed date: 2026-02-17T00:00:00.000|Estimated project cost: 25142.8|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: REIMAGINE BUILDERS|contractor: REIMAGINE BUILDERS|estimated project cost: 25142.8|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-00151",
          "expand_permit_type": "Building",
          "expand_permit_value": 25143,
          "property_id": "12e3ffac04ec3562"
        }
      ],
      "property_id": "12e3ffac04ec3562",
      "property_type": "House"
    },
    {
      "address": "91 Royston Park NW",
      "community": "Haskayne",
      "construction_year": 2025,
      "interior_sq_m": 170.28986,
      "permits": [
        {
          "expand_permit_application_date": "2026-01-15",
          "expand_permit_content": "Status: Completed|Issued date: 2026-01-22T00:00:00.000|Completed date: 2026-01-26T00:00:00.000|Estimated project cost: 17000.0|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: N/A|contractor: YARD FORCE LANDSCAPING|estimated project cost: 17000.0|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-00634",
          "expand_permit_type": "Building",
          "expand_permit_value": 17000,
          "property_id": "145b4b70a1b793f6"
        }
      ],
      "property_id": "145b4b70a1b793f6",
      "property_type": "House"
    },
    {
      "address": "71 Royston Park NW",
      "community": "Haskayne",
      "construction_year": 2025,
      "interior_sq_m": 170.28986,
      "permits": [
        {
          "expand_permit_application_date": "2026-06-23",
          "expand_permit_content": "Status: Completed|Issued date: 2026-08-07T00:00:00.000|Completed date: 2026-08-24T00:00:00.000|Estimated project cost: 7046.4|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: RTR|contractor: SPUR RENOVATIONS|estimated project cost: 7046.4|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-11596",
          "expand_permit_type": "Building",
          "expand_permit_value": 7046,
          "property_id": "14c51adaf57c0fa3"
        }
      ],
      "property_id": "14c51adaf57c0fa3",
      "property_type": "House"
    },
    {
      "address": "68 Rowmont Drive NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 209.3088,
      "permits": [
        {
          "expand_permit_application_date": "2026-05-26",
          "expand_permit_content": "Status: Completed|Issued date: 2026-06-03T00:00:00.000|Completed date: 2026-07-13T00:00:00.000|Estimated project cost: 50920.32|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: GECKO PROJECTS|contractor: GECKO PROJECTS|estimated project cost: 50920.32|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-09215",
          "expand_permit_type": "Building",
          "expand_permit_value": 50920,
          "property_id": "15a459b39759b73c"
        }
      ],
      "property_id": "15a459b39759b73c",
      "property_type": "Land"
    },
    {
      "address": "80 Royston Garden NW",
      "community": "Haskayne",
      "construction_year": 2024,
      "interior_sq_m": 169.45374,
      "permits": [
        {
          "expand_permit_application_date": "2026-07-15",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-08-10T00:00:00.000|Completed date: N/A|Estimated project cost: 277610.25|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: MORRISON HOMES (CALGARY)|contractor: MORRISON HOMES (CALGARY)|estimated project cost: 277610.25|Total square feet affected: 1835.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-13275",
          "expand_permit_type": "Building",
          "expand_permit_value": 277610,
          "property_id": "17e671552bf12120"
        }
      ],
      "property_id": "17e671552bf12120",
      "property_type": "Land"
    },
    {
      "address": "27 Royston Park NW",
      "community": "Haskayne",
      "construction_year": 2025,
      "interior_sq_m": 170.28986,
      "permits": [
        {
          "expand_permit_application_date": "2026-06-17",
          "expand_permit_content": "Status: Issued Permit|Issued date: 2026-06-23T00:00:00.000|Completed date: N/A|Estimated project cost: 55549.44|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: N/A|contractor: N/A|estimated project cost: 55549.44|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-11139",
          "expand_permit_type": "Building",
          "expand_permit_value": 55549,
          "property_id": "1937026e92db962a"
        }
      ],
      "property_id": "1937026e92db962a",
      "property_type": "House"
    },
    {
      "address": "471 Rowmont Boulevard NW",
      "community": "Haskayne",
      "construction_year": 2024,
      "interior_sq_m": 146.22818,
      "permits": [
        {
          "expand_permit_application_date": "2026-03-23",
          "expand_permit_content": "Status: Completed|Issued date: 2026-04-06T00:00:00.000|Completed date: 2026-06-23T00:00:00.000|Estimated project cost: 46676.96|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: AMIRI HOMES|contractor: AMIRI HOMES|estimated project cost: 46676.96|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-04419",
          "expand_permit_type": "Building",
          "expand_permit_value": 46677,
          "property_id": "1b1ae1d17e4d2b8e"
        }
      ],
      "property_id": "1b1ae1d17e4d2b8e",
      "property_type": "Duplex"
    },
    {
      "address": "39 Rowmont View NW",
      "community": "Haskayne",
      "construction_year": 2024,
      "interior_sq_m": 169.45374,
      "permits": [
        {
          "expand_permit_application_date": "2026-06-04",
          "expand_permit_content": "Status: Issued Permit|Issued date: 2026-06-17T00:00:00.000|Completed date: N/A|Estimated project cost: 3288.32|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: N/A|contractor: N/A|estimated project cost: 3288.32|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-10092",
          "expand_permit_type": "Building",
          "expand_permit_value": 3288,
          "property_id": "1d2129fb67e2cd16"
        }
      ],
      "property_id": "1d2129fb67e2cd16",
      "property_type": "House"
    },
    {
      "address": "441 Rowmont Drive NW",
      "community": "Haskayne",
      "construction_year": 2022,
      "interior_sq_m": 209.3088,
      "permits": [
        {
          "expand_permit_application_date": "2026-06-02",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-06-22T00:00:00.000|Completed date: N/A|Estimated project cost: 526968.35|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: CRYSTAL CREEK HOMES|contractor: CRYSTAL CREEK HOMES|estimated project cost: 526968.35|Total square feet affected: 3164.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-09935",
          "expand_permit_type": "Building",
          "expand_permit_value": 526968,
          "property_id": "1de40cdfc771c19c"
        }
      ],
      "property_id": "1de40cdfc771c19c",
      "property_type": "Land"
    },
    {
      "address": "205 Haskayne Drive NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 144.09142,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-21",
          "expand_permit_content": "Status: Hold|Issued date: N/A|Completed date: N/A|Estimated project cost: 42064.0|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: N/A|contractor: N/A|estimated project cost: 42064.0|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-15925",
          "expand_permit_type": "Building",
          "expand_permit_value": 42064,
          "property_id": "1f30f9d4e226cedb"
        }
      ],
      "property_id": "1f30f9d4e226cedb",
      "property_type": "Land"
    },
    {
      "address": "245 Haskayne Drive NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 144.09142,
      "permits": [
        {
          "expand_permit_application_date": "2026-07-29",
          "expand_permit_content": "Status: Issued Permit|Issued date: 2026-08-13T00:00:00.000|Completed date: N/A|Estimated project cost: 60694.35|Permit class: Secondary Suites|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: N/A|contractor: N/A|estimated project cost: 60694.35|Total square feet affected: N/A|Housing units affected: 1",
          "expand_permit_id": "BP2026-14347",
          "expand_permit_type": "Building",
          "expand_permit_value": 60694,
          "property_id": "1ff05f56fb08411d"
        }
      ],
      "property_id": "1ff05f56fb08411d",
      "property_type": "Land"
    },
    {
      "address": "7 Royston Park NW",
      "community": "Haskayne",
      "construction_year": 2025,
      "interior_sq_m": 170.28986,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-08",
          "expand_permit_content": "Status: Completed|Issued date: 2026-09-03T00:00:00.000|Completed date: 2026-10-01T00:00:00.000|Estimated project cost: 74065.92|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: N/A|contractor: N/A|estimated project cost: 74065.92|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-14988",
          "expand_permit_type": "Building",
          "expand_permit_value": 74066,
          "property_id": "2168397c7b31c82"
        }
      ],
      "property_id": "2168397c7b31c82",
      "property_type": "House"
    },
    {
      "address": "234 Haskayne Drive NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 144.09142,
      "permits": [
        {
          "expand_permit_application_date": "2026-07-13",
          "expand_permit_content": "Status: Completed|Issued date: 2026-08-07T00:00:00.000|Completed date: 2026-08-19T00:00:00.000|Estimated project cost: 38576.0|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: N/A|contractor: KARTAR CONSTRUCTION|estimated project cost: 38576.0|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-13012",
          "expand_permit_type": "Building",
          "expand_permit_value": 38576,
          "property_id": "227a61ef764ad2e8"
        }
      ],
      "property_id": "227a61ef764ad2e8",
      "property_type": "Land"
    },
    {
      "address": "285 Rowmont Drive NW",
      "community": "Haskayne",
      "construction_year": 2022,
      "interior_sq_m": 209.3088,
      "permits": [
        {
          "expand_permit_application_date": "2026-02-19",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-03-05T00:00:00.000|Completed date: N/A|Estimated project cost: 728511.44|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: BAYWEST HOMES|contractor: BAYWEST HOMES|estimated project cost: 728511.44|Total square feet affected: 4170.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-02496",
          "expand_permit_type": "Building",
          "expand_permit_value": 728511,
          "property_id": "22b67ca52e54c6f2"
        }
      ],
      "property_id": "22b67ca52e54c6f2",
      "property_type": "Land"
    },
    {
      "address": "107 Royston Way NW",
      "community": "Haskayne",
      "construction_year": 2025,
      "interior_sq_m": 169.26793,
      "permits": [
        {
          "expand_permit_application_date": "2026-09-14",
          "expand_permit_content": "Status: Issued Permit|Issued date: 2026-10-16T00:00:00.000|Completed date: N/A|Estimated project cost: 50920.32|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: KSQUARE DESIGN STUDIO|contractor: N/A|estimated project cost: 50920.32|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-17504",
          "expand_permit_type": "Building",
          "expand_permit_value": 50920,
          "property_id": "23b919ff876b3b8a"
        }
      ],
      "property_id": "23b919ff876b3b8a",
      "property_type": "Duplex"
    },
    {
      "address": "177 Haskayne Drive NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 144.09142,
      "permits": [
        {
          "expand_permit_application_date": "2026-04-20",
          "expand_permit_content": "Status: Completed|Issued date: 2026-05-15T00:00:00.000|Completed date: 2026-09-01T00:00:00.000|Estimated project cost: 50920.32|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: AMIRI HOMES|contractor: N/A|estimated project cost: 50920.32|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-06317",
          "expand_permit_type": "Building",
          "expand_permit_value": 50920,
          "property_id": "244183b9f159655e"
        }
      ],
      "property_id": "244183b9f159655e",
      "property_type": "Land"
    },
    {
      "address": "281 Rowmont Drive NW",
      "community": "Haskayne",
      "construction_year": 2022,
      "interior_sq_m": 209.3088,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-13",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-09-25T00:00:00.000|Completed date: N/A|Estimated project cost: 326105.52|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: CRYSTAL CREEK HOMES|contractor: CRYSTAL CREEK HOMES|estimated project cost: 326105.52|Total square feet affected: 1680.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-15365",
          "expand_permit_type": "Building",
          "expand_permit_value": 326106,
          "property_id": "262f1a53b817e3bd"
        }
      ],
      "property_id": "262f1a53b817e3bd",
      "property_type": "Land"
    },
    {
      "address": "63 Royston Way NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 169.45374,
      "permits": [
        {
          "expand_permit_application_date": "2026-04-18",
          "expand_permit_content": "Status: Completed|Issued date: 2026-05-14T00:00:00.000|Completed date: 2026-05-26T00:00:00.000|Estimated project cost: 9894.32|Permit class: Single Family|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: SEVEN DAY PERMITS|contractor: MAVERICK DECKS / BNB BARRELS|estimated project cost: 9894.32|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-06265",
          "expand_permit_type": "Building",
          "expand_permit_value": 9894,
          "property_id": "2903c611dea4afb1"
        }
      ],
      "property_id": "2903c611dea4afb1",
      "property_type": "Land"
    },
    {
      "address": "14 Crimson Ridge Rise NW",
      "community": "Haskayne",
      "construction_year": 2024,
      "interior_sq_m": 169.45374,
      "permits": [
        {
          "expand_permit_application_date": "2026-07-21",
          "expand_permit_content": "Status: Pre Board Phase|Issued date: 2026-08-28T00:00:00.000|Completed date: N/A|Estimated project cost: 500347.74|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: LUPI LUXURY HOMES|contractor: LUPI LUXURY HOMES|estimated project cost: 500347.74|Total square feet affected: 2833.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-13636",
          "expand_permit_type": "Building",
          "expand_permit_value": 500348,
          "property_id": "2a2dcad4d16445cf"
        }
      ],
      "property_id": "2a2dcad4d16445cf",
      "property_type": "Land"
    },
    {
      "address": "260 Crimson Ridge Place NW",
      "community": "Haskayne",
      "construction_year": 2024,
      "interior_sq_m": 185.43292,
      "permits": [
        {
          "expand_permit_application_date": "2026-07-29",
          "expand_permit_content": "Status: Issued Permit|Issued date: 2026-09-17T00:00:00.000|Completed date: N/A|Estimated project cost: 65497.5|Permit class: Secondary Suites|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: Alteration|Work class group: Improvement|Work class mapped: Existing|applicant: CONTINENT CONSTRUCTIONS|contractor: CHANDAN RENOVATIONS|estimated project cost: 65497.5|Total square feet affected: N/A|Housing units affected: 1",
          "expand_permit_id": "BP2026-14339",
          "expand_permit_type": "Building",
          "expand_permit_value": 65498,
          "property_id": "2a7b500f3630ba6c"
        }
      ],
      "property_id": "2a7b500f3630ba6c",
      "property_type": "House"
    },
    {
      "address": "253 Rowmont Drive NW",
      "community": "Haskayne",
      "construction_year": 2022,
      "interior_sq_m": 209.3088,
      "permits": [
        {
          "expand_permit_application_date": "2026-02-20",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-03-13T00:00:00.000|Completed date: N/A|Estimated project cost: 481767.06|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: BAYWEST HOMES|contractor: BAYWEST HOMES|estimated project cost: 481767.06|Total square feet affected: 2624.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-02581",
          "expand_permit_type": "Building",
          "expand_permit_value": 481767,
          "property_id": "2ad644befe81d5bd"
        }
      ],
      "property_id": "2ad644befe81d5bd",
      "property_type": "Land"
    },
    {
      "address": "99 Royston Gr NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 169.45374,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-19",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-09-11T00:00:00.000|Completed date: N/A|Estimated project cost: 304170.65|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: BROOKFIELD RESIDENTIAL (ALBERTA)|contractor: BROOKFIELD RESIDENTIAL (ALBERTA)|estimated project cost: 304170.65|Total square feet affected: 1827.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-15773",
          "expand_permit_type": "Building",
          "expand_permit_value": 304171,
          "property_id": "2ccf1cb4daae2fcb"
        }
      ],
      "property_id": "2ccf1cb4daae2fcb",
      "property_type": "Land"
    },
    {
      "address": "580 Rowmont Boulevard NW",
      "community": "Haskayne",
      "construction_year": 2024,
      "interior_sq_m": 169.73244,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-10",
          "expand_permit_content": "Status: Issued Permit|Issued date: 2026-09-25T00:00:00.000|Completed date: N/A|Estimated project cost: 48605.76|Permit class: Garage|Permit type: Residential Improvement Project|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: SINGH GEOMATICS & ENGINEERING|contractor: N/A|estimated project cost: 48605.76|Total square feet affected: N/A|Housing units affected: 0",
          "expand_permit_id": "BP2026-15073",
          "expand_permit_type": "Building",
          "expand_permit_value": 48606,
          "property_id": "2d01b63b855d4843"
        }
      ],
      "property_id": "2d01b63b855d4843",
      "property_type": "Duplex"
    },
    {
      "address": "486 Rochester Terrace NW",
      "community": "Haskayne",
      "construction_year": 2023,
      "interior_sq_m": 169.45374,
      "permits": [
        {
          "expand_permit_application_date": "2026-08-26",
          "expand_permit_content": "Status: Pre Backfill Phase|Issued date: 2026-09-28T00:00:00.000|Completed date: N/A|Estimated project cost: 508393.41|Permit class: Single Family|Permit type: Single Construction Permit|Permit type mapped: Building|Work class: New|Work class group: New|Work class mapped: New|applicant: MORRISON HOMES (CALGARY)|contractor: MORRISON HOMES (CALGARY)|estimated project cost: 508393.41|Total square feet affected: 2942.0|Housing units affected: 1",
          "expand_permit_id": "BP2026-16329",
          "expand_permit_type": "Building",
          "expand_permit_value": 508393,
          "property_id": "2d25f26b0122559e"
        }
      ],
      "property_id": "2d25f26b0122559e",
      "property_type": "Land"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 513
  },
  "price_quote": false,
  "result_total": 12825,
  "time_ms": 624,
  "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"
  }
}

Each row gives you the property itself plus the Calgary building permit applications filed this year and attached to it.

The interesting part is expand_permit_content. It is a text field and its exact format varies by city, but for a Calgary building permit it typically carries the status, the work class, the estimated project cost, the square footage affected, and the applicant. Where a permit states the declared value of the whole job, expand_permit_value carries it as a number. A retaining wall alteration with an estimated project cost of 1.2 million dollars reads very differently from a basement development at forty thousand, and you can route them to different reps, or different product lines, accordingly.

Three permit types, three different sales motions

The expand_permit_type field is deliberately coarse. Most records are one of three types, and each one is a different kind of lead.

Building is the direct one. Construction or renovation is approved or in review at this address. This is the materials sale, and the application date tells you where they are in the timeline. A permit filed last week is a project still sourcing. A permit filed in January is probably framed by now, which moves the conversation from lumber to finishes.

Development is the early signal. A development permit precedes the building permit, sometimes by many months. This one is filed while the project is still on paper, which is exactly when a supplier who shows up with pricing gets designed in rather than shopped afterward.

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('expand', 'permits');
    url.searchParams.set('expand_permit_application_date_gte', '2026-01-01');
    url.searchParams.set('expand_permit_type_eq', 'Development');
    url.searchParams.set('filter_expand_match', 'all');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('results_per_page', '25');
    url.searchParams.set('select', 'address,community,property_type');

    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": 3.7999995,
  "data": [
    {
      "address": "309 Rowmont Drive NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-09-09",
          "expand_permit_content": "Status: Released|Category: Relaxation - Existing - Compliance Follow-Up|Description: RELAXATION: AIR CONDITIONING EQUIPMENT (EXISTING) - PROJECTION INTO SIDE SETBACK|Proposed use code: C1045|Proposed use description: AIR CONDITIONING EQUIPMENT|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-09-11|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-05215",
          "expand_permit_type": "Development",
          "property_id": "12b2d696502ebf7f"
        }
      ],
      "property_id": "12b2d696502ebf7f",
      "property_type": "Land"
    },
    {
      "address": "135 Royston Way NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-27",
          "expand_permit_content": "Status: Released|Category: Home Occupation Class 2|Description: TEMPORARY USE: HOME OCCUPATION - CLASS 2 (HAIR STYLING - 18 MONTHS)|Proposed use code: C1730|Proposed use description: HOME OCCUPATION - CLASS 2|Permitted/discretionary: Discretionary|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-08-27|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-04338",
          "expand_permit_type": "Development",
          "property_id": "328f01a3ecba8cd3"
        }
      ],
      "property_id": "328f01a3ecba8cd3",
      "property_type": "Land"
    },
    {
      "address": "92 Rowmont View NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-04",
          "expand_permit_content": "Status: Released|Category: Relaxation - New - Residential|Description: RELAXATION: DECK - PROJECTION INTO REAR SETBACK|Proposed use code: C1455|Proposed use description: DECK|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-09-25|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-03290",
          "expand_permit_type": "Development",
          "property_id": "5ee85ddfa40d16b1"
        }
      ],
      "property_id": "5ee85ddfa40d16b1",
      "property_type": "House"
    },
    {
      "address": "85 Rowmont Common NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-08-25",
          "expand_permit_content": "Status: Hold|Category: Relaxation - New - Residential|Description: RELAXATION: DRIVEWAY - WIDTH|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-04927",
          "expand_permit_type": "Development",
          "property_id": "81a73a9f94d7ad05"
        }
      ],
      "property_id": "81a73a9f94d7ad05",
      "property_type": "House"
    },
    {
      "address": "233 Rowmont Drive NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-02",
          "expand_permit_content": "Status: Released|Category: Relaxation - Existing - Residential - FastTrack - Comp Follow-Up|Description: RELAXATION: WINDOW WELLS (EXISTING) - PROJECTION INTO SIDE SETBACK|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-06-02|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-03217",
          "expand_permit_type": "Development",
          "property_id": "8292375ddbb4fc36"
        },
        {
          "expand_permit_application_date": "2026-06-02",
          "expand_permit_content": "Status: Cancelled|Category: Relaxation - Existing - Residential - FastTrack - Comp Follow-Up|Description: RELAXATION: WINDOW WELLS (EXISTING) - PROJECTION INTO SIDE SETBACK|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Permitted|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-06-05|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-03215",
          "expand_permit_type": "Development",
          "property_id": "8292375ddbb4fc36"
        }
      ],
      "property_id": "8292375ddbb4fc36",
      "property_type": "House"
    },
    {
      "address": "664 Rowmont Boulevard NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-09-30",
          "expand_permit_content": "Status: Under Review|Category: Residential - New Single / Semi / Duplex|Description: NEW: SINGLE DETACHED DWELLING|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Discretionary|Land use district: R-Gm|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-05584",
          "expand_permit_type": "Development",
          "property_id": "8c4702e357e72db7"
        }
      ],
      "property_id": "8c4702e357e72db7",
      "property_type": "Land"
    },
    {
      "address": "353 Rowmont Drive NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-03",
          "expand_permit_content": "Status: Released|Category: Relaxation - Existing - Residential - FastTrack - Comp Follow-Up|Description: RELAXATION: AIR CONDITIONING EQUIPMENT (EXISTING) - PROJECTION INTO SIDE SETBACK, DECK (EXISTING) - PROJECTION INTO SIDE & REAR SETBACK|Proposed use code: C1045; C1455|Proposed use description: AIR CONDITIONING EQUIPMENT; DECK|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-03-19|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00591",
          "expand_permit_type": "Development",
          "property_id": "98b9a8a142bf2a00"
        }
      ],
      "property_id": "98b9a8a142bf2a00",
      "property_type": "Land"
    },
    {
      "address": "93 Rowmont Common NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-08-13",
          "expand_permit_content": "Status: Cancelled|Category: Relaxation - New - Residential|Description: RELAXATION: DRIVEWAY - WIDTH|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-10-01|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-04695",
          "expand_permit_type": "Development",
          "property_id": "9b82895f9c0a69c4"
        }
      ],
      "property_id": "9b82895f9c0a69c4",
      "property_type": "House"
    },
    {
      "address": "237 Royston Manor NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-27",
          "expand_permit_content": "Status: Hold|Category: Residential - Multi-Family|Description: NEW: MULTI-RESIDENTIAL DEVELOPMENT (16 PHASES, 16 BUILDINGS)|Proposed use code: C2050|Proposed use description: MULTI-RESIDENTIAL DEVELOPMENT|Permitted/discretionary: Discretionary|Land use district: M-G|Land use district description: Multi-Residential - At Grade Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-04370",
          "expand_permit_type": "Development",
          "property_id": "b5833822fcd7581c"
        }
      ],
      "property_id": "b5833822fcd7581c",
      "property_type": "Land"
    },
    {
      "address": "253 Crimson Ridge Place NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-04",
          "expand_permit_content": "Status: Cancelled|Category: Relaxation - New - Residential|Description: RELAXATION: DRIVEWAY (NEW) - WIDTH|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-07-02|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-03296",
          "expand_permit_type": "Development",
          "property_id": "b793c0f1661fae26"
        }
      ],
      "property_id": "b793c0f1661fae26",
      "property_type": "House"
    },
    {
      "address": "61 Rowmont He NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-24",
          "expand_permit_content": "Status: Cancelled|Category: Relaxation - Existing - Residential - FastTrack - Comp Follow-Up|Description: RELAXATION: ACCESSORY RESIDENTIAL BUILDING (EXISTING PERGOLA) - BUILDING SETBACK FROM SIDE PROPERTY LINE|Proposed use code: C1020|Proposed use description: ACCESSORY RESIDENTIAL BUILDING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-07-29|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-04316",
          "expand_permit_type": "Development",
          "property_id": "bf81bae71d2e4c1f"
        }
      ],
      "property_id": "bf81bae71d2e4c1f",
      "property_type": "House"
    },
    {
      "address": "36 Rowley Rise NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-09-03",
          "expand_permit_content": "Status: Released|Category: Relaxation - Existing - Accessory Building|Description: RELAXATION: ACCESSORY RESIDENTIAL BUILDING (EXISTING PERGOLA) - SEPARATION FROM MAIN RESIDENTIAL BUILDING|Proposed use code: C1020|Proposed use description: ACCESSORY RESIDENTIAL BUILDING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-09-17|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-05145",
          "expand_permit_type": "Development",
          "property_id": "c899169af06e2c0b"
        }
      ],
      "property_id": "c899169af06e2c0b",
      "property_type": "House"
    },
    {
      "address": "125 Royston Grove NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-09",
          "expand_permit_content": "Status: Pending Release|Category: Residential - Multi-Family|Description: NEW: MULTI-RESIDENTIAL DEVELOPMENT (16 PHASES, 16 BUILDINGS)|Proposed use code: C2050|Proposed use description: MULTI-RESIDENTIAL DEVELOPMENT|Permitted/discretionary: Discretionary|Land use district: M-G|Land use district description: Multi-Residential - At Grade Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-10-05|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00690",
          "expand_permit_type": "Development",
          "property_id": "db45a3e654ec1a95"
        }
      ],
      "property_id": "db45a3e654ec1a95",
      "property_type": "Land"
    },
    {
      "address": "345 Rowmont Drive NW",
      "community": "Haskayne",
      "permits": [
        {
          "expand_permit_application_date": "2026-01-14",
          "expand_permit_content": "Status: Released|Category: Relaxation - Existing - Compliance Follow-Up|Description: RELAXATION: AIR CONDITIONING EQUIPMENT (EXISTING) - PROJECTION INTO SIDE SETBACK|Proposed use code: C1045|Proposed use description: AIR CONDITIONING EQUIPMENT|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-G|Land use district description: Residential - Low Density Mixed Housing|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-01-23|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00205",
          "expand_permit_type": "Development",
          "property_id": "e9a146cb919e03a6"
        }
      ],
      "property_id": "e9a146cb919e03a6",
      "property_type": "Land"
    },
    {
      "address": "59 Hogarth Crescent SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-04-20",
          "expand_permit_content": "Status: Cancelled|Category: Relaxation - Existing - Residential - FastTrack - Comp Follow-Up|Description: RELAXATION: SINGLE DETACHED DWELLING (EXISTING) - BUILDING SETBACK FROM SIDE PROPERTY LINE, EAVES (EXISTING) - PROJECTION INTO SIDE SETBACK  |Proposed use code: C2730; C9999|Proposed use description: SINGLE DETACHED DWELLING; OTHER|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-06-05|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-02292",
          "expand_permit_type": "Development",
          "property_id": "1276368deae3eaba"
        }
      ],
      "property_id": "1276368deae3eaba",
      "property_type": "House"
    },
    {
      "address": "4 8989 MacLeod Trail SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-04-17",
          "expand_permit_content": "Status: Released|Category: Signs - Permitted Use|Description: NEW: SIGN - CLASS B (FASCIA SIGN)|Proposed use code: C2680|Proposed use description: SIGN - CLASS B|Permitted/discretionary: Permitted|Land use district: C-COR3 f1.0h12|Land use district description: Commercial - Corridor 3|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-04-28|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-02222",
          "expand_permit_type": "Development",
          "property_id": "1d6de830b4f25674"
        }
      ],
      "property_id": "1d6de830b4f25674",
      "property_type": "Commercial"
    },
    {
      "address": "96 Hanover Road SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-23",
          "expand_permit_content": "Status: Released|Category: Residential - Additions over 10 sq metres|Description: ADDITION: SINGLE DETACHED DWELLING (MAIN FLOOR - REAR, ATTACHED GARAGE, 2ND FLOOR - REAR)|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-06-05|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00953",
          "expand_permit_type": "Development",
          "property_id": "1f6e26c1b0e325c5"
        }
      ],
      "property_id": "1f6e26c1b0e325c5",
      "property_type": "House"
    },
    {
      "address": "79 Hanover Road SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-04-28",
          "expand_permit_content": "Status: Cancelled|Category: Residential - Additions over 10 sq metres|Description: ADDITION: SINGLE DETACHED DWELLING (MAIN FLOOR - FRONT, FRONT PORCH)|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-05-07|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-02458",
          "expand_permit_type": "Development",
          "property_id": "2c47ac1f409924b9"
        },
        {
          "expand_permit_application_date": "2026-03-26",
          "expand_permit_content": "Status: Released|Category: Residential - Additions over 10 sq metres|Description: ADDITION: SINGLE DETACHED DWELLING (MAIN FLOOR - FRONT, FRONT PORCH)|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-05-01|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-01726",
          "expand_permit_type": "Development",
          "property_id": "2c47ac1f409924b9"
        }
      ],
      "property_id": "2c47ac1f409924b9",
      "property_type": "House"
    },
    {
      "address": "228 Havenhurst Crescent SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-03-23",
          "expand_permit_content": "Status: Released|Category: Residential - Additions over 10 sq metres|Description: ADDITION: SINGLE DETACHED DWELLING (MAIN FLOOR - REAR, 2ND FLOOR - FRONT AND REAR); SECONDARY SUITE (MAIN AND 2ND FLOOR)|Proposed use code: C2626; C2730|Proposed use description: SECONDARY SUITE; SINGLE DETACHED DWELLING|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-06-08|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-01649",
          "expand_permit_type": "Development",
          "property_id": "2e3884739ea3c2b3"
        }
      ],
      "property_id": "2e3884739ea3c2b3",
      "property_type": "House"
    },
    {
      "address": "9631 MacLeod Trail SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-21",
          "expand_permit_content": "Status: Released|Category: Change of Use - With Change to Site Plan|Description: CHANGES TO SITE PLAN: MULTI-USE COMMERCIAL (WASTE AND RECYCLING ENCLOSURE)|Proposed use code: C9999|Proposed use description: OTHER|Permitted/discretionary: Discretionary|Land use district: C-COR3 f1.0h12|Land use district description: Commercial - Corridor 3|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-04-13|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00930",
          "expand_permit_type": "Development",
          "property_id": "39f7f96e77c0fd78"
        }
      ],
      "property_id": "39f7f96e77c0fd78",
      "property_type": "Commercial"
    },
    {
      "address": "12 Hyslop Drive SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-03-03",
          "expand_permit_content": "Status: Released|Category: Residential - Additions over 10 sq metres|Description: ADDITION: DWELLING UNIT (MAIN FLOOR - FRONT AND REAR)|Proposed use code: C1540|Proposed use description: DWELLING UNIT|Permitted/discretionary: Permitted|Land use district: H-GO|Land use district description: Housing - Grade Oriented District (H-GO)|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-04-09|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-01142",
          "expand_permit_type": "Development",
          "property_id": "3ac0cd5629648df9"
        }
      ],
      "property_id": "3ac0cd5629648df9",
      "property_type": "House"
    },
    {
      "address": "67 Hooke Road SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-09-01",
          "expand_permit_content": "Status: Released|Category: Relaxation - New - Accessory Building|Description: NEW: ACCESSORY RESIDENTIAL BUILDING (GARAGE) - BUILDING COVERAGE, BUILDING HEIGHT AND EAVELINE HEIGHT|Proposed use code: C1020|Proposed use description: ACCESSORY RESIDENTIAL BUILDING|Permitted/discretionary: Permitted with a Relaxation|Land use district: R-C1|Land use district description: Residential - Contextual One Dwelling|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-10-09|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-05087",
          "expand_permit_type": "Development",
          "property_id": "3e9c9ec828d7cafd"
        }
      ],
      "property_id": "3e9c9ec828d7cafd",
      "property_type": "House"
    },
    {
      "address": "52 Holden Road SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-01-19",
          "expand_permit_content": "Status: Cancelled|Category: Home Occupation Class 2|Description: TEMPORARY USE: HOME OCCUPATION - CLASS 2 (MASSAGE THERAPY)|Proposed use code: C1730|Proposed use description: HOME OCCUPATION - CLASS 2|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: N/A|Decision by: N/A|Decision date: N/A|Canceled/refused date: 2026-06-08|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00296",
          "expand_permit_type": "Development",
          "property_id": "48594d61fd109ae4"
        },
        {
          "expand_permit_application_date": "2026-01-19",
          "expand_permit_content": "Status: Released|Category: Home Occupation Class 2|Description: TEMPORARY USE: HOME OCCUPATION - CLASS 2 (MASSAGE THERAPY - 3 YEARS)|Proposed use code: C1730|Proposed use description: HOME OCCUPATION - CLASS 2|Permitted/discretionary: Discretionary|Land use district: R-CG|Land use district description: Residential - Grade-Oriented Infill|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-02-18|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-00293",
          "expand_permit_type": "Development",
          "property_id": "48594d61fd109ae4"
        }
      ],
      "property_id": "48594d61fd109ae4",
      "property_type": "House"
    },
    {
      "address": "1008 89 Avenue SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-03-04",
          "expand_permit_content": "Status: Pending Release|Category: Residential - Multi-Family|Description: NEW: DWELLING UNITS (2 BUILDINGS), SECONDARY SUITES (4 SUITES)|Proposed use code: C1020; C1540; C2626|Proposed use description: ACCESSORY RESIDENTIAL BUILDING; DWELLING UNIT; SECONDARY SUITE|Permitted/discretionary: Permitted|Land use district: H-GO|Land use district description: Housing - Grade Oriented District (H-GO)|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-07-06|Canceled/refused date: N/A|SDAB Number: SDAB2026-0121|SDAB hearing date: 2026-08-25|SDAB Decision: Appeal Withdrawn  -  Application Approved|SDAB decision date: 2026-08-31",
          "expand_permit_id": "DP2026-01169",
          "expand_permit_type": "Development",
          "property_id": "49d5506763db258"
        }
      ],
      "property_id": "49d5506763db258",
      "property_type": "House"
    },
    {
      "address": "132 Haysboro Crescent SW",
      "community": "Haysboro",
      "permits": [
        {
          "expand_permit_application_date": "2026-09-15",
          "expand_permit_content": "Status: In Advertising|Category: Residential - Additions over 10 sq metres|Description: ADDITION: SINGLE DETACHED DWELLING (MAIN FLOOR - FRONT, SIDE AND REAR ATTACHED GARAGE)|Proposed use code: C2730|Proposed use description: SINGLE DETACHED DWELLING|Permitted/discretionary: Discretionary|Land use district: R-C1|Land use district description: Residential - Contextual One Dwelling|Concurrent LOC: N/A|Decision: Approval|Decision by: Development Authority|Decision date: 2026-11-06|Canceled/refused date: N/A|SDAB Number: N/A|SDAB hearing date: N/A|SDAB Decision: N/A|SDAB decision date: N/A",
          "expand_permit_id": "DP2026-05287",
          "expand_permit_type": "Development",
          "property_id": "4e68e8fd577ce34a"
        }
      ],
      "property_id": "4e68e8fd577ce34a",
      "property_type": "House"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 169
  },
  "price_quote": false,
  "result_total": 4217,
  "time_ms": 362,
  "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"
  }
}

Those Calgary properties sit at that earlier stage.

Business license is the fit-out lead. A new business licensing a premises usually means renovation of that premises (flooring, lighting, millwork, signage, paint). If you sell to commercial trades, a fresh license at a commercial address is a project that has not hit the building permit stage yet.

The applicant is often the better lead than the address

On a lot of permits, the applicant named in the content is not the homeowner. It is a contractor or a builder. For a supplier, that is not a problem, that is the actual prize. A homeowner buys materials once. A contractor who shows up on nine permits this quarter buys materials every week, and the permit data just told you who is busy in your delivery area and what kind of work they are doing.

Group the permit content by applicant and you have a ranked list of the most active accounts you do not have yet. Contractor, builder and business names stay in the text as issued. The names and contact details of private individuals are removed and marked as removed.

What this data will not do

It covers the places that publish permits. Outside them there are no permit records, and a query filtered on permits returns nothing. Coverage by permit type also varies (Vancouver, for instance, carries building permits and business licenses but no separate development permit stream), so check your city and type before you build the workflow around it.

The content format is not uniform. Each city structures its permit text differently. Estimated project cost shows up on Calgary building permits, but do not assume every record everywhere has it. Build your parsing to degrade gracefully.

A permit is not a purchase order. Some applications get cancelled or refused, and the status field in the content says so. Filter those out before anyone drives anywhere.

Timing is approximate. The application date is a fact. When the drywall order lands is an inference. Treat the data as a prioritized call list, not a delivery schedule.

The pre-built version

The datasets page has Recent renovation or addition permits and Recent demolition permits already assembled, and Construction & trades workforce lists building supply distribution among its uses. Each updates daily.

If you want it shaped to your business (your delivery radius, your product categories mapped to work classes, applicants deduplicated and ranked by permit count) our data team builds custom datasets on your schedule. Ask for one.

Getting started

  1. Sign up for API access
  2. Pull last month's permits for your city with the query above
  3. Sort by what the content tells you: project cost, work class, applicant
  4. Hand your reps the top fifty and measure what a permit-sourced lead closes at versus a walk-in
  5. Repeat weekly, as the list refreshes when new applications land

Most fields cost a tenth of a cent per field per property, so a full month of permit-active addresses in your city with property details attached costs a few dollars. Details on the pricing page and the expand documentation.


The permit does not tell you what to quote. It tells you which addresses have a project underway and who is running it, which is the part of the sale you cannot get from anyone who walks in the door. Explore the API or browse the datasets.