{"id":67895,"date":"2026-05-11T12:25:13","date_gmt":"2026-05-11T19:25:13","guid":{"rendered":"https:\/\/liv.rent\/blog\/?p=67895"},"modified":"2026-08-28T12:45:19","modified_gmt":"2026-08-28T19:45:19","slug":"vancouver-short-term-rental-rules","status":"publish","type":"post","link":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/","title":{"rendered":"Vancouver short-term rental rules explained [2026]"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Short-term rentals in Vancouver are legal, but they&nbsp;come&nbsp;with a strict set of rules that affect both property owners and the renters who book them. Over the past two years, the regulatory landscape has shifted considerably. B.C.&#8217;s Short-Term Rental Accommodations Act came into force in May 2024, and&nbsp;Vancouver extended its own definition of a&nbsp;<a href=\"https:\/\/vancouver.ca\/news-calendar\/city-enhances-str-rules-align-with-provincial-legislation-sep-2024.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">short-term rental&nbsp;in&nbsp;October&nbsp;8,&nbsp;2024<\/a>.&nbsp;Together, these changes mean there are now two layers of compliance to understand: city bylaws and provincial legislation.&nbsp;<\/p>\n\n\n\n<p>Whether you are a homeowner thinking about listing your place on Airbnb, a tenant wondering if you can sublet for a weekend, or a renter searching for a verified place to stay, this guide covers everything you need to know about Vancouver short-term rental rules in 2026.&nbsp;<br><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">What is a short-term rental in Vancouver?<\/h2>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Definition of a short-term rental<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>In Vancouver, a short-term rental is any entire home or room within a home rented for fewer than&nbsp;90 consecutive days.&nbsp;That definition changed in October 2024, when the city updated its bylaws to align with B.C.&#8217;s provincial legislation. Previously, the threshold was fewer than&nbsp;30 days.&nbsp;<\/p>\n\n\n\n<p>The practical effect: rentals between 30 and&nbsp;89 days&nbsp;now fall under the short-term rental framework and require a city business&nbsp;licence&nbsp;and a provincial registration number, not a long-term rental&nbsp;licence.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Examples of short-term rentals<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Common short-term rentals include entire homes or spare rooms listed on Airbnb or Vrbo, furnished suites rented to&nbsp;travellers&nbsp;for a few nights or a few weeks, and any accommodation arrangement in a host&#8217;s principal residence that falls below the 90-day mark.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Difference between short-term and long-term rentals<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>The dividing line is&nbsp;90 days. Rentals of 90 consecutive days or more are considered&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\/long-term\" target=\"_blank\" rel=\"noreferrer noopener\">long-term&nbsp;rentals<\/a>&nbsp;and are exempt from provincial&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\/short-term\" target=\"_blank\" rel=\"noreferrer noopener\">short-term rental<\/a>&nbsp;registration requirements entirely, whether the property is a principal residence or not. Long-term rentals are governed instead by B.C.&#8217;s Residential Tenancy Act and the protections it provides to tenants.&nbsp;&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">Are short-term rentals legal in Vancouver?<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Yes. Short-term rentals are legal in Vancouver, provided the host holds a valid city business&nbsp;licence, has a provincial registration number, and&nbsp;operates&nbsp;from their principal residence. As of April 2026, the City of Vancouver counted 4,969 active short-term rental listings, with 3,248 business&nbsp;licences&nbsp;issued for 2026 and 69&nbsp;licences&nbsp;suspended within the year.&nbsp;<\/p>\n\n\n\n<p>The city does not tolerate unlicensed operators, and enforcement is active and&nbsp;data-driven. Legal operation requires following both city and provincial rules from the outset.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<!--\n  Reusable Buildings Block - By Building URLs\n  ---------------------------------------------------\n  This block takes full liv.rent building URLs, pulls the numeric id\n  out of each one for the GraphQL query, and links the card straight\n  back to the URL you pasted, so the pretty slug is always the one you\n  supplied.\n\n  To change which buildings appear, edit BUILDING_URLS in the script\n  below. Everything else (title, footer link, wording) is in the CONFIG\n  object next to it. Anything from 1 to 10 buildings renders; the grid\n  reflows on its own.\n\n  Note: the building record itself is what drives the card, so a building\n  with nothing currently for rent still renders (it just shows no price).\n  Only an id that does not exist at all is skipped, with a console warning.\n-->\n\n<style type=\"text\/css\">\n  .liv-buildings.liv-buildings,\n  .liv-buildings.liv-buildings * {\n    box-sizing: border-box !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    font-family: Inter, Helvetica, Arial, sans-serif !important;\n    font-style: normal !important;\n    line-height: 1.4 !important;\n    letter-spacing: normal !important;\n    word-spacing: normal !important;\n    text-transform: none !important;\n    text-indent: 0 !important;\n    text-align: left !important;\n    text-shadow: none !important;\n    float: none !important;\n    list-style: none !important;\n  }\n\n  \/* ---------- Block ---------- *\/\n  .liv-buildings.liv-buildings {\n    display: block !important;\n    max-width: 1094px;\n    margin: 40px auto !important;\n    padding: 32px 0 !important;\n    border-top: 1px solid #eaecf1;\n    border-bottom: 1px solid #eaecf1;\n    background: none;\n    font-size: 13px !important;\n    color: #0e131b !important;\n    -webkit-font-smoothing: antialiased;\n    container-type: inline-size;\n    container-name: livbuildings;\n  }\n\n  .liv-buildings .liv-buildings__title {\n    display: block !important;\n    font-size: 24px !important;\n    font-weight: 700 !important;\n    line-height: 1.2 !important;\n    letter-spacing: -0.4px !important;\n    color: #0e131b !important;\n    margin: 0 0 20px !important;\n    padding: 0 !important;\n  }\n\n  \/* ---------- Grid ---------- *\/\n  .liv-buildings .liv-buildings__grid {\n    display: grid !important;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 14px;\n    align-items: stretch;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n\n  @media only screen and (min-width: 900px) {\n    .liv-buildings .liv-buildings__grid {\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n      gap: 16px;\n    }\n  }\n\n  @container livbuildings (max-width: 699px) {\n    .liv-buildings .liv-buildings__grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n    }\n  }\n\n  @container livbuildings (min-width: 700px) {\n    .liv-buildings .liv-buildings__grid {\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n      gap: 16px;\n    }\n  }\n\n  \/* Small counts should not stretch a card across the whole column. *\/\n  .liv-buildings .liv-buildings__grid--n1 {\n    grid-template-columns: minmax(0, 1fr);\n    max-width: 320px;\n  }\n\n  .liv-buildings .liv-buildings__grid--n2 {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    max-width: 660px;\n  }\n\n  @container livbuildings (min-width: 700px) {\n    .liv-buildings .liv-buildings__grid--n3 {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n      max-width: 820px;\n    }\n  }\n\n  \/* 5 or 9 buildings across 4 columns strands a single card on its own\n     row. Three columns divides both evenly (3+2, 3+3+3). Declared after\n     the base grid so it wins on source order in both engines. *\/\n  @media only screen and (min-width: 900px) {\n    .liv-buildings .liv-buildings__grid--three {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n  }\n\n  @container livbuildings (min-width: 700px) {\n    .liv-buildings .liv-buildings__grid--three {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n  }\n\n  \/* ---------- Card ----------\n     Qualified with the tag so it also outranks theme rules aimed at\n     `.entry-content a`, which is where link colour usually comes from. *\/\n  .liv-buildings a.liv-buildings__card {\n    display: flex !important;\n    flex-direction: column;\n    background: #ffffff !important;\n    border: 1px solid #d2d7df !important;\n    border-radius: 8px !important;\n    box-shadow: 0 0 16px 0 rgba(69, 79, 91, 0.12) !important;\n    overflow: hidden;\n    margin: 0 !important;\n    padding: 0 !important;\n    text-decoration: none !important;\n    color: #0e131b !important;\n    cursor: pointer;\n  }\n\n  .liv-buildings a.liv-buildings__card:hover,\n  .liv-buildings a.liv-buildings__card:focus,\n  .liv-buildings a.liv-buildings__card:visited {\n    text-decoration: none !important;\n    color: #0e131b !important;\n  }\n\n  .liv-buildings .liv-buildings__media {\n    display: block !important;\n    position: relative;\n    width: 100%;\n    aspect-ratio: 16 \/ 10;\n    background: #f3f5f7;\n    overflow: hidden;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n\n  @supports not (aspect-ratio: 16 \/ 10) {\n    .liv-buildings .liv-buildings__media {\n      height: 140px;\n    }\n  }\n\n  .liv-buildings img.liv-buildings__img {\n    display: block !important;\n    width: 100% !important;\n    height: 100% !important;\n    max-width: 100% !important;\n    object-fit: cover;\n    margin: 0 !important;\n    padding: 0 !important;\n    border: 0 !important;\n    border-radius: 0 !important;\n    box-shadow: none !important;\n  }\n\n  .liv-buildings .liv-buildings__badge {\n    display: inline-block !important;\n    position: absolute;\n    top: 8px;\n    left: 8px;\n    max-width: calc(100% - 16px);\n    background: #0e131b !important;\n    color: #ffffff !important;\n    font-size: 10px !important;\n    font-weight: 500 !important;\n    line-height: 16px !important;\n    margin: 0 !important;\n    padding: 1px 6px !important;\n    border: 0 !important;\n    border-radius: 2px !important;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    pointer-events: none;\n  }\n\n  .liv-buildings .liv-buildings__body {\n    display: flex !important;\n    flex-direction: column;\n    flex: 1;\n    gap: 5px;\n    margin: 0 !important;\n    padding: 10px !important;\n  }\n\n  .liv-buildings .liv-buildings__price-row {\n    display: flex !important;\n    align-items: baseline;\n    flex-wrap: nowrap;\n    gap: 4px;\n    min-width: 0;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n\n  .liv-buildings .liv-buildings__price {\n    font-size: 15px !important;\n    font-weight: 700 !important;\n    line-height: 1.3 !important;\n    color: #0e131b !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  .liv-buildings .liv-buildings__period {\n    font-size: 11px !important;\n    font-weight: 400 !important;\n    line-height: 1.3 !important;\n    color: #0e131b !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    white-space: nowrap;\n  }\n\n  .liv-buildings .liv-buildings__details {\n    display: block !important;\n    font-size: 12px !important;\n    font-weight: 500 !important;\n    line-height: 1.4 !important;\n    color: #5a6881 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .liv-buildings .liv-buildings__divider {\n    display: block !important;\n    height: 1px;\n    width: 100%;\n    background: #d2d7df !important;\n    border: 0 !important;\n    margin: 3px 0 !important;\n    padding: 0 !important;\n  }\n\n  \/* Building names run long, so give them two lines rather than\n     truncating \"Lakeview Pointe Kelowna Apartments\" to nothing. *\/\n  .liv-buildings .liv-buildings__name {\n    display: -webkit-box !important;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    font-size: 12px !important;\n    font-weight: 600 !important;\n    line-height: 1.35 !important;\n    color: #0e131b !important;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n\n  \/* Two lines rather than one ellipsized line: on a 2-up phone layout a\n     single line drops the city, which is the half that matters when the\n     block spans more than one of them. *\/\n  .liv-buildings .liv-buildings__region {\n    display: -webkit-box !important;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    font-size: 11px !important;\n    font-weight: 400 !important;\n    line-height: 1.35 !important;\n    color: #5a6881 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n\n  \/* `margin: auto 0 0` rather than `margin-top: auto` - the reset zeroes\n     the shorthand, so a longhand top margin would be overwritten and the\n     buttons would stop aligning along the bottom of a row. *\/\n  .liv-buildings .liv-buildings__cta {\n    display: flex !important;\n    align-items: center;\n    justify-content: center;\n    height: 32px;\n    margin: auto 0 0 !important;\n    padding: 0 8px !important;\n    background: #051a49 !important;\n    color: #ffffff !important;\n    font-size: 11px !important;\n    font-weight: 500 !important;\n    line-height: 1 !important;\n    text-align: center !important;\n    border: 0 !important;\n    border-radius: 6px !important;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    transition: background 0.15s ease;\n  }\n\n  .liv-buildings a.liv-buildings__card:hover .liv-buildings__cta {\n    background: #0d3880 !important;\n  }\n\n  \/* One step up once the block itself has room. Scoped to the block, not\n     the card, so there is only a single set of overrides to reason about. *\/\n  @container livbuildings (min-width: 700px) {\n    .liv-buildings .liv-buildings__body {\n      gap: 7px;\n      padding: 12px !important;\n    }\n\n    .liv-buildings .liv-buildings__badge {\n      top: 12px;\n      left: 12px;\n      max-width: calc(100% - 24px);\n      font-size: 11px !important;\n      line-height: 18px !important;\n      padding: 1px 8px !important;\n    }\n\n    .liv-buildings .liv-buildings__price {\n      font-size: 17px !important;\n    }\n\n    .liv-buildings .liv-buildings__period {\n      font-size: 13px !important;\n    }\n\n    .liv-buildings .liv-buildings__details,\n    .liv-buildings .liv-buildings__name {\n      font-size: 13px !important;\n    }\n\n    .liv-buildings .liv-buildings__region {\n      font-size: 12px !important;\n    }\n\n    .liv-buildings .liv-buildings__cta {\n      height: 38px;\n      font-size: 13px !important;\n    }\n  }\n\n  .liv-buildings a.liv-buildings__footer-link {\n    display: block !important;\n    font-size: 14px !important;\n    font-weight: 500 !important;\n    line-height: 1.4 !important;\n    color: #051a49 !important;\n    text-align: center !important;\n    margin: 18px 0 0 !important;\n    padding: 0 !important;\n    background: none !important;\n    text-decoration: none !important;\n  }\n\n  .liv-buildings a.liv-buildings__footer-link:visited,\n  .liv-buildings a.liv-buildings__footer-link:focus,\n  .liv-buildings a.liv-buildings__footer-link:hover {\n    color: #051a49 !important;\n  }\n\n  .liv-buildings a.liv-buildings__footer-link:hover {\n    text-decoration: underline !important;\n  }\n\n  \/* The placeholder the block renders INTO is ordinary post content, so\n     the theme styles it too - a stray `padding` there silently re-centres\n     the whole block, and a `margin-bottom` adds phantom space under it.\n     findMount() tags the div it creates as a fallback with the same class\n     so this rule reaches that one as well. *\/\n  .liv-buildings-root.liv-buildings-root,\n  #liv-buildings-root {\n    display: block !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    border: 0 !important;\n    background: none !important;\n    font-size: inherit !important;\n    line-height: normal !important;\n    text-align: left !important;\n    text-indent: 0 !important;\n  }\n<\/style>\n\n<script type=\"text\/javascript\">\n  \/* ==================================================================\n   * DO NOT PUT AN AMPERSAND CHARACTER ANYWHERE IN THIS SCRIPT.\n   *\n   * WordPress runs post content through wptexturize(), which rewrites a\n   * bare ampersand into a numeric HTML entity. Inside a script tag that\n   * is a syntax error, so the whole block dies on parse: the markup is\n   * still visible in the DOM, but nothing runs and no request is made.\n   * It rewrites only SOME of them, which makes it look intermittent.\n   *\n   * That is why this file uses nested ifs, ternaries, early returns and\n   * the get() helper instead of the logical-and operator. Keeping the\n   * character out entirely means `grep` is a reliable check.\n   * ================================================================== *\/\n  (function () {\n    \/\/ Captured while this script runs, so each copy of the block can find\n    \/\/ its OWN placeholder. `document.currentScript` is null inside the\n    \/\/ deferred callback, so it has to be read here at the top level.\n    var SELF = document.currentScript;\n\n    \/* ----------------------------------------------------------------\n     * CONFIG - edit these\n     * ---------------------------------------------------------------- *\/\n    var CONFIG = {\n      \/\/ Buildings to show, in the order they should appear. Paste the\n      \/\/ full liv.rent URL: the id is read out of it for the query and\n      \/\/ the URL itself becomes the card link, slug and all.\n      \/\/ Works with 1 building, works with 10.\n      BUILDING_URLS: [\n        \"https:\/\/liv.rent\/building\/55691\/lakeview-pointe-kelowna-apartments-apartment-building-3623-elliot-road-west-kelowna-bc\",\n        \"https:\/\/liv.rent\/building\/53981\/parque-on-park-apartment-building-20449-park-ave-langley-bc\",\n        \"https:\/\/liv.rent\/building\/8227\/the-pendrell-apartment-building-1770-pendrell-st-vancouver-bc\",\n        \"https:\/\/liv.rent\/building\/55792\/nells-place-apartment-building-4502-rupert-street-vancouver-bc\",\n        \"https:\/\/liv.rent\/building\/55771\/hub-place-apartment-building-1649-e-broadway-vancouver-bc\",\n      ],\n      TITLE: \"Now renting in B.C.\",\n      FOOTER_LINK_TEXT: \"See all CAPREIT rental listings\",\n      FOOTER_LINK_URL: \"https:\/\/liv.rent\/company\/capreit\",\n      ROOT_SELECTOR: \".liv-buildings-root, #liv-buildings-root\",\n      IMAGES_URL: \"https:\/\/cdn.liv.rent\",\n      GRAPHQL_URL: \"https:\/\/nemesis-prod.liv.rent\/graphql\",\n      \/\/ Safety rail so a runaway paste cannot fire a 40-alias query.\n      MAX_BUILDINGS: 10,\n    };\n\n    \/* ----------------------------------------------------------------\n     * Query - one request, two aliased fields per building.\n     *\n     *   building(...)       the building record: name, address, photos.\n     *                       Renders even with nothing available.\n     *   buildingDetail(...) the units currently live in that building.\n     *                       The server pins state_machine=published and\n     *                       is_hidden=false, so this is only ever what a\n     *                       renter could actually apply to right now.\n     *\n     * Ids are digits pulled out of the URL by regex, so they are safe to\n     * inline as Int literals.\n     * ---------------------------------------------------------------- *\/\n    var BUILDING_FIELDS = [\n      \"id\",\n      \"name\",\n      \"building_type\",\n      \"full_street_name\",\n      \"city\",\n      \"state\",\n      \"building_files { aws_s3_key tag position }\",\n    ];\n\n    var LISTING_FIELDS = [\n      \"listing_id\",\n      \"price\",\n      \"price_frequency\",\n      \"bedrooms\",\n      \"gr_unit\",\n      \"gr_count\",\n      \"gr_min_price\",\n      \"unit_type_scope_txt_id\",\n      \"cover_photo_aws_s3_key\",\n    ];\n\n    function buildQuery(ids) {\n      var lines = [\"query blogBuildings {\"];\n      ids.forEach(function (id, index) {\n        lines.push(\n          \"  b\" + index + \": building(input: { building_id: \" + id + \" }) {\",\n        );\n        lines.push(\"    \" + BUILDING_FIELDS.join(\"\\n    \"));\n        lines.push(\"  }\");\n        lines.push(\n          \"  d\" +\n            index +\n            \": buildingDetail(input: { building_id: \" +\n            id +\n            \" }) {\",\n        );\n        lines.push(\"    \" + LISTING_FIELDS.join(\"\\n    \"));\n        lines.push(\"  }\");\n      });\n      lines.push(\"}\");\n      return lines.join(\"\\n\");\n    }\n\n    \/* ----------------------------------------------------------------\n     * Lookups mirrored from the liv.rent app so wording matches\n     * ---------------------------------------------------------------- *\/\n    var PERIOD = {\n      monthly: \"\/Month\",\n      weekly: \"\/Week\",\n      daily: \"\/Day\",\n      yearly: \"\/Year\",\n      one_time: \"\/One-time\",\n    };\n\n    \/\/ Widest first: the src, then the retry ladder attachFallback() walks.\n    var SIZES = [\n      [480, 300],\n      [320, 200],\n    ];\n\n    var TYPE_LABEL = {\n      condo: \"Apartment Building\",\n      highrise: \"Apartment Building\",\n      lowrise: \"Apartment Building\",\n      house: \"House\",\n      townhouse: \"Townhouse\",\n    };\n\n    \/* ----------------------------------------------------------------\n     * Helpers\n     * ---------------------------------------------------------------- *\/\n    function el(tag, className) {\n      var node = document.createElement(tag);\n      if (className) node.className = className;\n      return node;\n    }\n\n    \/\/ Walks a path of keys, stopping at the first missing link.\n    function get(obj, path) {\n      var node = obj;\n      for (var i = 0; i < path.length; i++) {\n        if (!node) return null;\n        node = node[path[i]];\n      }\n      return node;\n    }\n\n    function money(value) {\n      var n = Number(value);\n      if (!isFinite(n)) return null;\n      if (n <= 0) return null;\n      return \"$\" + Math.round(n).toLocaleString(\"en-US\");\n    }\n\n    \/\/ gr_unit marks a \"group\" listing: one record standing in for several\n    \/\/ identical units, priced from gr_min_price.\n    function isGroup(listing) {\n      if (listing.gr_unit === true) return true;\n      return listing.gr_unit === \"1\";\n    }\n\n    \/\/ https:\/\/liv.rent\/building\/55691\/lakeview-pointe... -> '55691'\n    function idFromUrl(url) {\n      var match = String(url || \"\").match(\/\\\/building\\\/(\\d+)\/);\n      if (!match) return null;\n      return match[1];\n    }\n\n    \/\/ Mirrors getImageUrl() in the app, including the character escapes -\n    \/\/ an unescaped bracket or quote in a filename breaks the CDN path.\n    function imageUrl(key, width, height) {\n      if (!key) return null;\n      var match = String(key).match(\/static_file.+$\/);\n      if (!match) return null;\n      var path = match[0]\n        .replace(\/^\\\/\/, \"\")\n        .replace(\/ \/g, \"%20\")\n        .replace(\/\\(\/g, \"%28\")\n        .replace(\/\\)\/g, \"%29\")\n        .replace(\/'\/g, \"%27\")\n        .replace(\/\"\/g, \"%22\");\n      return (\n        CONFIG.IMAGES_URL +\n        \"\/\" +\n        width +\n        \"x\" +\n        height +\n        \"\/filters:quality(80)\/\" +\n        path\n      );\n    }\n\n    \/\/ Some older building photos are narrower than the largest thumbnail\n    \/\/ the card asks for, and the CDN answers an upscale with a 500 rather\n    \/\/ than serving the original. Step down through the smaller sizes, then\n    \/\/ give up and leave the neutral panel instead of a broken-image icon.\n    \/\/ srcset has to go with the first retry or the browser just reselects\n    \/\/ the candidate that already failed.\n    function attachFallback(img, key) {\n      var step = 0;\n      img.onerror = function () {\n        if (step >= SIZES.length) {\n          img.onerror = null;\n          if (img.parentNode) img.parentNode.removeChild(img);\n          return;\n        }\n        var size = SIZES[step];\n        step += 1;\n        img.removeAttribute(\"srcset\");\n        img.removeAttribute(\"sizes\");\n        img.setAttribute(\"src\", imageUrl(key, size[0], size[1]));\n      };\n    }\n\n    \/\/ Building photos prefer the tagged cover. Some buildings only carry\n    \/\/ untagged `building_image` rows with a null position, so the sort is\n    \/\/ a tiebreak rather than the primary rule.\n    function coverKey(building, listings) {\n      var files = building.building_files;\n      if (Array.isArray(files)) {\n        if (files.length) {\n          var cover = files.filter(function (file) {\n            return file.tag === \"cover_photo\";\n          })[0];\n          if (cover) return cover.aws_s3_key;\n\n          var ordered = files.slice().sort(function (a, b) {\n            return position(a) - position(b);\n          });\n          if (ordered[0]) return ordered[0].aws_s3_key;\n        }\n      }\n\n      \/\/ No building photo on file: borrow the first live unit's cover so\n      \/\/ the card is never a grey box.\n      var withPhoto = listings.filter(function (listing) {\n        return Boolean(listing.cover_photo_aws_s3_key);\n      })[0];\n      if (withPhoto) return withPhoto.cover_photo_aws_s3_key;\n      return null;\n    }\n\n    function position(file) {\n      var n = Number(file.position);\n      if (!isFinite(n)) return 9999;\n      return n;\n    }\n\n    function bedLabel(n) {\n      if (!n) return \"Studio\";\n      return n + \" Bed\";\n    }\n\n    \/* Rolls the live units up into the three things the card shows:\n     * how many are available, the cheapest asking price, and the spread\n     * of bedroom counts. *\/\n    function summarise(listings) {\n      var units = 0;\n      var price = null;\n      var frequency = \"\";\n      var minBeds = null;\n      var maxBeds = null;\n      var hasRoom = false;\n\n      listings.forEach(function (listing) {\n        var group = isGroup(listing);\n\n        var count = Number(listing.gr_count);\n        if (group) {\n          units += isFinite(count) ? Math.max(count, 1) : 1;\n        } else {\n          units += 1;\n        }\n\n        var amount = Number(group ? listing.gr_min_price : listing.price);\n        if (isFinite(amount)) {\n          if (amount > 0) {\n            if (price === null) {\n              price = amount;\n              frequency = listing.price_frequency;\n            } else if (amount < price) {\n              price = amount;\n              frequency = listing.price_frequency;\n            }\n          }\n        }\n\n        \/\/ A room in a shared unit has no meaningful bedroom count.\n        var scope = String(listing.unit_type_scope_txt_id || \"\").toUpperCase();\n        if (scope === \"SINGLE\") {\n          hasRoom = true;\n          return;\n        }\n\n        var beds = Number(listing.bedrooms);\n        if (isFinite(beds)) {\n          if (minBeds === null) minBeds = beds;\n          else if (beds < minBeds) minBeds = beds;\n          if (maxBeds === null) maxBeds = beds;\n          else if (beds > maxBeds) maxBeds = beds;\n        }\n      });\n\n      return {\n        units: units,\n        price: money(price),\n        period: PERIOD[frequency] || \"\",\n        beds: bedText(minBeds, maxBeds, hasRoom),\n      };\n    }\n\n    function bedText(min, max, hasRoom) {\n      if (min === null) return hasRoom ? \"Room\" : \"\";\n      if (min === max) {\n        var single = bedLabel(min);\n        return hasRoom ? single + \" \u00b7 Room\" : single;\n      }\n      var low = !min ? \"Studio\" : String(min);\n      var range = low + \" - \" + max + \" Bed\";\n      return hasRoom ? range + \" \u00b7 Room\" : range;\n    }\n\n    function unitsText(units) {\n      if (!units) return \"\";\n      if (units === 1) return \"1 Unit Available\";\n      return units + \" Units Available\";\n    }\n\n    function typeLabel(building) {\n      var type = String(building.building_type || \"\").toLowerCase();\n      return TYPE_LABEL[type] || \"Building\";\n    }\n\n    \/* ----------------------------------------------------------------\n     * Rendering\n     * ---------------------------------------------------------------- *\/\n    function buildCard(entry) {\n      var building = entry.building;\n      var listings = entry.listings;\n      var summary = summarise(listings);\n\n      var name = building.name || building.full_street_name;\n      var region = [building.full_street_name, building.city, building.state]\n        .filter(Boolean)\n        .join(\", \");\n\n      var card = el(\"a\", \"liv-buildings__card\");\n      \/\/ The pasted URL is the link, so the slug always matches the one\n      \/\/ that was checked by hand.\n      card.setAttribute(\"href\", entry.url);\n      card.setAttribute(\"id\", \"liv-blog-building-\" + building.id);\n      \/\/ Same as the footer link: new tab so the reader keeps their place,\n      \/\/ noopener for safety, and no noreferrer so the visit still\n      \/\/ attributes back to the blog.\n      card.setAttribute(\"target\", \"_blank\");\n      card.setAttribute(\"rel\", \"noopener\");\n\n      \/* Media *\/\n      var media = el(\"div\", \"liv-buildings__media\");\n      var key = coverKey(building, listings);\n      var src = imageUrl(key, 640, 400);\n\n      if (src) {\n        var img = el(\"img\", \"liv-buildings__img\");\n        img.setAttribute(\"src\", src);\n        img.setAttribute(\n          \"srcset\",\n          [\n            imageUrl(key, 320, 200) + \" 320w\",\n            imageUrl(key, 480, 300) + \" 480w\",\n            imageUrl(key, 640, 400) + \" 640w\",\n          ].join(\", \"),\n        );\n        \/\/ Layout is driven by the blog column, not the viewport, and the\n        \/\/ column count varies with how many buildings are configured, so\n        \/\/ one static hint cannot be exact. It errs to the widest case (3\n        \/\/ across) - better a slightly heavy image than a soft one.\n        img.setAttribute(\"sizes\", \"(min-width: 900px) 360px, 50vw\");\n        img.setAttribute(\"loading\", \"lazy\");\n        img.setAttribute(\"decoding\", \"async\");\n        img.setAttribute(\"alt\", [name, region].filter(Boolean).join(\", \"));\n        attachFallback(img, key);\n        media.appendChild(img);\n      }\n\n      var badgeText = unitsText(summary.units);\n      if (badgeText) {\n        var badge = el(\"span\", \"liv-buildings__badge\");\n        badge.textContent = badgeText;\n        media.appendChild(badge);\n      }\n\n      card.appendChild(media);\n\n      \/* Body *\/\n      var body = el(\"div\", \"liv-buildings__body\");\n\n      var priceRow = el(\"div\", \"liv-buildings__price-row\");\n      var priceNode = el(\"span\", \"liv-buildings__price\");\n      if (summary.price) {\n        priceNode.textContent = \"From \" + summary.price;\n        priceRow.appendChild(priceNode);\n        if (summary.period) {\n          var periodNode = el(\"span\", \"liv-buildings__period\");\n          periodNode.textContent = summary.period;\n          priceRow.appendChild(periodNode);\n        }\n      } else {\n        \/\/ Nothing live in the building today. The building page is still\n        \/\/ worth a visit, so the card stays and only the price softens.\n        priceNode.textContent = \"Contact for availability\";\n        priceRow.appendChild(priceNode);\n      }\n      body.appendChild(priceRow);\n\n      var details = el(\"p\", \"liv-buildings__details\");\n      details.textContent = summary.beds || typeLabel(building);\n      body.appendChild(details);\n\n      body.appendChild(el(\"div\", \"liv-buildings__divider\"));\n\n      var nameNode = el(\"p\", \"liv-buildings__name\");\n      nameNode.textContent = name;\n      body.appendChild(nameNode);\n\n      var regionNode = el(\"p\", \"liv-buildings__region\");\n      regionNode.textContent = region;\n      body.appendChild(regionNode);\n\n      var cta = el(\"span\", \"liv-buildings__cta\");\n      cta.textContent = \"View Building\";\n      body.appendChild(cta);\n\n      card.appendChild(body);\n      return card;\n    }\n\n    function render(entries, root) {\n      var wrapper = el(\"div\", \"liv-buildings\");\n\n      var title = el(\"h2\", \"liv-buildings__title\");\n      title.textContent = CONFIG.TITLE;\n      wrapper.appendChild(title);\n\n      var grid = el(\"div\", \"liv-buildings__grid\");\n      if (entries.length < 4) {\n        grid.className += \" liv-buildings__grid--n\" + entries.length;\n      } else if (entries.length % 4 === 1) {\n        \/\/ 5 and 9 would otherwise leave one card alone on the last row.\n        grid.className += \" liv-buildings__grid--three\";\n      }\n      entries.forEach(function (entry) {\n        grid.appendChild(buildCard(entry));\n      });\n      wrapper.appendChild(grid);\n\n      var footer = el(\"a\", \"liv-buildings__footer-link\");\n      footer.textContent = CONFIG.FOOTER_LINK_TEXT;\n      footer.setAttribute(\"href\", CONFIG.FOOTER_LINK_URL);\n      \/\/ Opens in a new tab so the reader keeps their place in the post.\n      \/\/ noopener only - the referrer is left intact so the visit still\n      \/\/ attributes back to the blog.\n      footer.setAttribute(\"target\", \"_blank\");\n      footer.setAttribute(\"rel\", \"noopener\");\n      wrapper.appendChild(footer);\n\n      root.appendChild(wrapper);\n    }\n\n    \/* ----------------------------------------------------------------\n     * Fetch + boot\n     * ---------------------------------------------------------------- *\/\n    \/\/ Two copies of this block on one page must not both render into the\n    \/\/ first placeholder, so prefer the one that follows this script and\n    \/\/ claim it before the fetch starts.\n    var CLAIMED = \"data-liv-mounted\";\n\n    function isFreePlaceholder(node) {\n      if (!node.matches) return false;\n      if (!node.matches(CONFIG.ROOT_SELECTOR)) return false;\n      return !node.hasAttribute(CLAIMED);\n    }\n\n    function findMount() {\n      var host = SELF ? SELF.parentNode : null;\n\n      if (host) {\n        var sibling = SELF.nextElementSibling;\n        while (sibling) {\n          if (isFreePlaceholder(sibling)) return sibling;\n          sibling = sibling.nextElementSibling;\n        }\n      }\n\n      var candidates = document.querySelectorAll(CONFIG.ROOT_SELECTOR);\n      for (var i = 0; i < candidates.length; i++) {\n        if (!candidates[i].hasAttribute(CLAIMED)) return candidates[i];\n      }\n\n      \/\/ No placeholder reached us - render where the script itself sits.\n      \/\/ Tagged with the placeholder class so the theme-neutralising rule\n      \/\/ in the stylesheet covers this div too.\n      if (host) {\n        var mount = document.createElement(\"div\");\n        mount.className = \"liv-buildings-root\";\n        host.insertBefore(mount, SELF.nextSibling);\n        return mount;\n      }\n\n      return null;\n    }\n\n    function parseUrls() {\n      var seen = {};\n      var parsed = [];\n\n      CONFIG.BUILDING_URLS.forEach(function (url) {\n        var id = idFromUrl(url);\n        if (!id) {\n          console.warn(\"[liv.rent buildings] Not a building URL: \" + url);\n          return;\n        }\n        if (seen[id]) return;\n        seen[id] = true;\n        parsed.push({ id: id, url: url });\n      });\n\n      if (parsed.length > CONFIG.MAX_BUILDINGS) {\n        console.warn(\n          \"[liv.rent buildings] Showing the first \" +\n            CONFIG.MAX_BUILDINGS +\n            \" of \" +\n            parsed.length +\n            \" buildings.\",\n        );\n        return parsed.slice(0, CONFIG.MAX_BUILDINGS);\n      }\n\n      return parsed;\n    }\n\n    function load() {\n      var targets = parseUrls();\n      if (!targets.length) {\n        console.warn(\"[liv.rent buildings] No usable building URLs.\");\n        return;\n      }\n\n      var root = findMount();\n      if (!root) {\n        console.warn(\n          \"[liv.rent buildings] No place to render - expected a <div \" +\n            'class=\"liv-buildings-root\"> after the script.',\n        );\n        return;\n      }\n      root.setAttribute(CLAIMED, \"1\");\n\n      var ids = targets.map(function (target) {\n        return target.id;\n      });\n\n      fetch(CONFIG.GRAPHQL_URL, {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application\/json\" },\n        body: JSON.stringify({ query: buildQuery(ids) }),\n      })\n        .then(function (res) {\n          return res.json();\n        })\n        .then(function (payload) {\n          if (payload.errors) {\n            if (payload.errors.length) {\n              throw new Error(payload.errors[0].message);\n            }\n          }\n\n          var missing = [];\n\n          \/\/ Aliases come back keyed by index, so the configured order is\n          \/\/ preserved for free - no client-side reordering needed.\n          var entries = targets\n            .map(function (target, index) {\n              var building = get(payload, [\"data\", \"b\" + index]);\n              if (!building) {\n                missing.push(target.id);\n                return null;\n              }\n              return {\n                id: target.id,\n                url: target.url,\n                building: building,\n                listings: get(payload, [\"data\", \"d\" + index]) || [],\n              };\n            })\n            .filter(Boolean);\n\n          if (missing.length) {\n            console.warn(\n              \"[liv.rent buildings] No building record for: \" +\n                missing.join(\", \"),\n            );\n          }\n\n          \/\/ Leave the post untouched rather than showing an empty frame.\n          if (!entries.length) return;\n\n          render(entries, root);\n        })\n        .catch(function (err) {\n          console.warn(\"[liv.rent buildings] Failed to load buildings.\", err);\n        });\n    }\n\n    \/\/ The block can be parsed after DOMContentLoaded has already fired.\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", load, false);\n    } else {\n      load();\n    }\n  })();\n<\/script>\n\n<!-- Where the block renders. Keep this after the script. -->\n<div class=\"liv-buildings-root\"><\/div>\n\n<style id=\"liv-buildings-subtitle-css\">\n.liv-buildings .liv-buildings__subtitle{display:block !important;font-size:14px !important;font-weight:500 !important;line-height:1.4 !important;color:#5b6472 !important;margin:-14px 0 20px !important;padding:0 !important;letter-spacing:0 !important;}\n<\/style>\n<script>\n(function(){\n  var TEXT = \"Featured buildings from CAPREIT\";\n  function place(){\n    var done = 0;\n    document.querySelectorAll('.liv-buildings').forEach(function(root){\n      var t = root.querySelector('.liv-buildings__title');\n      if(!t) return;\n      if(root.querySelector('.liv-buildings__subtitle')) { done++; return; }\n      var s = document.createElement('div');\n      s.className = 'liv-buildings__subtitle';\n      s.textContent = TEXT;\n      t.insertAdjacentElement('afterend', s);\n      done++;\n    });\n    return done;\n  }\n  if(document.readyState==='loading') document.addEventListener('DOMContentLoaded', place); else place();\n  var n=0, iv=setInterval(function(){ place(); if(++n>40) clearInterval(iv); }, 250);\n})();\n<\/script>\n\n\n<script id=\"capreit-cta-tracking\">\n(function(){\n  var PROV = \"bc\", PROVU = \"BC\";\n  function tag(){\n    document.querySelectorAll(\".liv-buildings\").forEach(function(root){\n      var cards = root.querySelectorAll(\"a.liv-buildings__card\");\n      Array.prototype.forEach.call(cards, function(a, i){\n        var pos = i + 1;\n        if(!a.getAttribute(\"data-building-id\")){\n          var m = (a.id || \"\").match(\/liv-blog-building-(\\d+)\/);\n          if(m) a.setAttribute(\"data-building-id\", m[1]);\n        }\n        if(!a.getAttribute(\"data-building-name\")){\n          var n = a.querySelector(\".liv-buildings__name\");\n          if(n) a.setAttribute(\"data-building-name\", n.textContent.trim());\n        }\n        a.setAttribute(\"data-province\", PROVU);\n        a.setAttribute(\"data-position\", String(pos));\n        a.setAttribute(\"data-cta-type\", \"building\");\n        a.id = \"blog-cta-capreit-\" + PROV + \"-building-\" + pos;\n      });\n      var f = root.querySelector(\"a.liv-buildings__footer-link\");\n      if(f){\n        f.id = \"blog-cta-capreit-\" + PROV + \"-footer-all-listings\";\n        f.setAttribute(\"data-province\", PROVU);\n        f.setAttribute(\"data-cta-type\", \"footer-all-listings\");\n      }\n    });\n  }\n  if(document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", tag); else tag();\n  var c = 0, iv = setInterval(function(){ tag(); if(++c > 40) clearInterval(iv); }, 250);\n  if(!window.__capreitCtaBound){\n    window.__capreitCtaBound = true;\n    \/\/ bubble phase, so anything that cancels the navigation has already run\n    document.addEventListener(\"click\", function(e){\n      if (e.defaultPrevented) return;                 \/\/ navigation was cancelled\n      if (typeof e.button === \"number\" && e.button !== 0) return;  \/\/ primary button only\n      var a = e.target && e.target.closest ? e.target.closest(\"a[id^='blog-cta-capreit-']\") : null;\n      if (!a) return;\n      var href = a.getAttribute(\"href\") || \"\";\n      if (!href) return;\n      if (href.charAt(0) === \"#\") return;\n      if (href.toLowerCase().indexOf(\"javascript:\") === 0) return;\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push({\n        event: \"capreit_blog_cta_click\",\n        cta_id: a.id,\n        cta_type: a.getAttribute(\"data-cta-type\") || \"\",\n        building_id: a.getAttribute(\"data-building-id\") || \"\",\n        building_name: a.getAttribute(\"data-building-name\") || \"\",\n        province: a.getAttribute(\"data-province\") || \"\",\n        position: a.getAttribute(\"data-position\") ? Number(a.getAttribute(\"data-position\")) : null,\n        link_url: a.href || \"\"\n      });\n    }, false);\n  }\n})();\n<\/script>\n\n\n\n<br><h2 id=\"first-last-rent\">Vancouver short-term rental rules [updated in 2026]<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>To legally&nbsp;operate&nbsp;a short-term rental in Vancouver, hosts must follow rules set under both city bylaws and&nbsp;<a href=\"https:\/\/www2.gov.bc.ca\/gov\/content\/housing-tenancy\/short-term-rentals\/short-term-rental-legislation\" target=\"_blank\" rel=\"noreferrer noopener\">B.C.&#8217;s Short-Term Rental Accommodations Act<\/a>. Here is what those rules require.&nbsp; &nbsp;&nbsp;<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Principal residence requirement<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>The most important rule is the principal residence requirement. A host may only&nbsp;operate&nbsp;a short-term rental in the home where they&nbsp;actually live&nbsp;most of the year: the address they use for mail, bills, identification, taxation, and insurance.&nbsp;<\/p>\n\n\n\n<p>Vacation properties, investment&nbsp;condos, and secondary suites (unless the host lives in the main unit on the same property) are not eligible for short-term rental use. The intent is to keep housing stock in the long-term rental market rather than converting it to tourist accommodation.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Licensing requirement<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>To legally&nbsp;operate&nbsp;a short-term rental in Vancouver, hosts need a&nbsp;<a href=\"https:\/\/vancouver.ca\/doing-business\/short-term-rentals.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">city business licence<\/a>. The application fee is $77, and the annual&nbsp;licence&nbsp;fee is $1,108. Only one&nbsp;licence&nbsp;is&nbsp;permitted&nbsp;per&nbsp;person, and&nbsp;licences&nbsp;cannot be issued to companies, societies, or commercial operations.&nbsp;Licences&nbsp;must be renewed each year by December 31, and the number must appear on every listing.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Listing requirements<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Every short-term rental listing on any platform,\u00a0including\u00a0liv.rent,\u00a0Airbnb and Vrbo,\u00a0must display two numbers: the host&#8217;s provincial registration number (issued by the province of B.C.) and the\u00a0city\u00a0business\u00a0licence\u00a0number. Platforms are required\u00a0by provincial law to remove listings that do not show valid numbers.\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">What is not allowed<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>The following are prohibited under Vancouver&#8217;s short-term rental rules:&nbsp;<\/p>\n\n\n\n<ul>\n<li>Renting a property that is not the operator&#8217;s principal residence&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>Operating without a valid city business&nbsp;licence&nbsp;and provincial registration number&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>Running a commercial short-term rental operation (e.g., renting multiple properties you do not live in)&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li>Listing on platforms without displaying valid&nbsp;licence&nbsp;and registration numbers&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Violations can result in municipal fines and provincial administrative penalties.&nbsp;&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">Who can operate a short-term rental in Vancouver?<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Understanding who qualifies is the first step. For a full walkthrough of the application process, fees, and what to prepare, see&nbsp;our&nbsp;<a href=\"https:\/\/liv.rent\/blog\/renters\/landlords-vancouver-short-term-rental-license\/\" target=\"_blank\" rel=\"noreferrer noopener\">step-by-step guide to getting your Vancouver short-term rental licence<\/a>.&nbsp; &nbsp;&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Homeowners<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Homeowners can&nbsp;operate&nbsp;a short-term rental only in their principal residence. A homeowner cannot list a second property or investment&nbsp;condo&nbsp;on any short-term rental platform, even if the unit is vacant.&nbsp;If the homeowner lives in the main unit of a property that includes a secondary suite or accessory dwelling unit, they may be eligible to rent that secondary unit short-term, subject to provincial rules.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Tenants<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Tenants can apply for a short-term rental&nbsp;licence, but only with written permission from their landlord. Without that written consent, the city will not issue a&nbsp;licence. Tenants should also check their lease carefully, as many standard rental agreements in B.C. prohibit subletting or&nbsp;operating&nbsp;short-term rentals without explicit approval.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Strata owners<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Strata owners face an\u00a0additional\u00a0layer of approval. Strata corporations in B.C. can restrict or prohibit short-term rentals entirely through their bylaws and can fine owners up to $1,000 per contravention per day for violating those bylaws, under\u00a0<a href=\"https:\/\/www.bclaws.gov.bc.ca\/civix\/document\/id\/complete\/statreg\/12_43_2000\" target=\"_blank\" rel=\"noreferrer noopener\">Strata Property Regulation 7.1<\/a>.\u00a0This means that even if a strata unit qualifies as the owner&#8217;s principal residence, the strata council can block short-term rental use. Confirm strata bylaw approval before applying for a city\u00a0licence.\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">Do you need a licence for short-term rentals?<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Yes, two separate&nbsp;licences&nbsp;are&nbsp;required. First, a provincial registration number from the B.C. government under the Short-Term Rental Accommodations Act. Second, a Vancouver city business&nbsp;licence. Both must be obtained before accepting any bookings, and both numbers must appear on every listing.&nbsp;<\/p>\n\n\n\n<p>Platforms are&nbsp;required&nbsp;to remove listings without valid provincial registration numbers and to cancel existing bookings for unregistered properties. Operating without both&nbsp;licences&nbsp;is not a grey&nbsp;area,&nbsp;it is a clear violation with real financial consequences.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">New British Columbia short-term rental laws<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>B.C.&#8217;s Short-Term Rental Accommodations Act came into force May 1, 2024,&nbsp;establishing&nbsp;a province-wide framework that applies to all municipalities with populations of 10,000 or more. The law introduced a provincial registration system, a principal residence requirement, mandatory platform data-sharing, and new enforcement powers.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Early results are significant. The province reported in early 2025 that one in every 10 short-term rentals in B.C. had returned to the long-term rental market or been listed for sale since the legislation passed.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Province-wide principal residence rule<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>Under the provincial law, short-term rentals are limited to the host&#8217;s usual place of residence, plus up to one secondary suite or accessory dwelling unit on the same property. Local governments can impose stricter rules but cannot&nbsp;relax&nbsp;this baseline.&nbsp;&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Enforcement changes<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p>The province&nbsp;established&nbsp;a Compliance and Enforcement Unit (CEU) specifically to enforce the Short-Term Rental Accommodations Act. The CEU has the power to conduct investigations, issue compliance orders, and impose administrative monetary penalties. Hosts and platforms must provide records to the CEU on&nbsp;request, or&nbsp;face&nbsp;additional&nbsp;penalties for non-compliance.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h3 style=\"color: #fe5f55\">Penalties for non-compliance<\/h3>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p>Penalties are layered across three levels:&nbsp;<\/p>\n\n\n\n<ul>\n<li><strong>Provincial (administrative):<\/strong>&nbsp;For hosts, administrative penalties range from $500 to $5,000 per day per infraction, and up to $10,000 per day for corporations&nbsp;(<a href=\"https:\/\/news.gov.bc.ca\/releases\/2024HOUS0020-000590\" target=\"_blank\" rel=\"noreferrer noopener\">B.C. government news release, April 2024<\/a>)&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><strong>Regional district (prosecution):<\/strong>&nbsp;Maximum&nbsp;fines increased from $2,000 to $50,000 per infraction&nbsp;(<a href=\"https:\/\/www2.gov.bc.ca\/gov\/content\/housing-tenancy\/short-term-rentals\/short-term-rental-legislation\" target=\"_blank\" rel=\"noreferrer noopener\">B.C.&#8217;s short-term rental legislation, gov.bc.ca<\/a>)&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><strong>Municipal (Vancouver):<\/strong>&nbsp;Ticketing fines up to $3,000 per infraction per day<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">What happens if you break short-term rental rules?<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Short-term rental violations in Vancouver carry penalties at three levels:&nbsp;<\/p>\n\n\n\n<ul>\n<li><strong>Provincial:<\/strong>&nbsp;Individual hosts face administrative penalties up to $5,000 per day per infraction; corporations up to $10,000 per day&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><strong>Regional district:<\/strong>&nbsp;Prosecution fines up to $50,000 per infraction&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><strong>Municipal:<\/strong>&nbsp;Vancouver ticketing fines up to $3,000 per infraction per day&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Platforms are legally required to share data with local governments and remove listings without a valid provincial registration number. Beyond fines, persistent violators risk&nbsp;licence&nbsp;suspension, court referral, and permanent exclusion from Vancouver&#8217;s short-term rental market.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">Can landlords still profit from short-term rentals?<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Yes, though figures vary depending on how revenue is measured. According to&nbsp;AirROI&#8217;s&nbsp;2026 dataset (April 2025 to March 2026), the average Vancouver short-term rental earned approximately $32,387 per year, at a nightly rate of $215 and an occupancy rate of 54.8%. This reflects the mean across all active listings, including lower-performing properties.&nbsp;<\/p>\n\n\n\n<p>Compliance has a real upfront cost: the $1,108 annual&nbsp;licence&nbsp;fee, provincial registration, and safety requirements all reduce net margins. Hosts who build these costs into their pricing from the start are better positioned for sustained profitability.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">Is an extended stay a better option than short-term renting?<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>For property owners who want to generate rental income without navigating Vancouver&#8217;s short-term rental framework, extended stays may be worth considering. Rentals with minimum stays of 90 consecutive days or more are exempt from B.C.&#8217;s Short-Term Rental Accommodations Act, the provincial registration requirement, and the principal residence rule. This exemption applies to both principal and non-principal residences across the province.&nbsp;<\/p>\n\n\n\n<p>Extended stays do fall under the Residential Tenancy Act, which means tenants have full statutory protections, including rent increase caps (2.3% in 2026), notice requirements, and the right to dispute resolution through the Residential Tenancy Branch. Landlords considering this route should review B.C.&#8217;s tenancy rules carefully.&nbsp;<\/p>\n\n\n\n<p>For renters, extended stays can offer more stability and greater legal&nbsp;protections&nbsp;than a short-term booking. You can find&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\" target=\"_blank\" rel=\"noreferrer noopener\">mid-term and long-term Vancouver rentals on liv.rent<\/a>.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">How liv.rent helps landlords stay compliant<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p>Navigating short-term rental rules is one thing. Finding a verified, long-term tenant who gives you&nbsp;stable, predictable income without the licensing and enforcement risk is another. For landlords weighing their options in Vancouver&#8217;s rental market,&nbsp;<a href=\"https:\/\/liv.rent\/\" target=\"_blank\" rel=\"noreferrer noopener\">liv.rent<\/a>&nbsp;offers a platform built around trust from the start.&nbsp;<\/p>\n\n\n\n<p>Every landlord listing on&nbsp;liv.rent&nbsp;goes through ID verification before their listings go live. Tenants can&nbsp;submit&nbsp;digital applications, sign leases, and pay rent through a single platform, reducing the paperwork burden and creating a clear record of the tenancy. For landlords managing multiple units,&nbsp;liv.rent&#8217;s&nbsp;Growth and Business plans include tenant screening reports powered by Equifax, automated rent collection, and shared management tools.&nbsp;<\/p>\n\n\n\n<p>Whether you are stepping back from short-term rentals in&nbsp;favour&nbsp;of the long-term&nbsp;market, or&nbsp;managing a compliant short-term rental alongside a longer portfolio, you can&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\/short-term\" target=\"_blank\" rel=\"noreferrer noopener\">browse and post Vancouver rental listings on liv.rent<\/a>.&nbsp;<\/p>\n\n\n\n<p><\/p>\n\n\n\n<br>\n<style>\n.background-general-cta-email-subscribe-rental-laws {\n  text-align: center;\n  color: #303030;\n  font-family: 'Inter', sans-serif;\n  font-size: 24px;\n}\n\n.cta-block-general-cta-email-subscribe-rental-laws p{\n  font-family: 'Inter', sans-serif;\n  color: #303030; \n  font-weight: 400;\n  text-align: center; \n  font-size: 16px;\n}\n\n.cta-block-general-cta-email-subscribe-rental-laws {\n  background-color: #F5F5F5;\n  border-radius: 16px;\n  padding: 30px;\n  text-align: center;\n  margin: 20px 0px;\n}\n.button-general-cta-email-subscribe-rental-laws {\n  margin-top: 20px;\n  padding: 12px 16px;\n  background: #1D415E;\n  border: 0px solid white;\n  box-shadow: 0px 6px 8px -2px rgba(29, 66, 94, 0.4), 0px 12px 16px rgba(32, 121, 193, 0.15);\n  border-radius: 6px;\n  cursor: pointer;\n  \n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 600;\n  font-size: 14px;\n  line-height: 16px;\n  text-align: center;\n  color: #FFFFFF;\n\n}\n  \n<\/style>\n<div class=\"background-general-cta-email-subscribe-rental-laws cta-block-general-cta-email-subscribe-rental-laws\">\n<h3><strong>Join Our Newsletter<\/strong><\/h3>\n\n<p>For more info on rental laws and policies (e.g. eviction, lease agreements, repairs &amp; maintenance), subscribe to get the latest news.<\/p>\n\n<a href=\"https:\/\/315027fd.sibforms.com\/serve\/MUIEALxBmw-zX8J7nIDbE8Y0GsbO2XD2wyS5o8IJ7wVaedytZTfE-Ysnf2unVSDuBMQ_DiIreTYMftk3u84zjN-NZ459-r4fafSVJmvHqufcCZsHOdl9YPdQlyNO_8e-aEyO3JswcwrjPcNt9Ll22P85SQ6zAIiqlLhL9S2Es9edJgfjg0307yN6DptRbjGnHobRqNlUNRLczWrl\" target=\"_blank\" rel=\"noopener noreferrer\"><button id=\"button-general-cta-email-subscribe-rental-laws\" class=\"button-general-cta-email-subscribe-rental-laws\">Subscribe<\/button><\/a>\n<\/div>\n<br>\n\n\n\n<p><\/p>\n\n\n\n<br><h2 id=\"first-last-rent\">Frequently asked questions (FAQs)<\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2>Are short-term rentals legal in Vancouver?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Yes. Short-term rentals are legal in Vancouver if&nbsp;operated&nbsp;from the host&#8217;s principal residence, with a valid city business&nbsp;licence&nbsp;and a provincial registration number from the B.C. government.&nbsp;<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2>What is the penalty for illegal short-term rentals? <\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Municipal ticketing fines in Vancouver can reach $3,000 per infraction per day. Provincial administrative penalties under B.C.&#8217;s Short-Term Rental Accommodations Act can reach $5,000 per day per infraction for individuals and $10,000 per day for corporations. Regional district prosecution fines can reach up to $50,000 per infraction. Persistent violators may also face court proceedings and&nbsp;licence&nbsp;suspension.&nbsp;<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2>Is long-term renting safer than Airbnb?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>For landlords, long-term renting carries a lower compliance burden: no short-term rental&nbsp;licence, no provincial registration, and no risk of platform delisting. It also provides steadier income and a governed tenancy relationship under the Residential Tenancy Act. For renters, a long-term tenancy comes with stronger legal protections, including security of tenure, rent increase caps, and formal dispute resolution. Airbnb and short-term stays suit&nbsp;travellers&nbsp;or people needing flexibility, but they do not carry the same tenant protections.&nbsp;<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2>How do I know if I am booking a registered short-term rental?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Every legal short-term rental listing in B.C. must display a valid provincial registration number and a city business&nbsp;licence&nbsp;number. If you are booking in Vancouver and neither number appears on the listing, the rental may not be compliant.&nbsp;<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2>What is the difference between an Airbnb and a short-term rental?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Airbnb is a platform where hosts list their properties for short-term bookings. A short-term rental is the accommodation itself: any home or room rented for fewer than 90 consecutive days. An Airbnb listing is one type of short-term rental, but short-term rentals can also be booked through Vrbo, direct listings, or other platforms.&nbsp;<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2>What is the 90-day rule for short-term rentals?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>In B.C., the 90-day rule is the threshold that separates short-term rentals from long-term tenancies. Any rental of fewer than 90 consecutive days requires a provincial registration number under the Short-Term Rental Accommodations Act. Rentals of&nbsp;90 days&nbsp;or more are exempt from provincial short-term rental rules and are instead covered by the Residential Tenancy Act.&nbsp;<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Are short-term rentals legal in Vancouver?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Yes. Short-term rentals are legal in Vancouver if&nbsp;operated&nbsp;from the host's principal residence, with a valid city business&nbsp;licence&nbsp;and a provincial registration number from the B.C. government.&nbsp;<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"What is the penalty for illegal short-term rentals? \",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Municipal ticketing fines in Vancouver can reach $3,000 per infraction per day. Provincial administrative penalties under B.C.'s Short-Term Rental Accommodations Act can reach $5,000 per day per infraction for individuals and $10,000 per day for corporations. Regional district prosecution fines can reach up to $50,000 per infraction. Persistent violators may also face court proceedings and&nbsp;licence&nbsp;suspension.&nbsp;<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Is long-term renting safer than Airbnb?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>For landlords, long-term renting carries a lower compliance burden: no short-term rental&nbsp;licence, no provincial registration, and no risk of platform delisting. It also provides steadier income and a governed tenancy relationship under the Residential Tenancy Act. For renters, a long-term tenancy comes with stronger legal protections, including security of tenure, rent increase caps, and formal dispute resolution. Airbnb and short-term stays suit&nbsp;travellers&nbsp;or people needing flexibility, but they do not carry the same tenant protections.&nbsp;<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"How do I know if I am booking a registered short-term rental?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Every legal short-term rental listing in B.C. must display a valid provincial registration number and a city business&nbsp;licence&nbsp;number. If you are booking in Vancouver and neither number appears on the listing, the rental may not be compliant.&nbsp;<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"What is the difference between an Airbnb and a short-term rental?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Airbnb is a platform where hosts list their properties for short-term bookings. A short-term rental is the accommodation itself: any home or room rented for fewer than 90 consecutive days. An Airbnb listing is one type of short-term rental, but short-term rentals can also be booked through Vrbo, direct listings, or other platforms.&nbsp;<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"What is the 90-day rule for short-term rentals?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>In B.C., the 90-day rule is the threshold that separates short-term rentals from long-term tenancies. Any rental of fewer than 90 consecutive days requires a provincial registration number under the Short-Term Rental Accommodations Act. Rentals of&nbsp;90 days&nbsp;or more are exempt from provincial short-term rental rules and are instead covered by the Residential Tenancy Act.&nbsp;<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Vancouver short-term rental rules in 2026 are strictly regulated under city bylaws and BC legislation. Learn about licensing requirements, the principal residence rule, and what property owners need to know to stay compliant. <\/p>\n","protected":false},"author":52,"featured_media":67931,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Short-term rentals in Vancouver are legal, but they&nbsp;come&nbsp;with a strict set of rules that affect both property owners and the renters who book them. Over the past two years, the regulatory landscape has shifted considerably. B.C.'s Short-Term Rental Accommodations Act came into force in May 2024, and&nbsp;Vancouver extended its own definition of a&nbsp;<a href=\"https:\/\/vancouver.ca\/news-calendar\/city-enhances-str-rules-align-with-provincial-legislation-sep-2024.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">short-term rental&nbsp;in&nbsp;October&nbsp;8,&nbsp;2024<\/a>.&nbsp;Together, these changes mean there are now two layers of compliance to understand: city bylaws and provincial legislation.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Whether you are a homeowner thinking about listing your place on Airbnb, a tenant wondering if you can sublet for a weekend, or a renter searching for a verified place to stay, this guide covers everything you need to know about Vancouver short-term rental rules in 2026.&nbsp;<br><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">What is a short-term rental in Vancouver?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Definition of a short-term rental<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>In Vancouver, a short-term rental is any entire home or room within a home rented for fewer than&nbsp;90 consecutive days.&nbsp;That definition changed in October 2024, when the city updated its bylaws to align with B.C.'s provincial legislation. Previously, the threshold was fewer than&nbsp;30 days.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The practical effect: rentals between 30 and&nbsp;89 days&nbsp;now fall under the short-term rental framework and require a city business&nbsp;licence&nbsp;and a provincial registration number, not a long-term rental&nbsp;licence.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Examples of short-term rentals<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Common short-term rentals include entire homes or spare rooms listed on Airbnb or Vrbo, furnished suites rented to&nbsp;travellers&nbsp;for a few nights or a few weeks, and any accommodation arrangement in a host's principal residence that falls below the 90-day mark.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Difference between short-term and long-term rentals<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The dividing line is&nbsp;90 days. Rentals of 90 consecutive days or more are considered&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\/long-term\" target=\"_blank\" rel=\"noreferrer noopener\">long-term&nbsp;rentals<\/a>&nbsp;and are exempt from provincial&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\/short-term\" target=\"_blank\" rel=\"noreferrer noopener\">short-term rental<\/a>&nbsp;registration requirements entirely, whether the property is a principal residence or not. Long-term rentals are governed instead by B.C.'s Residential Tenancy Act and the protections it provides to tenants.&nbsp;&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Are short-term rentals legal in Vancouver?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Yes. Short-term rentals are legal in Vancouver, provided the host holds a valid city business&nbsp;licence, has a provincial registration number, and&nbsp;operates&nbsp;from their principal residence. As of April 2026, the City of Vancouver counted 4,969 active short-term rental listings, with 3,248 business&nbsp;licences&nbsp;issued for 2026 and 69&nbsp;licences&nbsp;suspended within the year.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The city does not tolerate unlicensed operators, and enforcement is active and&nbsp;data-driven. Legal operation requires following both city and provincial rules from the outset.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Vancouver short-term rental rules [updated in 2025]<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To legally&nbsp;operate&nbsp;a short-term rental in Vancouver, hosts must follow rules set under both city bylaws and&nbsp;<a href=\"https:\/\/www2.gov.bc.ca\/gov\/content\/housing-tenancy\/short-term-rentals\/short-term-rental-legislation\" target=\"_blank\" rel=\"noreferrer noopener\">B.C.'s Short-Term Rental Accommodations Act<\/a>. Here is what those rules require.&nbsp; &nbsp;&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Principal residence requirement<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The most important rule is the principal residence requirement. A host may only&nbsp;operate&nbsp;a short-term rental in the home where they&nbsp;actually live&nbsp;most of the year: the address they use for mail, bills, identification, taxation, and insurance.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Vacation properties, investment&nbsp;condos, and secondary suites (unless the host lives in the main unit on the same property) are not eligible for short-term rental use. The intent is to keep housing stock in the long-term rental market rather than converting it to tourist accommodation.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Licensing requirement<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>To legally&nbsp;operate&nbsp;a short-term rental in Vancouver, hosts need a&nbsp;<a href=\"https:\/\/vancouver.ca\/doing-business\/short-term-rentals.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">city business licence<\/a>. The application fee is $77, and the annual&nbsp;licence&nbsp;fee is $1,108. Only one&nbsp;licence&nbsp;is&nbsp;permitted&nbsp;per&nbsp;person, and&nbsp;licences&nbsp;cannot be issued to companies, societies, or commercial operations.&nbsp;Licences&nbsp;must be renewed each year by December 31, and the number must appear on every listing.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Listing requirements<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Every short-term rental listing on any platform,&nbsp;including&nbsp;liv.rent,&nbsp;Airbnb and Vrbo,&nbsp;must display two numbers: the host's provincial registration number (issued by the province of B.C.) and the&nbsp;city&nbsp;business&nbsp;licence&nbsp;number. Platforms are required&nbsp;by provincial law to remove listings that do not show valid numbers.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Every short-term rental listing on any platform,&nbsp;including&nbsp;liv.rent,&nbsp;Airbnb and Vrbo,&nbsp;must display two numbers: the host's provincial registration number (issued by the province of B.C.) and the&nbsp;city&nbsp;business&nbsp;licence&nbsp;number. Platforms are required&nbsp;by provincial law to remove listings that do not show valid numbers.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">What is not allowed<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The following are prohibited under Vancouver's short-term rental rules:&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>Renting a property that is not the operator's principal residence&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>Operating without a valid city business&nbsp;licence&nbsp;and provincial registration number&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>Running a commercial short-term rental operation (e.g., renting multiple properties you do not live in)&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li>Listing on platforms without displaying valid&nbsp;licence&nbsp;and registration numbers&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>Violations can result in municipal fines and provincial administrative penalties.&nbsp;&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Who can operate a short-term rental in Vancouver?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Understanding who qualifies is the first step. For a full walkthrough of the application process, fees, and what to prepare, see&nbsp;our&nbsp;<a href=\"https:\/\/liv.rent\/blog\/renters\/landlords-vancouver-short-term-rental-license\/\" target=\"_blank\" rel=\"noreferrer noopener\">step-by-step guide to getting your Vancouver short-term rental licence<\/a>.&nbsp; &nbsp;&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Homeowners<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Homeowners can&nbsp;operate&nbsp;a short-term rental only in their principal residence. A homeowner cannot list a second property or investment&nbsp;condo&nbsp;on any short-term rental platform, even if the unit is vacant.&nbsp;If the homeowner lives in the main unit of a property that includes a secondary suite or accessory dwelling unit, they may be eligible to rent that secondary unit short-term, subject to provincial rules.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Tenants<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Tenants can apply for a short-term rental&nbsp;licence, but only with written permission from their landlord. Without that written consent, the city will not issue a&nbsp;licence. Tenants should also check their lease carefully, as many standard rental agreements in B.C. prohibit subletting or&nbsp;operating&nbsp;short-term rentals without explicit approval.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Strata owners<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Strata owners face an&nbsp;additional&nbsp;layer of approval. Strata corporations in B.C. can restrict or prohibit short-term rentals entirely through their bylaws and can fine owners up to&nbsp;Strata corporations in B.C. can restrict or prohibit short-term rentals entirely through their bylaws and can fine owners up to $1,000 per contravention per day for violating those bylaws, under&nbsp;<a href=\"https:\/\/www.bclaws.gov.bc.ca\/civix\/document\/id\/complete\/statreg\/12_43_2000\" target=\"_blank\" rel=\"noreferrer noopener\">Strata Property Regulation 7.1<\/a>.&nbsp;This means that even if a strata unit qualifies as the owner's principal residence, the strata council can block short-term rental use. Confirm strata bylaw approval before applying for a city&nbsp;licence.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Do you need a licence for short-term rentals?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Yes, two separate&nbsp;licences&nbsp;are&nbsp;required. First, a provincial registration number from the B.C. government under the Short-Term Rental Accommodations Act. Second, a Vancouver city business&nbsp;licence. Both must be obtained before accepting any bookings, and both numbers must appear on every listing.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Platforms are&nbsp;required&nbsp;to remove listings without valid provincial registration numbers and to cancel existing bookings for unregistered properties. Operating without both&nbsp;licences&nbsp;is not a grey&nbsp;area,&nbsp;it is a clear violation with real financial consequences.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">New British Columbia short-term rental laws<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>B.C.'s Short-Term Rental Accommodations Act came into force May 1, 2024,&nbsp;establishing&nbsp;a province-wide framework that applies to all municipalities with populations of 10,000 or more. The law introduced a provincial registration system, a principal residence requirement, mandatory platform data-sharing, and new enforcement powers.&nbsp;&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Early results are significant. The province reported in early 2025 that one in every 10 short-term rentals in B.C. had returned to the long-term rental market or been listed for sale since the legislation passed.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Province-wide principal residence rule<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Under the provincial law, short-term rentals are limited to the host's usual place of residence, plus up to one secondary suite or accessory dwelling unit on the same property. Local governments can impose stricter rules but cannot&nbsp;relax&nbsp;this baseline.&nbsp;&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Enforcement changes<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The province&nbsp;established&nbsp;a Compliance and Enforcement Unit (CEU) specifically to enforce the Short-Term Rental Accommodations Act. The CEU has the power to conduct investigations, issue compliance orders, and impose administrative monetary penalties. Hosts and platforms must provide records to the CEU on&nbsp;request, or&nbsp;face&nbsp;additional&nbsp;penalties for non-compliance.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h3 style=\"color: #fe5f55\">Penalties for non-compliance<\/h3>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p>&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Penalties are layered across three levels:&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li><strong>Provincial (administrative):<\/strong>&nbsp;For hosts, administrative penalties range from $500 to $5,000 per day per infraction, and up to $10,000 per day for corporations&nbsp;(<a href=\"https:\/\/news.gov.bc.ca\/releases\/2024HOUS0020-000590\" target=\"_blank\" rel=\"noreferrer noopener\">B.C. government news release, April 2024<\/a>)&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li><strong>Regional district (prosecution):<\/strong>&nbsp;Maximum&nbsp;fines increased from $2,000 to $50,000 per infraction&nbsp;(<a href=\"https:\/\/www2.gov.bc.ca\/gov\/content\/housing-tenancy\/short-term-rentals\/short-term-rental-legislation\" target=\"_blank\" rel=\"noreferrer noopener\">B.C.'s short-term rental legislation, gov.bc.ca<\/a>)&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li><strong>Municipal (Vancouver):<\/strong>&nbsp;Ticketing fines up to $3,000 per infraction per day<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">What happens if you break short-term rental rules?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p>Short-term rental violations in Vancouver carry penalties at three levels:&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li><strong>Provincial:<\/strong>&nbsp;Individual hosts face administrative penalties up to $5,000 per day per infraction; corporations up to $10,000 per day&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li><strong>Regional district:<\/strong>&nbsp;Prosecution fines up to $50,000 per infraction&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:list -->\n<ul><!-- wp:list-item -->\n<li><strong>Municipal:<\/strong>&nbsp;Vancouver ticketing fines up to $3,000 per infraction per day&nbsp;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>Platforms are legally required to share data with local governments and remove listings without a valid provincial registration number. Beyond fines, persistent violators risk&nbsp;licence&nbsp;suspension, court referral, and permanent exclusion from Vancouver's short-term rental market.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Can landlords still profit from short-term rentals?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Yes, though figures vary depending on how revenue is measured. According to&nbsp;AirROI's&nbsp;2026 dataset (April 2025 to March 2026), the average Vancouver short-term rental earned approximately $32,387 per year, at a nightly rate of $215 and an occupancy rate of 54.8%. This reflects the mean across all active listings, including lower-performing properties.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Compliance has a real upfront cost: the $1,108 annual&nbsp;licence&nbsp;fee, provincial registration, and safety requirements all reduce net margins. Hosts who build these costs into their pricing from the start are better positioned for sustained profitability.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Is an extended stay a better option than short-term renting?<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>For property owners who want to generate rental income without navigating Vancouver's short-term rental framework, extended stays may be worth considering. Rentals with minimum stays of 90 consecutive days or more are exempt from B.C.'s Short-Term Rental Accommodations Act, the provincial registration requirement, and the principal residence rule. This exemption applies to both principal and non-principal residences across the province.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Extended stays do fall under the Residential Tenancy Act, which means tenants have full statutory protections, including rent increase caps (2.3% in 2026), notice requirements, and the right to dispute resolution through the Residential Tenancy Branch. Landlords considering this route should review B.C.'s tenancy rules carefully.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>For renters, extended stays can offer more stability and greater legal&nbsp;protections&nbsp;than a short-term booking. You can find&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\" target=\"_blank\" rel=\"noreferrer noopener\">mid-term and long-term Vancouver rentals on liv.rent<\/a>.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">How liv.rent helps landlords stay compliant<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Navigating short-term rental rules is one thing. Finding a verified, long-term tenant who gives you&nbsp;stable, predictable income without the licensing and enforcement risk is another. For landlords weighing their options in Vancouver's rental market,&nbsp;<a href=\"https:\/\/liv.rent\/\" target=\"_blank\" rel=\"noreferrer noopener\">liv.rent<\/a>&nbsp;offers a platform built around trust from the start.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Every landlord listing on&nbsp;liv.rent&nbsp;goes through ID verification before their listings go live. Tenants can&nbsp;submit&nbsp;digital applications, sign leases, and pay rent through a single platform, reducing the paperwork burden and creating a clear record of the tenancy. For landlords managing multiple units,&nbsp;liv.rent's&nbsp;Growth and Business plans include tenant screening reports powered by Equifax, automated rent collection, and shared management tools.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Whether you are stepping back from short-term rentals in&nbsp;favour&nbsp;of the long-term&nbsp;market, or&nbsp;managing a compliant short-term rental alongside a longer portfolio, you can&nbsp;<a href=\"https:\/\/liv.rent\/rental-listings\/city\/vancouver\/short-term\" target=\"_blank\" rel=\"noreferrer noopener\">browse and post Vancouver rental listings on liv.rent<\/a>.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:block {\"ref\":32203} \/-->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n<br><h2 id=\"first-last-rent\">Frequently asked questions (FAQs)<\/h2>\n<!-- \/wp:html -->\n\n<!-- wp:structured-content\/faq {\"version\":2} -->\n<!-- wp:structured-content\/faq-item {\"question\":\"Are short-term rentals legal in Vancouver?\"} -->\n<!-- wp:paragraph {\"placeholder\":\"Enter your answer here\"} -->\n<p>Yes. Short-term rentals are legal in Vancouver if&nbsp;operated&nbsp;from the host's principal residence, with a valid city business&nbsp;licence&nbsp;and a provincial registration number from the B.C. government.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n<!-- \/wp:structured-content\/faq-item -->\n\n<!-- wp:structured-content\/faq-item {\"question\":\"What is the penalty for illegal short-term rentals? \"} -->\n<!-- wp:paragraph {\"placeholder\":\"Enter your answer here\"} -->\n<p>Municipal ticketing fines in Vancouver can reach $3,000 per infraction per day. Provincial administrative penalties under B.C.'s Short-Term Rental Accommodations Act can reach $5,000 per day per infraction for individuals and $10,000 per day for corporations. Regional district prosecution fines can reach up to $50,000 per infraction. Persistent violators may also face court proceedings and&nbsp;licence&nbsp;suspension.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n<!-- \/wp:structured-content\/faq-item -->\n\n<!-- wp:structured-content\/faq-item {\"question\":\"Is long-term renting safer than Airbnb?\"} -->\n<!-- wp:paragraph {\"placeholder\":\"Enter your answer here\"} -->\n<p>For landlords, long-term renting carries a lower compliance burden: no short-term rental&nbsp;licence, no provincial registration, and no risk of platform delisting. It also provides steadier income and a governed tenancy relationship under the Residential Tenancy Act. For renters, a long-term tenancy comes with stronger legal protections, including security of tenure, rent increase caps, and formal dispute resolution. Airbnb and short-term stays suit&nbsp;travellers&nbsp;or people needing flexibility, but they do not carry the same tenant protections.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n<!-- \/wp:structured-content\/faq-item -->\n\n<!-- wp:structured-content\/faq-item {\"question\":\"How do I know if I am booking a registered short-term rental?\"} -->\n<!-- wp:paragraph {\"placeholder\":\"Enter your answer here\"} -->\n<p>Every legal short-term rental listing in B.C. must display a valid provincial registration number and a city business&nbsp;licence&nbsp;number. If you are booking in Vancouver and neither number appears on the listing, the rental may not be compliant.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n<!-- \/wp:structured-content\/faq-item -->\n\n<!-- wp:structured-content\/faq-item {\"question\":\"What is the difference between an Airbnb and a short-term rental?\"} -->\n<!-- wp:paragraph {\"placeholder\":\"Enter your answer here\"} -->\n<p>Airbnb is a platform where hosts list their properties for short-term bookings. A short-term rental is the accommodation itself: any home or room rented for fewer than 90 consecutive days. An Airbnb listing is one type of short-term rental, but short-term rentals can also be booked through Vrbo, direct listings, or other platforms.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n<!-- \/wp:structured-content\/faq-item -->\n\n<!-- wp:structured-content\/faq-item {\"question\":\"What is the 90-day rule for short-term rentals?\"} -->\n<!-- wp:paragraph {\"placeholder\":\"Enter your answer here\"} -->\n<p>In B.C., the 90-day rule is the threshold that separates short-term rentals from long-term tenancies. Any rental of fewer than 90 consecutive days requires a provincial registration number under the Short-Term Rental Accommodations Act. Rentals of&nbsp;90 days&nbsp;or more are exempt from provincial short-term rental rules and are instead covered by the Residential Tenancy Act.&nbsp;<\/p>\n<!-- \/wp:paragraph -->\n<!-- \/wp:structured-content\/faq-item -->\n<!-- \/wp:structured-content\/faq -->","_et_gb_content_width":"","inline_featured_image":false},"categories":[528,621,520],"tags":[1029,579,591,349],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vancouver Short-term Rental Rules Explained (2026)<\/title>\n<meta name=\"description\" content=\"Know Vancouver short-term rental rules like licensing requirements, BC regulations, &amp; key compliance info for property owners.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vancouver Short-term Rental Rules Explained (2026)\" \/>\n<meta property=\"og:description\" content=\"Know Vancouver short-term rental rules like licensing requirements, BC regulations, &amp; key compliance info for property owners.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\" \/>\n<meta property=\"og:site_name\" content=\"liv.rent blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/liv.rent\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-11T19:25:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-28T19:45:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/liv.rent\/blog\/wp-content\/uploads\/2026\/05\/2026.04_Short-Term-Rental-Rules-Explained-VAN_VAN-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1620\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Zandro Salvo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@liv_rent\" \/>\n<meta name=\"twitter:site\" content=\"@liv_rent\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zandro Salvo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\"},\"author\":{\"name\":\"Zandro Salvo\",\"@id\":\"https:\/\/liv.rent\/blog\/#\/schema\/person\/bc225877d5c8f17061417588bee3895b\"},\"headline\":\"Vancouver short-term rental rules explained [2026]\",\"datePublished\":\"2026-05-11T19:25:13+00:00\",\"dateModified\":\"2026-08-28T19:45:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\"},\"wordCount\":2258,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/liv.rent\/blog\/#organization\"},\"keywords\":[\"Fifa2026\",\"Landlord Tips\",\"Renter Tips\",\"Vancouver\"],\"articleSection\":[\"BC\",\"Featured\",\"Landlords\"],\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\",\"url\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\",\"name\":\"Vancouver Short-term Rental Rules Explained (2026)\",\"isPartOf\":{\"@id\":\"https:\/\/liv.rent\/blog\/#website\"},\"datePublished\":\"2026-05-11T19:25:13+00:00\",\"dateModified\":\"2026-08-28T19:45:19+00:00\",\"description\":\"Know Vancouver short-term rental rules like licensing requirements, BC regulations, & key compliance info for property owners.\",\"breadcrumb\":{\"@id\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/liv.rent\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vancouver short-term rental rules explained [2026]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/liv.rent\/blog\/#website\",\"url\":\"https:\/\/liv.rent\/blog\/\",\"name\":\"Liv Rent\",\"description\":\"Rental Made Easy\",\"publisher\":{\"@id\":\"https:\/\/liv.rent\/blog\/#organization\"},\"alternateName\":\"liv.rent\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/liv.rent\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/liv.rent\/blog\/#organization\",\"name\":\"Liv Rent\",\"alternateName\":\"liv.rent\",\"url\":\"https:\/\/liv.rent\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/liv.rent\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/liv.rent\/blog\/wp-content\/uploads\/2020\/03\/liv-rent-logo-1.png\",\"contentUrl\":\"https:\/\/liv.rent\/blog\/wp-content\/uploads\/2020\/03\/liv-rent-logo-1.png\",\"width\":1000,\"height\":457,\"caption\":\"Liv Rent\"},\"image\":{\"@id\":\"https:\/\/liv.rent\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/liv.rent\/\",\"https:\/\/twitter.com\/liv_rent\",\"https:\/\/www.instagram.com\/liv.rent\/\",\"https:\/\/www.youtube.com\/channel\/UCyx0INp1qqQ2Xhw-rMiqQiA\",\"https:\/\/www.pinterest.ca\/livrent\/\",\"https:\/\/www.tiktok.com\/@liv.rent\",\"https:\/\/www.linkedin.com\/company\/livrent\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/liv.rent\/blog\/#\/schema\/person\/bc225877d5c8f17061417588bee3895b\",\"name\":\"Zandro Salvo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/liv.rent\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6475a956bc01b7885fb6b867dc823bd9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6475a956bc01b7885fb6b867dc823bd9?s=96&d=mm&r=g\",\"caption\":\"Zandro Salvo\"},\"url\":\"https:\/\/liv.rent\/blog\/author\/zandro-salvo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vancouver Short-term Rental Rules Explained (2026)","description":"Know Vancouver short-term rental rules like licensing requirements, BC regulations, & key compliance info for property owners.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/","og_locale":"en_US","og_type":"article","og_title":"Vancouver Short-term Rental Rules Explained (2026)","og_description":"Know Vancouver short-term rental rules like licensing requirements, BC regulations, & key compliance info for property owners.","og_url":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/","og_site_name":"liv.rent blog","article_publisher":"https:\/\/www.facebook.com\/liv.rent\/","article_published_time":"2026-05-11T19:25:13+00:00","article_modified_time":"2026-08-28T19:45:19+00:00","og_image":[{"width":1620,"height":1080,"url":"https:\/\/liv.rent\/blog\/wp-content\/uploads\/2026\/05\/2026.04_Short-Term-Rental-Rules-Explained-VAN_VAN-1.png","type":"image\/png"}],"author":"Zandro Salvo","twitter_card":"summary_large_image","twitter_creator":"@liv_rent","twitter_site":"@liv_rent","twitter_misc":{"Written by":"Zandro Salvo","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#article","isPartOf":{"@id":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/"},"author":{"name":"Zandro Salvo","@id":"https:\/\/liv.rent\/blog\/#\/schema\/person\/bc225877d5c8f17061417588bee3895b"},"headline":"Vancouver short-term rental rules explained [2026]","datePublished":"2026-05-11T19:25:13+00:00","dateModified":"2026-08-28T19:45:19+00:00","mainEntityOfPage":{"@id":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/"},"wordCount":2258,"commentCount":0,"publisher":{"@id":"https:\/\/liv.rent\/blog\/#organization"},"keywords":["Fifa2026","Landlord Tips","Renter Tips","Vancouver"],"articleSection":["BC","Featured","Landlords"],"inLanguage":"en-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/","url":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/","name":"Vancouver Short-term Rental Rules Explained (2026)","isPartOf":{"@id":"https:\/\/liv.rent\/blog\/#website"},"datePublished":"2026-05-11T19:25:13+00:00","dateModified":"2026-08-28T19:45:19+00:00","description":"Know Vancouver short-term rental rules like licensing requirements, BC regulations, & key compliance info for property owners.","breadcrumb":{"@id":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/liv.rent\/blog\/landlords\/vancouver-short-term-rental-rules\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/liv.rent\/blog\/"},{"@type":"ListItem","position":2,"name":"Vancouver short-term rental rules explained [2026]"}]},{"@type":"WebSite","@id":"https:\/\/liv.rent\/blog\/#website","url":"https:\/\/liv.rent\/blog\/","name":"Liv Rent","description":"Rental Made Easy","publisher":{"@id":"https:\/\/liv.rent\/blog\/#organization"},"alternateName":"liv.rent","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/liv.rent\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-CA"},{"@type":"Organization","@id":"https:\/\/liv.rent\/blog\/#organization","name":"Liv Rent","alternateName":"liv.rent","url":"https:\/\/liv.rent\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/liv.rent\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/liv.rent\/blog\/wp-content\/uploads\/2020\/03\/liv-rent-logo-1.png","contentUrl":"https:\/\/liv.rent\/blog\/wp-content\/uploads\/2020\/03\/liv-rent-logo-1.png","width":1000,"height":457,"caption":"Liv Rent"},"image":{"@id":"https:\/\/liv.rent\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/liv.rent\/","https:\/\/twitter.com\/liv_rent","https:\/\/www.instagram.com\/liv.rent\/","https:\/\/www.youtube.com\/channel\/UCyx0INp1qqQ2Xhw-rMiqQiA","https:\/\/www.pinterest.ca\/livrent\/","https:\/\/www.tiktok.com\/@liv.rent","https:\/\/www.linkedin.com\/company\/livrent\/"]},{"@type":"Person","@id":"https:\/\/liv.rent\/blog\/#\/schema\/person\/bc225877d5c8f17061417588bee3895b","name":"Zandro Salvo","image":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/liv.rent\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6475a956bc01b7885fb6b867dc823bd9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6475a956bc01b7885fb6b867dc823bd9?s=96&d=mm&r=g","caption":"Zandro Salvo"},"url":"https:\/\/liv.rent\/blog\/author\/zandro-salvo\/"}]}},"_links":{"self":[{"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/posts\/67895"}],"collection":[{"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/comments?post=67895"}],"version-history":[{"count":19,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/posts\/67895\/revisions"}],"predecessor-version":[{"id":69148,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/posts\/67895\/revisions\/69148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/media\/67931"}],"wp:attachment":[{"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/media?parent=67895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/categories?post=67895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liv.rent\/blog\/wp-json\/wp\/v2\/tags?post=67895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}