!

Jobsite services: the permit tells you a construction site is about to exist

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

If you rent bins, fencing, portable toilets, scaffolding, or equipment - or you sell site security, traffic control, or post-construction cleaning - your customer is not a building. Your customer is a construction site, a thing that exists for a few months at an address and then disappears. The whole game is knowing where sites are about to appear, and the permit record is that knowledge, published weeks before the first truck arrives.

We wrote separately about permits as a lead source for building material suppliers. Site services are a different sale with the same trigger, and in some ways a better one: materials get spec'd by the builder, but the bin, the fence, and the toilet get ordered by whoever picks up the phone first, usually on price and availability. Being first is most of the win, and the permit feed is how you are first.

The pull

Houski carries building permits for Calgary, Edmonton, Toronto, and Vancouver, attached to property records. One query returns every property in a city with recent building permit applications:

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', 'toronto');
    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', 'on');
    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": false,
  "cost_cents": 1.3799999952316284,
  "data": [
    {
      "address": "475 Yonge Street",
      "community": "Church-Yonge Corridor",
      "permits": [
        {
          "expand_permit_application_date": "2026-04-21",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Pool Room (Hotel)|Demolition: 0.0|Description: Proposal for interior alterations to infill pool|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 50000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 55.0|Issued date: 2026-07-07|Mercantile: 0.0|Permit type: Building Additions/Alterations|Postal code: M4Y|Proposed use: Exercise Room (Hotel)|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Motel/Hotel|Ward grid: S1326|Work: Interior Alterations",
          "expand_permit_id": "26 147564 BLD",
          "expand_permit_type": "Building",
          "property_id": "100f1298b7b85c55"
        }
      ],
      "property_id": "100f1298b7b85c55",
      "property_type": "Apartment"
    },
    {
      "address": "47 Pannahill Road",
      "community": "Bathurst Manor",
      "permits": [
        {
          "expand_permit_application_date": "2026-01-20",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd Detached|Demolition: 0.0|Description: Revision 02:  New window added on the garage/ 3 windows size adjusted / Bathroom and closet layout modified.Revision 01: Proposal to revise foundation and structural framing.Proposal to add an addition and create second unit.|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 0|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-02-10|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M3H|Proposed use: 2 Unit -Detached|Residential: 0.0|Revision number: 2|Status: Revision Issued|Structure type: 2 Unit - Detached|Ward grid: N0624|Work: Multiple Projects",
          "expand_permit_id": "24 253577 BLD",
          "expand_permit_type": "Building",
          "property_id": "1013cc50950f7416"
        }
      ],
      "property_id": "1013cc50950f7416",
      "property_type": "House"
    },
    {
      "address": "648 Willard Avenue",
      "community": "Runnymede-Bloor West Village",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-10",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Single Family Dwelling|Demolition: 0.0|Description: Install sanitary line backwater valve|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-07-13|Mercantile: 0.0|Permit type: Drain and Site Service|Postal code: M6S|Proposed use: Single Family Dwelling|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Semi-Detached|Ward grid: S0422|Work: Back Water Valve (Sewer only)",
          "expand_permit_id": "26 199502 DRN",
          "expand_permit_type": "Building",
          "property_id": "101b90375e228b48"
        }
      ],
      "property_id": "101b90375e228b48",
      "property_type": "House"
    },
    {
      "address": "124 Wintermute Boulevard",
      "community": "Steeles",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-26",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd Detached|Demolition: 0.0|Description: Installation of Rooftop Solar PV System|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 18750|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-06-30|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M1W|Proposed use: Sfd Detached|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: E2222|Work: Other(SR)",
          "expand_permit_id": "26 191856 BLD",
          "expand_permit_type": "Building",
          "property_id": "101e96a2ca5b594c"
        }
      ],
      "property_id": "101e96a2ca5b594c",
      "property_type": "House"
    },
    {
      "address": "3550 Pharmacy Avenue",
      "community": "Steeles",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-17",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Vacant|Demolition: 0.0|Description: Plumbing  - Construction of a new single storey industrial shell building, with accessory office components|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Plumbing(PS)|Postal code: M1W|Proposed use: Industrial Warehouse|Residential: 0.0|Revision number: 0|Status: Application Acceptable|Structure type: Industrial|Ward grid: E2221|Work: Building Permit Related(PS)",
          "expand_permit_id": "26 204107 PLB",
          "expand_permit_type": "Building",
          "property_id": "102160b414812578"
        },
        {
          "expand_permit_application_date": "2026-07-27",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Vacant|Demolition: 0.0|Description: Drain - Construction of a new single storey industrial shell building, with accessory office components|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 30000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Drain and Site Service|Postal code: M1W|Proposed use: Industrial Warehouse|Residential: 0.0|Revision number: 0|Status: Application Acceptable|Structure type: Industrial|Ward grid: E2221|Work: Site Service",
          "expand_permit_id": "26 204107 STS",
          "expand_permit_type": "Building",
          "property_id": "102160b414812578"
        },
        {
          "expand_permit_application_date": "2026-07-17",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Vacant|Demolition: 0.0|Description: HVAC - Construction of a new single storey industrial shell building, with accessory office components|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Mechanical(MS)|Postal code: M1W|Proposed use: Industrial Warehouse|Residential: 0.0|Revision number: 0|Status: Application Acceptable|Structure type: Industrial|Ward grid: E2221|Work: Building Permit Related(MS)",
          "expand_permit_id": "26 204107 HVA",
          "expand_permit_type": "Building",
          "property_id": "102160b414812578"
        },
        {
          "expand_permit_application_date": "2026-07-17",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Vacant|Demolition: 0.0|Description: Construction of a new single storey industrial shell building, with accessory office components|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 30000000|Industrial: 23508.68|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: New Building|Postal code: M1W|Proposed use: Industrial Warehouse|Residential: 0.0|Revision number: 0|Status: Application Acceptable|Structure type: Industrial|Ward grid: E2221|Work: New Building",
          "expand_permit_id": "26 204107 BLD",
          "expand_permit_type": "Building",
          "property_id": "102160b414812578"
        }
      ],
      "property_id": "102160b414812578",
      "property_type": "House"
    },
    {
      "address": "5540 Lawrence Avenue E",
      "community": "Centennial Scarborough",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-04",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: 2026-06-19|Current use: Bank|Demolition: 0.0|Description: Proposal for replacing the current 2\" backflow preventer for premise isolation that is broken with a new device.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 7500|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-06-12|Mercantile: 0.0|Permit type: Plumbing(PS)|Postal code: M1C|Proposed use: Bank|Residential: 0.0|Revision number: 00|Status: Closed|Structure type: Bank|Ward grid: E2535|Work:  Backflow Prevention Devices (Water only)",
          "expand_permit_id": "26 177663 PSA",
          "expand_permit_type": "Building",
          "property_id": "102dcde0406a11ae"
        }
      ],
      "property_id": "102dcde0406a11ae",
      "property_type": "House"
    },
    {
      "address": "8 Northbrook Road",
      "community": "Old East York",
      "permits": [
        {
          "expand_permit_application_date": "2026-08-04",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd Detached|Demolition: 0.0|Description: PROPOSED REAR YARD DECK|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 10000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-08-05|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M4J|Proposed use: Sfd Detached|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: S1423|Work: Deck",
          "expand_permit_id": "26 213323 BLD",
          "expand_permit_type": "Building",
          "property_id": "102df7b722f629ec"
        },
        {
          "expand_permit_application_date": "2026-07-17",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: 2026-07-22|Current use: Sfd-Detached|Demolition: 0.0|Description: PROPOSED REAR YARD DECK|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 10,000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M4J|Proposed use: Sfd-Detached|Residential: 0.0|Revision number: 00|Status: Cancelled|Structure type: SFD - Detached|Ward grid: S1423|Work: Deck",
          "expand_permit_id": "26 203665 BLD",
          "expand_permit_type": "Building",
          "property_id": "102df7b722f629ec"
        }
      ],
      "property_id": "102df7b722f629ec",
      "property_type": "House"
    },
    {
      "address": "153 Bloor Street W",
      "community": "Bay Street Corridor",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-11",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Retail|Demolition: 1380.0|Description: Interior Tenant Fit out - Demolition Permit|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Building Additions/Alterations|Postal code: M5S|Proposed use: Retail|Residential: 0.0|Revision number: 0|Status: Under Review |Structure type: Retail Store|Ward grid: S1136|Work: Interior Demolition",
          "expand_permit_id": "26 182918 BLD",
          "expand_permit_type": "Building",
          "property_id": "102fd3d2adbf5561"
        }
      ],
      "property_id": "102fd3d2adbf5561",
      "property_type": "Apartment"
    },
    {
      "address": "21 Haliburton Avenue",
      "community": "Islington-City Centre West",
      "permits": [
        {
          "expand_permit_application_date": "2026-05-05",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd - Detached|Demolition: 0.0|Description: Proposal to construct a new rear yard deck.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 30000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-06-24|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code:    |Proposed use: Sfd - Detached|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: W0232|Work: Deck",
          "expand_permit_id": "26 155216 BLD",
          "expand_permit_type": "Building",
          "property_id": "104005de02a38363"
        }
      ],
      "property_id": "104005de02a38363",
      "property_type": "Apartment"
    },
    {
      "address": "56 Harding Boulevard",
      "community": "Birchcliffe-Cliffside",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-06",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: 2026-07-24|Current use: Single Family Dwelling|Demolition: 0.0|Description: Exterior Back Water Valve|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-07-15|Mercantile: 0.0|Permit type: Drain and Site Service|Postal code: M1N|Proposed use: Single Family Dwelling|Residential: 0.0|Revision number: 00|Status: Closed|Structure type: SFD - Detached|Ward grid: E2034|Work: Back Water Valve (Sewer only)",
          "expand_permit_id": "26 196470 DRN",
          "expand_permit_type": "Building",
          "property_id": "104109924f1d0f4f"
        }
      ],
      "property_id": "104109924f1d0f4f",
      "property_type": "House"
    },
    {
      "address": "166 Toryork Drive",
      "community": "Humber Summit",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-08",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Office|Demolition: 0.0|Description: Proposal to replace backflow preventer in Unit 1.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 1000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-07-10|Mercantile: 0.0|Permit type: Plumbing(PS)|Postal code:    |Proposed use: Office|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Office|Ward grid: W0722|Work:  Backflow Prevention Devices (Water only)",
          "expand_permit_id": "26 198251 PSA",
          "expand_permit_type": "Building",
          "property_id": "1043a6f23515ea43"
        }
      ],
      "property_id": "1043a6f23515ea43",
      "property_type": "House"
    },
    {
      "address": "8 Market Street",
      "community": "Waterfront Communities-The Island",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-24",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Coffee Shop|Demolition: 0.0|Description: Proposal for interior alterations to pass electrical wires for a new coffee shop.|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 250000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 80.0|Issued date: 2026-05-29|Mercantile: 0.0|Permit type: Building Additions/Alterations|Postal code: M5E|Proposed use: Sandwich Shop|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Restaurant Greater Than 30 Seats|Ward grid: S1339|Work: Interior Alterations",
          "expand_permit_id": "26 120656 BLD",
          "expand_permit_type": "Building",
          "property_id": "10447aee915fe2ac"
        },
        {
          "expand_permit_application_date": "2026-07-28",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Office|Demolition: 0.0|Description: Exterior brick wall repairs|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 450000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Building Additions/Alterations|Postal code: M5E|Proposed use: Office|Residential: 0.0|Revision number: 0|Status: Not Started|Structure type: Office|Ward grid: S1339|Work: Other(BA)",
          "expand_permit_id": "26 210329 BLD",
          "expand_permit_type": "Building",
          "property_id": "10447aee915fe2ac"
        }
      ],
      "property_id": "10447aee915fe2ac",
      "property_type": "Apartment"
    },
    {
      "address": "20 Clearview Heights",
      "community": "Beechborough-Greenbrook",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-02",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd|Demolition: 0.0|Description: proposal to install two windows in basement on South wall|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 2000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 3.0|Issued date: 2026-02-10|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M6M|Proposed use: Sfd|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: W0532|Work: Interior Alterations",
          "expand_permit_id": "26 111731 BLD",
          "expand_permit_type": "Building",
          "property_id": "1045ef8d5bdc5691"
        }
      ],
      "property_id": "1045ef8d5bdc5691",
      "property_type": "House"
    },
    {
      "address": "3501 Yonge Street",
      "community": "Bridle Path-Sunnybrook-York Mills",
      "permits": [
        {
          "expand_permit_application_date": "2026-06-04",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Commercial (Retail)|Demolition: 0.0|Description: Proposed tent and shade structure for a temporary garden centre from June 16 to July 15, 2026. |Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: N/A|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-07-21|Mercantile: 0.0|Permit type: Temporary Structures|Postal code: M4N|Proposed use: Temporary Garden Centre|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Commercial|Ward grid: N1523|Work: Temporary Structures",
          "expand_permit_id": "26 177672 TPS",
          "expand_permit_type": "Building",
          "property_id": "104b39afcc52964"
        },
        {
          "expand_permit_application_date": "2026-04-28",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Commercial|Demolition: 0.0|Description: Proposal for tent and shade structures for a temporary garden centre from May 16 to June 15, 2026. |Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: N/A|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-06-02|Mercantile: 0.0|Permit type: Temporary Structures|Postal code: M4N|Proposed use: Temporary Garden Center - May 16 To June 15|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Commercial|Ward grid: N1523|Work: Other(TS)",
          "expand_permit_id": "26 151570 TPS",
          "expand_permit_type": "Building",
          "property_id": "104b39afcc52964"
        }
      ],
      "property_id": "104b39afcc52964",
      "property_type": "House"
    },
    {
      "address": "81 Brooklawn Avenue",
      "community": "Cliffcrest",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-25",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: N/A|Demolition: 0.0|Description: Deferred Fees from folder 25 212853 (RSN-5693663) ZoningProcess RSN 79138856|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: N/A|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: DCs DeferredFees|Postal code: M1M|Proposed use: N/A|Residential: 0.0|Revision number: 0|Status: Open|Structure type: N/A|Ward grid: E2037|Work: N/A",
          "expand_permit_id": "26 212853 BLD",
          "expand_permit_type": "Building",
          "property_id": "10503530625b6959"
        },
        {
          "expand_permit_application_date": "2026-02-25",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: N/A|Demolition: 0.0|Description: Deferred Fees from folder 25 212714 (RSN-5693491) ZoningProcess RSN 79138828|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: N/A|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: DCs DeferredFees|Postal code: M1M|Proposed use: N/A|Residential: 0.0|Revision number: 0|Status: Open|Structure type: N/A|Ward grid: E2037|Work: N/A",
          "expand_permit_id": "26 212714 BLD",
          "expand_permit_type": "Building",
          "property_id": "10503530625b6959"
        }
      ],
      "property_id": "10503530625b6959",
      "property_type": "House"
    },
    {
      "address": "39 Lanark Avenue",
      "community": "Oakwood Village",
      "permits": [
        {
          "expand_permit_application_date": "2026-04-09",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd|Demolition: 0.0|Description: HVAC - Proposal for a two storey rear addition and interior alteration.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-04-29|Mercantile: 0.0|Permit type: Mechanical(MS)|Postal code: M6C|Proposed use: Sfd-Detached|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: S1222|Work: Building Permit Related(MS)",
          "expand_permit_id": "25 182720 HVA",
          "expand_permit_type": "Building",
          "property_id": "1053379da1ad21ed"
        }
      ],
      "property_id": "1053379da1ad21ed",
      "property_type": "House"
    },
    {
      "address": "203 Roxanne Crescent",
      "community": "Milliken",
      "permits": [
        {
          "expand_permit_application_date": "2026-07-20",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd Detached|Demolition: 0.0|Description: INTERIOR ALTERATION IN THE BASEMENT|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 50000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-07-24|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M1V|Proposed use: Sfd Detached|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: E2322|Work: Finishing Basements",
          "expand_permit_id": "26 205283 BLD",
          "expand_permit_type": "Building",
          "property_id": "1059c3214478c58"
        }
      ],
      "property_id": "1059c3214478c58",
      "property_type": "House"
    },
    {
      "address": "7 Medici Court",
      "community": "Bendale",
      "permits": [
        {
          "expand_permit_application_date": "2026-08-06",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd - Detached|Demolition: 0.0|Description: PROPOSED BELOW GRADE STEPS|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 12000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-08-07|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M1K|Proposed use: Sfd - Detached|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: E2134|Work: Walk-Out Stair",
          "expand_permit_id": "26 215265 BLD",
          "expand_permit_type": "Building",
          "property_id": "105ffc97b6156698"
        }
      ],
      "property_id": "105ffc97b6156698",
      "property_type": "Apartment"
    },
    {
      "address": "28 Arlington Avenue",
      "community": "Wychwood",
      "permits": [
        {
          "expand_permit_application_date": "2026-03-18",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd - Detached|Demolition: 0.0|Description: HVAC -  Proposal to construct rear addition, interior alteration on all floors, new openings,  underpinning and finishing basement.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-04-02|Mercantile: 0.0|Permit type: Mechanical(MS)|Postal code: M6G|Proposed use: Sfd - Detached|Residential: 0.0|Revision number: 1|Status: Revision Issued|Structure type: SFD - Detached|Ward grid: S1234|Work: Building Permit Related(MS)",
          "expand_permit_id": "25 183751 HVA",
          "expand_permit_type": "Building",
          "property_id": "10689a26dd95e7b9"
        }
      ],
      "property_id": "10689a26dd95e7b9",
      "property_type": "House"
    },
    {
      "address": "2374 Bloor Street W",
      "community": "Runnymede-Bloor West Village",
      "permits": [
        {
          "expand_permit_application_date": "2026-01-30",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Retail + Dwelling|Demolition: 0.0|Description: Plumbing - Proposed interior alterations and conversion of existing 2 storey mixed-use building into a dental office.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-03-31|Mercantile: 0.0|Permit type: Plumbing(PS)|Postal code: M6S|Proposed use: Dental Office|Residential: 0.0|Revision number: 0|Status: Inspection|Structure type: Medical/Dental Office|Ward grid: S0426|Work: Building Permit Related(PS)",
          "expand_permit_id": "26 105249 PLB",
          "expand_permit_type": "Building",
          "property_id": "106e53efa6203956"
        },
        {
          "expand_permit_application_date": "2026-01-15",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Retail + Dwelling|Demolition: 0.0|Description: Proposed interior alterations and conversion of existing 2 storey mixed-use building into a dental office.|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 700000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 216.58|Issued date: 2026-01-28|Mercantile: 0.0|Permit type: Building Additions/Alterations|Postal code: M6S|Proposed use: Dental Office|Residential: 0.0|Revision number: 0|Status: Inspection|Structure type: Medical/Dental Office|Ward grid: S0426|Work: Interior Alterations",
          "expand_permit_id": "26 105249 BLD",
          "expand_permit_type": "Building",
          "property_id": "106e53efa6203956"
        },
        {
          "expand_permit_application_date": "2026-01-30",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Retail + Dwelling|Demolition: 0.0|Description: HVAC - Proposed interior alterations and conversion of existing 2 storey mixed-use building into a dental office.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-03-05|Mercantile: 0.0|Permit type: Mechanical(MS)|Postal code: M6S|Proposed use: Dental Office|Residential: 0.0|Revision number: 0|Status: Inspection|Structure type: Medical/Dental Office|Ward grid: S0426|Work: Building Permit Related(MS)",
          "expand_permit_id": "26 105249 HVA",
          "expand_permit_type": "Building",
          "property_id": "106e53efa6203956"
        }
      ],
      "property_id": "106e53efa6203956",
      "property_type": "House"
    },
    {
      "address": "24 Burnhamthorpe Road",
      "community": "Islington-City Centre West",
      "permits": [
        {
          "expand_permit_application_date": "2026-02-17",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Apartment Building|Demolition: 0.0|Description: Proposal for replacement of existing fire alarm control panel.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: 100000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-02-19|Mercantile: 0.0|Permit type: Fire/Security Upgrade|Postal code: M9A|Proposed use: Apartment Building|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Apartment Building|Ward grid: W0321|Work: Fire Alarm",
          "expand_permit_id": "26 118066 FSU",
          "expand_permit_type": "Building",
          "property_id": "1070b88ded1a0368"
        }
      ],
      "property_id": "1070b88ded1a0368",
      "property_type": "Apartment"
    },
    {
      "address": "1693 Keele Street",
      "community": "Keelesdale-Eglinton West",
      "permits": [
        {
          "expand_permit_application_date": "2026-01-22",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Convenience Store (Mixed Use)|Demolition: 0.0|Description: Proposed interior alterations to existing convenience store. No change in use, no increase in building area, no structural alterations.|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 150000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 41.0|Issued date: 2026-01-23|Mercantile: 0.0|Permit type: Building Additions/Alterations|Postal code: M6M|Proposed use: Convenience Store (Mixed Use)|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: Other|Ward grid: W0537|Work: Interior Alterations",
          "expand_permit_id": "26 108057 BLD",
          "expand_permit_type": "Building",
          "property_id": "10781254e1647e64"
        }
      ],
      "property_id": "10781254e1647e64",
      "property_type": "House"
    },
    {
      "address": "127 Coleridge Avenue",
      "community": "Woodbine-Lumsden",
      "permits": [
        {
          "expand_permit_application_date": "2026-05-21",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd|Demolition: 0.0|Description: Drain - Proposal for rear addition, interior alterations and basement underpinning |Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-05-21|Mercantile: 0.0|Permit type: Drain and Site Service|Postal code: M4C|Proposed use: Sfd|Residential: 0.0|Revision number: 0|Status: Inspection|Structure type: SFD - Detached|Ward grid: S1929|Work: Building Permit Related (DR)",
          "expand_permit_id": "26 136536 DRN",
          "expand_permit_type": "Building",
          "property_id": "1088eb9d4a9d8a60"
        },
        {
          "expand_permit_application_date": "2026-03-30",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd|Demolition: 0.0|Description: Proposal for rear addition, interior alterations and basement underpinning |Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 200000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 111.0|Issued date: 2026-04-27|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M4C|Proposed use: Sfd|Residential: 43.0|Revision number: 0|Status: Inspection|Structure type: SFD - Detached|Ward grid: S1929|Work: Multiple Projects",
          "expand_permit_id": "26 136536 BLD",
          "expand_permit_type": "Building",
          "property_id": "1088eb9d4a9d8a60"
        },
        {
          "expand_permit_application_date": "2026-05-21",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd|Demolition: 0.0|Description: HVAC - Proposal for rear addition, interior alterations and basement underpinning |Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-06-25|Mercantile: 0.0|Permit type: Mechanical(MS)|Postal code: M4C|Proposed use: Sfd|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: S1929|Work: Building Permit Related(MS)",
          "expand_permit_id": "26 136536 HVA",
          "expand_permit_type": "Building",
          "property_id": "1088eb9d4a9d8a60"
        },
        {
          "expand_permit_application_date": "2026-05-21",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd|Demolition: 0.0|Description: Plumbing - Proposal for rear addition, interior alterations and basement underpinning |Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-05-21|Mercantile: 0.0|Permit type: Plumbing(PS)|Postal code: M4C|Proposed use: Sfd|Residential: 0.0|Revision number: 0|Status: Permit Issued|Structure type: SFD - Detached|Ward grid: S1929|Work: Building Permit Related(PS)",
          "expand_permit_id": "26 136536 PLB",
          "expand_permit_type": "Building",
          "property_id": "1088eb9d4a9d8a60"
        }
      ],
      "property_id": "1088eb9d4a9d8a60",
      "property_type": "House"
    },
    {
      "address": "40 Euclid Avenue",
      "community": "Trinity-Bellwoods",
      "permits": [
        {
          "expand_permit_application_date": "2026-04-20",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: 2026-07-14|Current use: Sfd - Semi Detached|Demolition: 0.0|Description: Plumbing - Proposal for interior alterations to basement.|Dwelling units created: N/A|Dwelling units lost: N/A|Estimated construction cost: DO NOT UPDATE OR DELETE THIS INFO FIELD|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: 2026-04-24|Mercantile: 0.0|Permit type: Plumbing(PS)|Postal code: M6J|Proposed use: Sfd - Semi Detached|Residential: 0.0|Revision number: 00|Status: Closed|Structure type: SFD - Semi-Detached|Ward grid: S1022|Work: Building Permit Related(PS)",
          "expand_permit_id": "26 147081 PLB",
          "expand_permit_type": "Building",
          "property_id": "1088f86fa0207a5a"
        },
        {
          "expand_permit_application_date": "2026-04-20",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: 2026-07-14|Current use: Sfd - Semi Detached|Demolition: 0.0|Description: Proposal for interior alterations to basement.|Dwelling units created: 0|Dwelling units lost: 0|Estimated construction cost: 100000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 30.0|Issued date: 2026-04-24|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M6J|Proposed use: Sfd - Semi Detached|Residential: 0.0|Revision number: 00|Status: Closed|Structure type: SFD - Semi-Detached|Ward grid: S1022|Work: Interior Alterations",
          "expand_permit_id": "26 147081 BLD",
          "expand_permit_type": "Building",
          "property_id": "1088f86fa0207a5a"
        }
      ],
      "property_id": "1088f86fa0207a5a",
      "property_type": "House"
    },
    {
      "address": "85 Coleridge Avenue",
      "community": "Woodbine-Lumsden",
      "permits": [
        {
          "expand_permit_application_date": "2026-08-07",
          "expand_permit_content": "Assembly: 0.0|Builder name: N/A|Business and personal services: 0.0|Completed date: N/A|Current use: Sfd Semi Detached|Demolition: 0.0|Description: Admin permit related to 83 Coleridge Ave (26 130791 BLD 00 SR)|Dwelling units created: 0|Dwelling units lost: 0.0|Estimated construction cost: 1000|Industrial: 0.0|Institutional: 0.0|Interior alterations: 0.0|Issued date: N/A|Mercantile: 0.0|Permit type: Small Residential Projects|Postal code: M4C|Proposed use: Sfd Semi Detached|Residential: 0.0|Revision number: 0|Status: Application Acceptable|Structure type: SFD - Semi-Detached|Ward grid: S1929|Work: Party Wall Admin Permits",
          "expand_permit_id": "26 215852 BLD",
          "expand_permit_type": "Building",
          "property_id": "108cfae826957a24"
        }
      ],
      "property_id": "108cfae826957a24",
      "property_type": "House"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 404
  },
  "price_quote": false,
  "result_total": 10079,
  "time_ms": 564,
  "ui_info": {
    "city": "Toronto",
    "city_id": "6cdbdee2492718ed",
    "city_link": "ca/on/toronto",
    "city_slug": "toronto",
    "country": "Canada",
    "country_abbreviation": "CA",
    "country_abbreviation_id": "9ace2b6431b7f1be",
    "country_abbreviation_link": "ca",
    "country_slug": "canada",
    "province": "Ontario",
    "province_abbreviation": "ON",
    "province_abbreviation_id": "146699ee774499d3",
    "province_abbreviation_link": "ca/on",
    "province_slug": "ontario"
  }
}

That is 9,039 Toronto properties with building permit applications filed this year. Calgary runs 5,815 over the same window. Every one is an address where a site either exists now or will soon, and every one arrives with the property's own details on the same row.

Reading the permit like a site services quote

The expand_permit_content field carries what the source city publishes, and three parts of it map directly onto what you rent or sell:

Status is your timing. An application still in review is a lead for next month's route planning. An issued permit is a site going active - fence and toilet territory. The content carries status and issue dates, so "sort by recently issued" is your hottest list, refreshed weekly.

Estimated project cost is your site size. Where the city provides it, project cost is a solid proxy for how long the site lives and how much it needs. A twenty-thousand-dollar alteration is one bin for two weeks. A seven-figure project is months of fencing, multiple swaps, security worth quoting, and a cleanup contract at the end. Price your outreach effort against the number in the record.

Work class is your product fit. A demolition means bins immediately and dust control. A new build means the full sequence from fence to final clean. An interior alteration might mean a single bin and nothing else. The class tells you which trucks the address will ever need, before anyone calls.

One mechanical note: the API filters on permit type and date - the status, cost, and class live in the content field, and matching against them happens in your code after the pull. The content is labelled, pipe-delimited text, so this is a parsing afternoon, not a data science hire.

The end of the site is also a sale

Everyone chases the start of a project. The completion is a lead too: completed permits mean post-construction cleaning, final bin pulls, landscaping repair where the machines tracked through, and a homeowner or builder who just stopped needing a fence you might currently be renting to a competitor. The content's completion dates let you run the same bot in reverse - a list of sites that just finished, for the services that begin when construction ends.

Route density is the quiet advantage

Site services live and die on drive time. Because every permit is attached to a property with a community on the row, the week's new permits group by neighbourhood for free. Three new sites in one community is not three leads, it is one efficient route - and that is a quoting advantage over whoever prices every job as a one-off drive across town. Pull the feed weekly, cluster by community, and let the map decide which leads are worth a sharper price.

For the plumbing of a weekly pull - deduplication, filtering, posting to your team's channel - the permit alert bot walkthrough applies to this business without modification.

Honest limits

Four cities. Calgary, Edmonton, Toronto, Vancouver. Elsewhere returns nothing.

Not every permit becomes a site. Applications get refused and cancelled - the status field says so. Filter before anyone drives anywhere.

Content detail varies by city. Project cost and work class are present where the source city publishes them, which is most of the time, not all of it. Build the parser to treat every labelled segment as optional.

Big general contractors have standing suppliers. The permit feed will not win you a national builder's fence contract. It shines on the long tail - custom builds, renovations, small commercial - where the ordering decision happens per-project and late.

Getting started

  1. Sign up for API access
  2. Pull this month's building permits for your city with the query above
  3. Parse status, cost, and class out of the content
  4. Cluster by community and hand each route's list to whoever quotes
  5. Track close rate by permit class and tune the filter to what actually rents

Most fields cost a tenth of a cent per field per property - a weekly pull for one city runs well under a dollar. Details on the pricing page and the expand documentation.


The site does not exist yet, but its address is already public. Be the company that read it first. Explore the API or browse the datasets.