{"id":2042,"date":"2025-10-16T15:06:15","date_gmt":"2025-10-16T15:06:15","guid":{"rendered":"https:\/\/skyrun.com\/minneapolis\/?page_id=2042"},"modified":"2026-02-03T17:38:31","modified_gmt":"2026-02-03T17:38:31","slug":"guide-to-minneapolis-short-term-rental-regulations","status":"publish","type":"page","link":"https:\/\/skyrun.com\/minneapolis\/guide-to-minneapolis-short-term-rental-regulations\/","title":{"rendered":"Guide to Minneapolis Short Term Rental Regulations"},"content":{"rendered":"\n<p><em>Updated for 202<\/em>6<\/p>\n\n\n\n<p>If you own (or plan to own) a property in Minneapolis and want to run it as a short-term rental (STR), there\u2019s a substantial regulatory framework to navigate. The rules are intended to balance hosting opportunities with neighborhood stability, safety, and housing supply. Here\u2019s a more in-depth look at what you need to know.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Counts as a Short-Term Rental in Minneapolis<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An STR is any residential unit (or part of one) leased out for less than 30 consecutive days.<\/li>\n\n\n\n<li>Even if you\u2019re renting part of your home (a room, basement, etc.), the unit must still adhere to applicable safety, zoning, and licensing standards.<\/li>\n<\/ul>\n\n\n\n<p>Because state-level taxation and lodging laws apply to all STRs in Minnesota, you\u2019ll have to comply at both city and state level regulations.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-6fcd60af gb-headline-text\">Short Term Rental Licensing, Registration &amp; Eligibility in Minneapolis <\/h2>\n\n\n\n<p>Minneapolis divides short-term rentals into categories based on ownership\/occupancy status. Each comes with different processes, fees, and constraints.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Category<\/th><th>When It Applies<\/th><th>Licensing \/ Registration Requirement<\/th><th>Additional Notes<\/th><\/tr><\/thead><tbody><tr><td><strong>Owner-occupied, occupant stays during guest visits<\/strong><\/td><td>You live in the same unit and remain present while guests stay<\/td><td>You must register with the city (not a full license) <\/td><td>Lower barrier; safety, insurance, and neighbor rules still apply<\/td><\/tr><tr><td><strong>Owner-occupied, but absent during guest stay<\/strong><\/td><td>You own the home, but leave during guest stays<\/td><td>You register and pay a fee (recent references show ~$46)<\/td><td>Treated differently than fully non-owner units<\/td><\/tr><tr><td><strong>Non-owner-occupied units \/ whole properties<\/strong><\/td><td>You do NOT live in the unit being rented (i.e. rentals, investment properties)<\/td><td>Must obtain a standard rental license under Minneapolis\u2019s rental\/STR licensing process <\/td><td>More inspections, more requirements, more oversight<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Caps and Limits on Short Term Rentals<\/h3>\n\n\n\n<p>Each property owner is limited to one short\u2010term rental property beyond their primary residence.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each property owner is limited to one short\u2010term rental property beyond their primary residence. <\/li>\n\n\n\n<li>In buildings of 20 or more units, no more than <strong>10% of units<\/strong> may operate as STRs. <\/li>\n\n\n\n<li>Condo association rules, HOA rules, or lease rules can override city law (i.e. prohibit STRs even if city allows them).<\/li>\n<\/ul>\n\n\n\n<p>Minneapolis vacation rental regulations have changed over time, it&#8217;s best to determine whether a unit was permitted under past rules or must comply with current rules. Some owners have hoped for being grandfathered in but have found that they&#8217;re in violation.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Application Requirements &amp; Compliance for STRs<\/h3>\n\n\n\n<p>To receive or maintain an STR authorization, Minneapolis requires a set of documentation, inspections, and operational commitments. Below is a breakdown of major requirements:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Application Documents &amp; Plans<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Management Plan<\/strong>: You&#8217;ll need a written plan detailing how you&#8217;ll run the STR\u2014guest screening, noise rules, trash, maintenance, neighbor communication, emergency contacts.<\/li>\n\n\n\n<li><strong>Neighbor Notification<\/strong>: Send a letter (or use the <a href=\"https:\/\/www2.minneapolismn.gov\/media\/content-assets\/www2-documents\/business\/Short-Term-Rental-Packet.pdf\" data-type=\"link\" data-id=\"https:\/\/www2.minneapolismn.gov\/media\/content-assets\/www2-documents\/business\/Short-Term-Rental-Packet.pdf\" target=\"_blank\" rel=\"noopener\">template found in the application packet<\/a>) to neighboring properties (typically within 50 feet) informing them of your intent to operate. You can use the <a href=\"https:\/\/apps.ci.minneapolis.mn.us\/AddressPortalApp\/\" data-type=\"link\" data-id=\"https:\/\/apps.ci.minneapolis.mn.us\/AddressPortalApp\/\" target=\"_blank\" rel=\"noopener\">Minneapolis address portal<\/a> to find neighbor contact information. <\/li>\n\n\n\n<li><strong>Floor Plan \/ Exit Routes<\/strong>: Include a layout of the unit showing exits, escape routes, and post one inside the unit. <\/li>\n\n\n\n<li><strong>Liability Insurance<\/strong>: You must show proof of coverage\u2014often the city expects enough to cover guest injury, property damage, etc.<\/li>\n\n\n\n<li><strong>Inspection \/ Safety Compliance<\/strong>: The unit must comply with housing maintenance, fire, and safety codes (working smoke detectors, CO detectors, egress windows, etc.).<\/li>\n\n\n\n<li><strong>License Display &amp; Listing Disclosure<\/strong>: Once licensed or registered, your STR license\/registration number must appear in all online listings and advertisements. <\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Minneapolis Short Term Rental Fees, Renewals, and Tiering<\/h2>\n\n\n\n<p>Short Term Rental Fees<\/p>\n\n\n\n<p>The most up to date information on STR fees can be found on the <a href=\"https:\/\/www2.minneapolismn.gov\/business-services\/licenses-permits-inspections\/rental-licenses\/fees\/\" data-type=\"link\" data-id=\"https:\/\/www2.minneapolismn.gov\/business-services\/licenses-permits-inspections\/rental-licenses\/fees\/\" target=\"_blank\" rel=\"noopener\">Minneapolis Rental License Fees page <\/a>, but currently, the fee structure looks like this. The full license fees for non-owner units vary depending on building size, number of licensed units, and property \u201ctier\u201d (which reflects prior violations or building condition).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Fee Type \/ Tier<\/th><th>1-3 Unit Buildings<\/th><th>4+ Unit Buildings<\/th><th>Notes \/ Additional Details<\/th><\/tr><\/thead><tbody><tr><td><strong>Short Term Rental Registration<\/strong><\/td><td>$58<\/td><td><\/td><td>No fee to change a current regular rental license to a short-term license<\/td><\/tr><tr><td><strong>Base License Fee (Tier 1)<\/strong><\/td><td>$89 building fee + $37 per unit<\/td><td>$152 building fee + $11 per unit<\/td><td><\/td><\/tr><tr><td><strong>Base License Fee (Tier 2)<\/strong><\/td><td>$95 building fee + $68 per unit<\/td><td>$179 building fee + $26 per unit<\/td><td><\/td><\/tr><tr><td><strong>Base License Fee (Tier 3)<\/strong><\/td><td>$110 building fee + $173 per unit<\/td><td>$210 building fee + $89 per unit<\/td><td><\/td><\/tr><tr><td><strong>Supplemental Fee (Tier 1)<\/strong><\/td><td>$0<\/td><td>$0<\/td><td><\/td><\/tr><tr><td><strong>Supplemental Fee (Tier 2)<\/strong><\/td><td>$110<\/td><td>$315<\/td><td><\/td><\/tr><tr><td><strong>Supplemental Fee (Tier 3)<\/strong><\/td><td>$221<\/td><td>$525<\/td><td><\/td><\/tr><tr><td><strong>Administrative Fee (New Owner \/ After Purchase)<\/strong><\/td><td>Starts at $250 + $20 per additional unit<\/td><td>Applies similarly<\/td><td>Must apply within 60 days of closing or this fee is charged <\/td><\/tr><tr><td><strong>Change of Ownership Inspection Fee<\/strong><\/td><td>$450<\/td><td>$450<\/td><td>Applies when a rental property changes ownership (with certain exceptions)<\/td><\/tr><tr><td><strong>Conversion Inspection Fee<\/strong><\/td><td>$1,000<\/td><td>$1,000<\/td><td>For properties converted to rental or not licensed for past 12 months (with exceptions)<\/td><\/tr><tr><td><strong>Late Renewal Penalty<\/strong><\/td><td>25% of license fee<\/td><td>25% of license fee<\/td><td>Applies to renewal received after March 15 (licenses expire end of February)<\/td><\/tr><tr><td><strong>Prorated License (submitted Sept 1 \u2013 Feb end)<\/strong><\/td><td>50% of full annual fee<\/td><td>50% of full annual fee<\/td><td>The annual fee is halved if applying in that window <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Renewal &amp; Ongoing Compliance<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>STR licenses\/registrations must be renewed annually.<\/li>\n\n\n\n<li>You must maintain compliance with safety, insurance, and property maintenance standards throughout.<\/li>\n\n\n\n<li>Update contact or ownership changes within ten days or per city rules.<\/li>\n\n\n\n<li>Be ready for periodic inspections or compliance audits.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tiering &amp; Violation History<\/h3>\n\n\n\n<p>The city uses a tier system to manage properties with repeated violations. Properties with high violation scores or poor upkeep may be placed into higher tiers, resulting in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Higher fees<\/li>\n\n\n\n<li>More scrutiny<\/li>\n\n\n\n<li>Conditional licensing<\/li>\n\n\n\n<li>Potential council-level review for renewal or revocation<\/li>\n<\/ul>\n\n\n\n<p>A <a href=\"https:\/\/finance-commerce.com\/2025\/10\/minneapolis-stop-slumlords-ordinance-vote\/\" data-type=\"link\" data-id=\"https:\/\/finance-commerce.com\/2025\/10\/minneapolis-stop-slumlords-ordinance-vote\/\" target=\"_blank\" rel=\"noopener\">proposed ordinance<\/a> in October 2025 would require Tier 3 properties (40+ violation points) to go before City Council for any license renewal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zoning &amp; Land Use Constraints<\/h2>\n\n\n\n<p>You can\u2019t run an STR anywhere just because you own a building. Minneapolis\u2019s zoning code dictates where and how STRs are allowed.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The property must be zoned for residential use or in a zone where STRs are permitted.<\/li>\n\n\n\n<li>In some zones, an STR might be a conditional use or require special approval.<\/li>\n\n\n\n<li>The 10% cap for large buildings helps avoid densification of STRs in multifamily zones.<\/li>\n\n\n\n<li>For homesteaded (your primary residence) units, zoning restrictions tend to be more permissive, but you still need registration and safety compliance.<\/li>\n<\/ul>\n\n\n\n<p>If you\u2019re converting a long-term rental or vacant home into an STR, confirm zoning and permitted use before investing in furnishings, listing, or marketing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Taxes &amp; Financial Implications<\/h2>\n\n\n\n<p>Operating an STR in Minneapolis means dealing with several layers of taxes; state, county, metro, and city. Missing or misapplying one can result in penalties.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">State-Level Taxes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minnesota charges a 6.875% state sales tax on short-term rentals less than 30 days, or 30+ days when the lease doesn&#8217;t require advance notice. <\/li>\n\n\n\n<li>This tax applies to the total amount paid by guests\u2014including nightly rates, cleaning fees, extra charges, platform fees. <\/li>\n\n\n\n<li>Platforms like Airbnb and VRBO may collect and remit state taxes on your behalf, depending on how they are classified under Minnesota law as \u201caccommodations intermediaries.\u201d<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">County &amp; Metro Taxes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hennepin County levies a small sales tax (0.15%) on top of the state tax, plus a transit sales tax (~0.5%). <\/li>\n\n\n\n<li>The Minneapolis\u2013Saint Paul metro area also has housing sales tax (0.25%) and transportation sales tax (0.75%) that may apply to STRs. <\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">City Lodging &amp; Entertainment Taxes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minneapolis has a 3% lodging tax on large accommodations (properties with more than 50 rooms). <\/li>\n\n\n\n<li>There\u2019s also an entertainment tax of 3% applicable city-wide to STRs. <\/li>\n\n\n\n<li>The maximum combined city lodging-related tax rate is capped at 6.5%. <\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Total Tax Burden Example<\/h3>\n\n\n\n<p>When you layer state, county, transit, metro, and city taxes, the effective tax rate on an STR in Minneapolis can approach <strong>14.525%<\/strong> in some cases (if all applicable taxes apply).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deductions &amp; Expense Allocation<\/h3>\n\n\n\n<p>To offset tax burdens, you can deduct operational costs such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mortgage interest<\/li>\n\n\n\n<li>Property taxes<\/li>\n\n\n\n<li>Insurance (STR-specific)<\/li>\n\n\n\n<li>Utilities<\/li>\n\n\n\n<li>Cleaning, maintenance, supplies<\/li>\n\n\n\n<li>Repairs, improvements<\/li>\n\n\n\n<li>Depreciation (for property and furniture)<\/li>\n\n\n\n<li>Platform or management fees<\/li>\n\n\n\n<li>Professional services (accountants, legal)<\/li>\n<\/ul>\n\n\n\n<p>If you personally use the property too, you\u2019ll need to apportion expenses between personal and rental use. Consult a tax professional familiar with STRs in Minnesota.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enforcement, Penalties &amp; \u201cGotchas\u201d<\/h2>\n\n\n\n<p>The city of Minneapolis doesn\u2019t treat noncompliance lightly. If your STR operation is flagged, here\u2019s what you could face and how to avoid trouble:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Enforcement Actions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Warnings \/ Notices<\/strong>: Initial non-compliance often triggers a citation or notice to correct.<\/li>\n\n\n\n<li><strong>Fines<\/strong>: Operating without a license, failing to display the license, or violating capacity rules can incur fines.<\/li>\n\n\n\n<li><strong>Probation or Suspension<\/strong>: Repeated or serious violations could lead to conditional operations or temporary suspension of rights.<\/li>\n\n\n\n<li><strong>Revocation<\/strong>: The city can revoke your STR license, ending your ability to rent short-term legally.<\/li>\n\n\n\n<li><strong>Council Review<\/strong>: High-violation (\u201cTier 3\u201d) properties may need City Council approval for renewal.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common Compliance Pitfalls<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Not updating your listing to include the STR license\/registration number<\/li>\n\n\n\n<li>Guest counts above allowed occupancy<\/li>\n\n\n\n<li>Failing to maintain safety equipment (smoke detectors, CO detectors, exits)<\/li>\n\n\n\n<li>Ignoring neighborhood complaints (noise, parking, trash)<\/li>\n\n\n\n<li>Lapses in liability insurance<\/li>\n\n\n\n<li>Letting the property fall into disrepair, triggering building code violations<\/li>\n\n\n\n<li>Operating more than one STR beyond your primary home<\/li>\n\n\n\n<li>Exceeding the 10% cap in large buildings<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Recent &amp; Upcoming Changes to Watch<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The city introduced an ordinance (2022-00089) that strengthened housing maintenance code compliance for rentals, including for STRs. <a href=\"https:\/\/lims.minneapolismn.gov\/File\/2022-00089?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Minneapolis Legislative Information<\/a><\/li>\n\n\n\n<li>Starting March 1, 2025, Minneapolis adopted new landlord-tenant rules: mandatory rental disclosures and a 30-day pre-eviction notice (rather than 14 days). These may indirectly affect STR operators who also run long-term rentals.<\/li>\n\n\n\n<li>The proposed 2025 \u201cSlumlords Tier Oversight\u201d ordinance would require leasing viability for any Tier 3 property to pass through City Council. <a href=\"https:\/\/finance-commerce.com\/2025\/10\/minneapolis-stop-slumlords-ordinance-vote\/?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">Finance &amp; Commerce<\/a><\/li>\n\n\n\n<li>The city is also intensifying scrutiny and signaling stricter enforcement under new renter protections ordinances. <\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-141321d7 gb-headline-text\">Want To Remove The Hassle From Your Short Term Rental? <\/h2>\n\n\n\n<p>Interested in having your property <a href=\"https:\/\/skyrun.com\/minneapolis\/management\/\" data-type=\"link\" data-id=\"https:\/\/skyrun.com\/minneapolis\/management\/\">professionally managed by the local Minneapolis short term rental experts<\/a> from SkyRun? Learn how your property could be earning more. Get the profitability, care, and local expertise that you deserve. Get a rental projection by filling out the form below:<\/p>\n\n\n<script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_10' >\n                        <div class='gform_heading'>\n                            <p class='gform_description'><\/p>\n                        <\/div><form method='post' enctype='multipart\/form-data'  id='gform_10'  action='\/minneapolis\/wp-json\/wp\/v2\/pages\/2042' data-formid='10' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_10' class='gform_fields top_label form_sublabel_below description_below validation_below'><fieldset id=\"field_10_17\" class=\"gfield gfield--type-address gfield--input-type-address gfield--width-full select2 gfield_contains_required field_sublabel_hidden_label gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"   data-js=\"geolocation-enabled\"><legend class='gfield_label gform-field-label gfield_label_before_complex' >Home Address<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend>    \n                    <div class='ginput_complex ginput_container has_street has_street2 has_city has_state has_zip ginput_container_address gform-grid-row' id='input_10_17' >\n                         <span class='ginput_full address_line_1 ginput_address_line_1 gform-grid-col' id='input_10_17_1_container' >\n                                        <input type='text' name='input_17.1' id='input_10_17_1' value=''   placeholder='Vacation Home Address' aria-required='true'    \/>\n                                        <label for='input_10_17_1' id='input_10_17_1_label' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>Street Address<\/label>\n                                    <\/span><span class='ginput_full address_line_2 ginput_address_line_2 gform-grid-col' id='input_10_17_2_container' >\n                                        <input type='text' name='input_17.2' id='input_10_17_2' value=''   placeholder='Unit or Apt #'  aria-required='false'   \/>\n                                        <label for='input_10_17_2' id='input_10_17_2_label' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>Address Line 2<\/label>\n                                    <\/span><span class='ginput_left address_city ginput_address_city gform-grid-col' id='input_10_17_3_container' >\n                                    <input type='text' name='input_17.3' id='input_10_17_3' value=''   placeholder='City' aria-required='true'    \/>\n                                    <label for='input_10_17_3' id='input_10_17_3_label' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>City<\/label>\n                                 <\/span><span class='ginput_right address_state ginput_address_state gform-grid-col' id='input_10_17_4_container' >\n                                        <select name='input_17.4' id='input_10_17_4'     aria-required='true'    ><option value='' selected='selected'>State<\/option><option value='Alabama' >Alabama<\/option><option value='Alaska' >Alaska<\/option><option value='American Samoa' >American Samoa<\/option><option value='Arizona' >Arizona<\/option><option value='Arkansas' >Arkansas<\/option><option value='California' >California<\/option><option value='Colorado' >Colorado<\/option><option value='Connecticut' >Connecticut<\/option><option value='Delaware' >Delaware<\/option><option value='District of Columbia' >District of Columbia<\/option><option value='Florida' >Florida<\/option><option value='Georgia' >Georgia<\/option><option value='Guam' >Guam<\/option><option value='Hawaii' >Hawaii<\/option><option value='Idaho' >Idaho<\/option><option value='Illinois' >Illinois<\/option><option value='Indiana' >Indiana<\/option><option value='Iowa' >Iowa<\/option><option value='Kansas' >Kansas<\/option><option value='Kentucky' >Kentucky<\/option><option value='Louisiana' >Louisiana<\/option><option value='Maine' >Maine<\/option><option value='Maryland' >Maryland<\/option><option value='Massachusetts' >Massachusetts<\/option><option value='Michigan' >Michigan<\/option><option value='Minnesota' >Minnesota<\/option><option value='Mississippi' >Mississippi<\/option><option value='Missouri' >Missouri<\/option><option value='Montana' >Montana<\/option><option value='Nebraska' >Nebraska<\/option><option value='Nevada' >Nevada<\/option><option value='New Hampshire' >New Hampshire<\/option><option value='New Jersey' >New Jersey<\/option><option value='New Mexico' >New Mexico<\/option><option value='New York' >New York<\/option><option value='North Carolina' >North Carolina<\/option><option value='North Dakota' >North Dakota<\/option><option value='Northern Mariana Islands' >Northern Mariana Islands<\/option><option value='Ohio' >Ohio<\/option><option value='Oklahoma' >Oklahoma<\/option><option value='Oregon' >Oregon<\/option><option value='Pennsylvania' >Pennsylvania<\/option><option value='Puerto Rico' >Puerto Rico<\/option><option value='Rhode Island' >Rhode Island<\/option><option value='South Carolina' >South Carolina<\/option><option value='South Dakota' >South Dakota<\/option><option value='Tennessee' >Tennessee<\/option><option value='Texas' >Texas<\/option><option value='Utah' >Utah<\/option><option value='U.S. Virgin Islands' >U.S. Virgin Islands<\/option><option value='Vermont' >Vermont<\/option><option value='Virginia' >Virginia<\/option><option value='Washington' >Washington<\/option><option value='West Virginia' >West Virginia<\/option><option value='Wisconsin' >Wisconsin<\/option><option value='Wyoming' >Wyoming<\/option><option value='Armed Forces Americas' >Armed Forces Americas<\/option><option value='Armed Forces Europe' >Armed Forces Europe<\/option><option value='Armed Forces Pacific' >Armed Forces Pacific<\/option><\/select>\n                                        <label for='input_10_17_4' id='input_10_17_4_label' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>State<\/label>\n                                      <\/span><span class='ginput_left address_zip ginput_address_zip gform-grid-col' id='input_10_17_5_container' >\n                                    <input type='text' name='input_17.5' id='input_10_17_5' value=''   placeholder='Zip Code' aria-required='true'    \/>\n                                    <label for='input_10_17_5' id='input_10_17_5_label' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>ZIP Code<\/label>\n                                <\/span><input type='hidden' class='gform_hidden' name='input_17.6' id='input_10_17_6' value='United States' \/>\n                    <div class='gf_clear gf_clear_complex'><\/div>\n                <input type='hidden' class='gform_hidden' name='input_17.geolocation_latitude' id='input_10_17_geolocation_latitude' value=''\/><input type='hidden' class='gform_hidden' name='input_17.geolocation_longitude' id='input_10_17_geolocation_longitude' value=''\/><\/div><\/fieldset><fieldset id=\"field_10_1\" class=\"gfield gfield--type-name gfield--input-type-name field_sublabel_hidden_label gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><legend class='gfield_label gform-field-label gfield_label_before_complex' >Name<\/legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_10_1'>\n                            \n                            <span id='input_10_1_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >\n                                                    <input type='text' name='input_1.3' id='input_10_1_3' value=''   aria-required='false'   placeholder='First Name*'  \/>\n                                                    <label for='input_10_1_3' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>First<\/label>\n                                                <\/span>\n                            \n                            <span id='input_10_1_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >\n                                                    <input type='text' name='input_1.6' id='input_10_1_6' value=''   aria-required='false'   placeholder='Last Name*'  \/>\n                                                    <label for='input_10_1_6' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>Last<\/label>\n                                                <\/span>\n                            \n                        <\/div><\/fieldset><div id=\"field_10_3\" class=\"gfield gfield--type-email gfield--input-type-email gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_10_3'>Email<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_3' id='input_10_3' type='email' value='' class='large'   placeholder='Email*' aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_10_4\" class=\"gfield gfield--type-phone gfield--input-type-phone gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_10_4'>Phone<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_10_4' type='tel' value='' class='large'  placeholder='Phone*' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_10_11\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_10_11'># Beds<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_11' id='input_10_11' type='text' value='' class='large'    placeholder='# Beds' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_10_12\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_10_12'># Baths<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_12' id='input_10_12' type='text' value='' class='large'    placeholder='# Baths' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_10_19\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_19' id='input_10_19' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='[channel]' \/><\/div><\/div><div id=\"field_10_20\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_20' id='input_10_20' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='[channeldrilldown1]' \/><\/div><\/div><div id=\"field_10_22\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_22' id='input_10_22' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='[channeldrilldown2]' \/><\/div><\/div><div id=\"field_10_21\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_21' id='input_10_21' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='[channeldrilldown3]' \/><\/div><\/div><div id=\"field_10_23\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_23' id='input_10_23' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='[landingpage]' \/><\/div><\/div><div id=\"field_10_24\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_24' id='input_10_24' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='[landingpagegroup]' \/><\/div><\/div><div id=\"field_10_25\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_25' id='input_10_25' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='TWCY' \/><\/div><\/div><div id=\"field_10_26\" class=\"gfield gfield--type-hidden gfield--input-type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_26' id='input_10_26' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='Property Management Stepless' \/><\/div><\/div><div id=\"field_10_7\" class=\"gfield gfield--type-html gfield--input-type-html gfield--width-full gf-privacy-policy gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  >By submitting this form, I agree to SkyRun\u2019s <a href=\"\/privacy-policy\" target=\"_blank\">Privacy Policy<\/a> and <a href=\"\/terms-of-use\" target=\"_blank\">Terms of Use<\/a>.<\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <button type=\"submit\" id=\"gform_submit_button_10\" class=\"gform_button button\" onclick=\"gform.submission.handleButtonClick(this);\" data-submission-type=\"submit\"><span>Send Me My Estimate<\/span><\/button> \n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_10' value='postback' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_10' id='gform_theme_10' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_10' id='gform_style_settings_10' value='{&quot;inputPrimaryColor&quot;:&quot;#204ce5&quot;}' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_10' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='10' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='eByPdWNoHvoUGczG6heAXVOuFODPaKtqpcClfuQHj3zVmt\/M4VHopyFOI+UCcOISyhwnSSyQlltZ8XzIOuCjhUcGQvNJ\/9UP71c4ESLlBLCjLCk=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_10' value='WyJbXSIsImI4MDVmNGE1ODZjM2M4NzhlMmRmNGI2ZjljMGU5MDBlIl0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_10' id='gform_target_page_number_10' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_10' id='gform_source_page_number_10' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"ak_\"><label>&#916;<textarea name=\"ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"ak_js\" value=\"142\"\/><script>document.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );<\/script><\/p><\/form>\n                        <\/div><script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 10, 'https:\/\/skyrun.com\/minneapolis\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_10').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_10');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_10').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_10').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_10').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_10').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_10').val();gformInitSpinner( 10, 'https:\/\/skyrun.com\/minneapolis\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [10, current_page]);window['gf_submitting_10'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_10').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [10]);window['gf_submitting_10'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_10').text());}else{jQuery('#gform_10').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"10\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_10\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_10\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_10\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 10, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Updated for 2026 If you own (or plan to own) a property in Minneapolis and want to run it as a short-term rental (STR), there\u2019s a substantial regulatory framework to navigate. The rules are intended to balance hosting opportunities with neighborhood stability, safety, and housing supply. Here\u2019s a more in-depth look at what you need &#8230; <a title=\"Guide to Minneapolis Short Term Rental Regulations\" class=\"read-more\" href=\"https:\/\/skyrun.com\/minneapolis\/guide-to-minneapolis-short-term-rental-regulations\/\" aria-label=\"More on Guide to Minneapolis Short Term Rental Regulations\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","footnotes":""},"class_list":["post-2042","page","type-page","status-publish"],"acf":[],"_links":{"self":[{"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/pages\/2042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/comments?post=2042"}],"version-history":[{"count":5,"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/pages\/2042\/revisions"}],"predecessor-version":[{"id":2126,"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/pages\/2042\/revisions\/2126"}],"wp:attachment":[{"href":"https:\/\/skyrun.com\/minneapolis\/wp-json\/wp\/v2\/media?parent=2042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}