21roofinggroup.com
Open in
urlscan Pro
35.212.103.235
Public Scan
URL:
https://21roofinggroup.com/
Submission: On July 15 via automatic, source certstream-suspicious — Scanned from CA
Submission: On July 15 via automatic, source certstream-suspicious — Scanned from CA
Form analysis
6 forms found in the DOMGET https://21roofinggroup.com/
<form role="search" method="get" class="et-search-form" action="https://21roofinggroup.com/">
<label for="wpa_label_s" class="wpa-screen-reader-text">Search</label><input type="search" class="et-search-field" placeholder="Search …" value="" name="s" id="wpa_label_s">
</form>
<form class="psai-app-form" data-init-panel="cec34e58-afc5-499c-a927-a5b3c83d776f">
<div class="psai-app-step">
<div class="psai-app-heading" style="font-size:30px;text-align:center;background-color:#ffffff;color:#1e3a63;padding:20px;margin-left:-30px;margin-right:-30px;margin-top:-30px;font-weight:bold">Get An Instant Damage Report On Any Roof</div>
<div style="text-align:center"><img src="https://scciwidgetops.blob.core.windows.net/fieldimage/50c63c2c-644b-4c6c-be24-99e7901e4b91.jpg" width="150" height="150"></div>
<div class="psai-app-textblock" style="font-size:14px;text-align:center;color:#333333;font-weight:bold">Just enter your address to see the history of events your roof has endured from damaging winds to 3 inch hail.</div>
<div class="psai-app-form-group" data-required="True" data-type="name"><label for="name-input" style="display:none">Full Name</label> <input id="name-input" class="psai-app-form-control" type="text" name="name" placeholder="Full Name"></div>
<div class="psai-app-form-group" data-required="True" data-type="email"><label for="email-input" style="display:none">Email</label> <input id="email-input" class="psai-app-form-control" type="email" name="email" placeholder="Email"></div>
<div class="psai-app-form-group" data-required="True" data-type="phone"><label for="phone-input" style="display:none">Phone</label> <input id="phone-input" class="psai-app-form-control" type="tel" name="phone" placeholder="Phone"></div>
<div class="psai-app-form-group address-suggest-container" data-required="True" data-type="address"><label for="address-input" style="display:none">Full Address</label> <input id="address-input" class="psai-app-form-control address-input"
type="text" name="address" placeholder="Address" autocomplete="none"> <input type="hidden" id="house-number" name="housenumber" autocomplete="none"> <input type="hidden" id="street" name="street" autocomplete="none"> <input type="hidden"
id="city" name="city" autocomplete="none"> <input type="hidden" id="state" name="state" autocomplete="none"> <input type="hidden" id="zipcode" name="zipcode" autocomplete="none"> <input type="hidden" id="country" name="country"
autocomplete="none"> <input type="hidden" id="latitude" name="latitude" autocomplete="none"> <input type="hidden" id="longitude" name="longitude" autocomplete="none">
<div class="here-address-container">
<div class="inner" style="display: none;"></div>
</div>
</div><input id="check" name="spamCheck" style="display:none;visibility:hidden"> <button type="button" class="psai-app-button psai-app-button-block" style="font-size:14px;background-color:#1e3a63;font-weight:bold;border-radius:10px"
data-action="partial" data-next-panel="fd5bfc35-1082-456c-92fd-6a49a2734c65">GET INSTANT REPORT</button>
</div>
</form>
<form>
<div>
<div class="nf-before-form-content"><nf-section>
<div class="nf-form-fields-required">Fields marked with an <span class="ninja-forms-req-symbol">*</span> are required</div>
</nf-section></div>
<div class="nf-form-content "><nf-fields-wrap><nf-field>
<div id="nf-field-1-container" class="nf-field-container textbox-container label-above ">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-1-wrap" class="field-wrap textbox-wrap" data-field-id="1">
<div class="nf-field-label">
<label for="nf-field-1" id="nf-label-field-1" class=""> Name <span class="ninja-forms-req-symbol">*</span>
</label>
</div>
<div class="nf-field-element">
<input type="text" value="" class="ninja-forms-field nf-element" id="nf-field-1" name="nf-field-1-textbox" autocomplete="on" aria-invalid="false" aria-describedby="nf-error-1" aria-labelledby="nf-label-field-1" aria-required="true"
required="">
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-1" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-2-container" class="nf-field-container email-container label-above one-half first ">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-2-wrap" class="field-wrap email-wrap" data-field-id="2">
<div class="nf-field-label">
<label for="nf-field-2" id="nf-label-field-2" class=""> Email <span class="ninja-forms-req-symbol">*</span>
</label>
</div>
<div class="nf-field-element">
<input type="email" value="" class="ninja-forms-field nf-element" id="nf-field-2" name="email" autocomplete="email" aria-invalid="false" aria-describedby="nf-error-2" aria-labelledby="nf-label-field-2" aria-required="true"
required="">
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-2" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-5-container" class="nf-field-container phone-container label-above one-half textbox-container">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-5-wrap" class="field-wrap phone-wrap textbox-wrap" data-field-id="5">
<div class="nf-field-label">
<label for="nf-field-5" id="nf-label-field-5" class=""> Phone </label>
</div>
<div class="nf-field-element">
<input type="tel" value="" class="ninja-forms-field nf-element" id="nf-field-5" name="phone" autocomplete="tel" aria-invalid="false" aria-describedby="nf-error-5" aria-labelledby="nf-label-field-5">
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-5" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-6-container" class="nf-field-container address-container label-above one-half first ">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-6-wrap" class="field-wrap address-wrap" data-field-id="6">
<div class="nf-field-label">
<label for="nf-field-6" id="nf-label-field-6" class=""> Address </label>
</div>
<div class="nf-field-element">
<input type="text" value="" class="ninja-forms-field nf-element" id="nf-field-6" name="address" autocomplete="street-address" aria-invalid="false" aria-describedby="nf-error-6" aria-labelledby="nf-label-field-6">
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-6" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-7-container" class="nf-field-container city-container label-above one-half ">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-7-wrap" class="field-wrap city-wrap" data-field-id="7">
<div class="nf-field-label">
<label for="nf-field-7" id="nf-label-field-7" class=""> City </label>
</div>
<div class="nf-field-element">
<input type="text" value="" class="ninja-forms-field nf-element" id="nf-field-7" name="city" autocomplete="address-level2" aria-invalid="false" aria-describedby="nf-error-7" aria-labelledby="nf-label-field-7">
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-7" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-3-container" class="nf-field-container textarea-container label-above ">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-3-wrap" class="field-wrap textarea-wrap" data-field-id="3">
<div class="nf-field-label">
<label for="nf-field-3" id="nf-label-field-3" class=""> Message <span class="ninja-forms-req-symbol">*</span>
</label>
</div>
<div class="nf-field-element">
<textarea id="nf-field-3" name="nf-field-3" aria-invalid="false" aria-describedby="nf-error-3" class="ninja-forms-field nf-element" autocomplete="on" aria-labelledby="nf-label-field-3" aria-required="true" required=""></textarea>
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-3" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-8-container" class="nf-field-container recaptcha-container label-above textbox-container">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-8-wrap" class="field-wrap recaptcha-wrap textbox-wrap" data-field-id="8">
<div class="nf-field-label">
<label for="nf-field-8" id="nf-label-field-8" class="">
</label>
</div>
<div class="nf-field-element">
<input id="nf-field-8" name="nf-field-8" class="ninja-forms-field nf-element" type="hidden" value="">
<div class="g-recaptcha" data-callback="nf_recaptcha_response_8" data-theme="light" data-sitekey="6LeL5EIiAAAAACN9_hoI_g_Td2ZO4pvkNZEfGBoU" data-fieldid="8">
<div style="width: 304px; height: 78px;">
<div><iframe title="reCAPTCHA" width="304" height="78" role="presentation" name="a-ju3s3c3v83s6" frameborder="0" scrolling="no"
sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox allow-storage-access-by-user-activation"
src="https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LeL5EIiAAAAACN9_hoI_g_Td2ZO4pvkNZEfGBoU&co=aHR0cHM6Ly8yMXJvb2Zpbmdncm91cC5jb206NDQz&hl=en&v=-80zvSY9h4i8O-ocN2P5qTJk&theme=light&size=normal&cb=jzmphzfwo1mo"></iframe>
</div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" aria-hidden="true" aria-label="Silent reCaptcha security check" aria-readonly="true"
style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
</div>
</div>
</div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-8" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field><nf-field>
<div id="nf-field-4-container" class="nf-field-container submit-container label-above textbox-container">
<div class="nf-before-field"><nf-section>
</nf-section></div>
<div class="nf-field">
<div id="nf-field-4-wrap" class="field-wrap submit-wrap textbox-wrap" data-field-id="4">
<div class="nf-field-label"></div>
<div class="nf-field-element">
<input id="nf-field-4" class="ninja-forms-field nf-element " type="submit" value="Submit">
</div>
<div class="nf-error-wrap"></div>
</div>
</div>
<div class="nf-after-field"><nf-section>
<div class="nf-input-limit"></div>
<div id="nf-error-4" class="nf-error-wrap nf-error" role="alert"></div>
</nf-section></div>
</div>
</nf-field></nf-fields-wrap></div>
<div class="nf-after-form-content"><nf-section>
<div id="nf-form-errors-1" class="nf-form-errors" role="alert"><nf-errors></nf-errors></div>
<div class="nf-form-hp"><nf-section>
<label id="nf-label-field-hp-1" for="nf-field-hp-1" aria-hidden="true"> If you are a human seeing this field, please leave it empty. <input id="nf-field-hp-1" name="nf-field-hp" class="nf-element nf-field-hp" type="text" value=""
aria-labelledby="nf-label-field-hp-1">
</label>
</nf-section></div>
</nf-section></div>
</div>
</form>
POST /#gf_25
<form method="post" enctype="multipart/form-data" target="gform_ajax_frame_25" id="gform_25" action="/#gf_25" data-formid="25" novalidate="">
<input type="hidden" class="gforms-pum" value="{"closepopup":false,"closedelay":0,"openpopup":false,"openpopup_id":0}">
<div class="gform-body gform_body">
<ul id="gform_fields_25" class="gform_fields top_label form_sublabel_below description_below validation_below">
<li id="field_25_1" class="gfield gfield--type-text gf_left_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_25_1"><label
class="gfield_label gform-field-label" for="input_25_1">Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_text"><input name="input_1" id="input_25_1" type="text" value="" class="medium" aria-required="true" aria-invalid="false"> </div>
</li>
<li id="field_25_11" class="gfield gfield--type-text gfield--width-full gf_right_half field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_25_11"><label
class="gfield_label gform-field-label" for="input_25_11">Address</label>
<div class="ginput_container ginput_container_text"><input name="input_11" id="input_25_11" type="text" value="" class="medium" aria-invalid="false"> </div>
</li>
<li id="field_25_17" class="gfield gfield--type-text gfield--width-full gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_25_17">
<label class="gfield_label gform-field-label" for="input_25_17">City & State<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_text"><input name="input_17" id="input_25_17" type="text" value="" class="medium" aria-required="true" aria-invalid="false"> </div>
</li>
<li id="field_25_3" class="gfield gfield--type-phone gfield--width-full gf_left_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"
data-js-reload="field_25_3"><label class="gfield_label gform-field-label" for="input_25_3">Phone Number<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_phone"><input name="input_3" id="input_25_3" type="tel" value="" class="medium" aria-required="true" aria-invalid="false"></div>
</li>
<li id="field_25_2" class="gfield gfield--type-email gf_right_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_25_2"><label
class="gfield_label gform-field-label" for="input_25_2">Email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_email">
<input name="input_2" id="input_25_2" type="email" value="" class="medium" aria-required="true" aria-invalid="false">
</div>
</li>
<li id="field_25_13" class="gfield gfield--type-text gfield--width-full gf_left_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"
data-js-reload="field_25_13"><label class="gfield_label gform-field-label" for="input_25_13">Age of Roof<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_text"><input name="input_13" id="input_25_13" type="text" value="" class="medium" aria-required="true" aria-invalid="false"> </div>
</li>
<li id="field_25_14" class="gfield gfield--type-select gfield--width-full gf_right_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"
data-js-reload="field_25_14"><label class="gfield_label gform-field-label" for="input_25_14">Current Roof Type<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_select"><select name="input_14" id="input_25_14" class="medium gfield_select" aria-required="true" aria-invalid="false">
<option value=""></option>
<option value="3-Tab Shingles">3-Tab Shingles</option>
<option value="Architectural Shingles">Architectural Shingles</option>
<option value="Metal Roofing">Metal Roofing</option>
<option value="I don't know">I don't know</option>
</select></div>
</li>
<li id="field_25_15" class="gfield gfield--type-select gfield--width-full gf_left_half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"
data-js-reload="field_25_15"><label class="gfield_label gform-field-label" for="input_25_15">Roof Estimate Type<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_select"><select name="input_15" id="input_25_15" class="medium gfield_select" aria-required="true" aria-invalid="false">
<option value=""></option>
<option value="Architectural Asphalt Shingles">Architectural Asphalt Shingles</option>
<option value="Metal Roofing">Metal Roofing</option>
<option value="Synthetic Shingles">Synthetic Shingles</option>
<option value="3-Tab Shingles">3-Tab Shingles</option>
<option value="Other">Other</option>
</select></div>
</li>
<li id="field_25_16"
class="gfield gfield--type-radio gfield--type-choice gfield--width-full gf_right_half gf_list_2col gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible"
data-js-reload="field_25_16"><label class="gfield_label gform-field-label">Will you need financing<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label>
<div class="ginput_container ginput_container_radio">
<ul class="gfield_radio" id="input_25_16">
<li class="gchoice gchoice_25_16_0">
<input name="input_16" type="radio" value="Yes (Greensky)" id="choice_25_16_0">
<label for="choice_25_16_0" id="label_25_16_0" class="gform-field-label gform-field-label--type-inline">Yes (Greensky)</label>
</li>
<li class="gchoice gchoice_25_16_1">
<input name="input_16" type="radio" value="No" id="choice_25_16_1">
<label for="choice_25_16_1" id="label_25_16_1" class="gform-field-label gform-field-label--type-inline">No</label>
</li>
</ul>
</div>
</li>
<li id="field_25_6" class="gfield gfield--type-captcha field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible" data-js-reload="field_25_6"><label
class="gfield_label gform-field-label" for="input_25_6">CAPTCHA</label>
<div id="input_25_6" class="ginput_container ginput_recaptcha gform-initialized" data-sitekey="6LeL5EIiAAAAACN9_hoI_g_Td2ZO4pvkNZEfGBoU" data-theme="light" data-tabindex="59" data-badge="">
<div style="width: 304px; height: 78px;">
<div><iframe title="reCAPTCHA" width="304" height="78" role="presentation" name="a-nnarb52sflmz" frameborder="0" scrolling="no"
sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox allow-storage-access-by-user-activation"
src="https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LeL5EIiAAAAACN9_hoI_g_Td2ZO4pvkNZEfGBoU&co=aHR0cHM6Ly8yMXJvb2Zpbmdncm91cC5jb206NDQz&hl=en&v=-80zvSY9h4i8O-ocN2P5qTJk&theme=light&size=normal&cb=t28jr1irm33s"
tabindex="59"></iframe></div><textarea id="g-recaptcha-response-1" name="g-recaptcha-response" class="g-recaptcha-response"
style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
</div><iframe style="display: none;"></iframe>
</div>
</li>
<li id="field_25_12" class="gfield gfield--type-hidden gfield--width-full gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible" data-js-reload="field_25_12">
<div class="ginput_container ginput_container_text"><input name="input_12" id="input_25_12" type="hidden" class="gform_hidden" aria-invalid="false" value="https://21roofinggroup.com/"></div>
</li>
</ul>
</div>
<div class="gform_footer top_label"> <input type="submit" id="gform_submit_button_25" class="gform_button button et_pb_button" value="Send"
onclick="if(window["gf_submitting_25"]){return false;} if( !jQuery("#gform_25")[0].checkValidity || jQuery("#gform_25")[0].checkValidity()){window["gf_submitting_25"]=true;} "
onkeypress="if( event.keyCode == 13 ){ if(window["gf_submitting_25"]){return false;} if( !jQuery("#gform_25")[0].checkValidity || jQuery("#gform_25")[0].checkValidity()){window["gf_submitting_25"]=true;} jQuery("#gform_25").trigger("submit",[true]); }">
<input type="hidden" name="gform_ajax" value="form_id=25&title=&description=&tabindex=49&theme=legacy">
<input type="hidden" class="gform_hidden" name="is_submit_25" value="1">
<input type="hidden" class="gform_hidden" name="gform_submit" value="25">
<input type="hidden" class="gform_hidden" name="gform_unique_id" value="">
<input type="hidden" class="gform_hidden" name="state_25" value="WyJ7XCIxNlwiOltcIjQ5YjhlOTNjNDNhZjE5OWQ3YzBkMmY3OGNjMjMwYmRhXCIsXCI5OGYwZDlmYzdjMzZjYjc3YTIxMzNmYmZlMTlmY2ViN1wiXX0iLCI0NWQ0OWQwZGI2YzEzMjVjYmM1YmEzOGRjMTlmNzJkNCJd">
<input type="hidden" class="gform_hidden" name="gform_target_page_number_25" id="gform_target_page_number_25" value="0">
<input type="hidden" class="gform_hidden" name="gform_source_page_number_25" id="gform_source_page_number_25" value="1">
<input type="hidden" name="gform_field_values" value="">
</div>
<input type="hidden" name="pum_form_popup_id" value="217098">
</form>
<form class="psai-app-form" data-init-panel="5de113f9-5da1-4f34-bca1-1fc3cb20a009">
<div class="psai-app-step">
<div class="psai-app-heading" style="font-size:24px;text-align:center;background-color:#ffffff;color:#1e3a63;padding:20px;margin-left:-30px;margin-right:-30px;margin-top:-30px;font-weight:bold">Get An Instant Damage Report On Your Roof</div>
<div style="text-align:center"><img src="https://scciwidgetops.blob.core.windows.net/fieldimage/73aa919a-7c63-4716-a874-f1e54aba84d3.jpg" width="150" height="150"></div>
<div class="psai-app-textblock" style="font-size:14px;text-align:center;color:#333333;font-weight:bold">Just enter your address to see the history of events your roof has endured from damaging winds to 3 inch hail.</div>
<div class="psai-app-form-group" data-required="True" data-type="name"><label for="name-input" style="display:none">Full Name</label> <input id="name-input" class="psai-app-form-control" type="text" name="name" placeholder="Full Name"></div>
<div class="psai-app-form-group" data-required="True" data-type="email"><label for="email-input" style="display:none">Email</label> <input id="email-input" class="psai-app-form-control" type="email" name="email" placeholder="Email"></div>
<div class="psai-app-form-group" data-required="True" data-type="phone"><label for="phone-input" style="display:none">Phone</label> <input id="phone-input" class="psai-app-form-control" type="tel" name="phone" placeholder="Phone"></div>
<div class="psai-app-form-group address-suggest-container" data-required="True" data-type="address"><label for="address-input" style="display:none">Full Address</label> <input id="address-input" class="psai-app-form-control address-input"
type="text" name="address" placeholder="Address" autocomplete="none"> <input type="hidden" id="house-number" name="housenumber" autocomplete="none"> <input type="hidden" id="street" name="street" autocomplete="none"> <input type="hidden"
id="city" name="city" autocomplete="none"> <input type="hidden" id="state" name="state" autocomplete="none"> <input type="hidden" id="zipcode" name="zipcode" autocomplete="none"> <input type="hidden" id="country" name="country"
autocomplete="none"> <input type="hidden" id="latitude" name="latitude" autocomplete="none"> <input type="hidden" id="longitude" name="longitude" autocomplete="none">
<div class="here-address-container">
<div class="inner" style="display: none;"></div>
</div>
</div><input id="check" name="spamCheck" style="display:none;visibility:hidden"> <button type="button" class="psai-app-button psai-app-button-block" style="font-size:14px;background-color:#1e3a63;font-weight:bold;border-radius:10px"
data-action="partial" data-next-panel="b2871639-4ec1-4994-83a0-61a43b15ff36">GET INSTANT REPORT</button>
</div>
</form>
<form class="psai-app-form" data-init-panel="f9d27283-54d9-4db8-b248-aa5d25cb25bb">
<div class="psai-app-step">
<div class="psai-app-heading" style="font-size:30px;text-align:center;background-color:#ffffff;color:#1e3a63;padding:20px;margin-left:-30px;margin-right:-30px;margin-top:-30px;font-weight:bold">Find Out Your Roof's Health Instantly!</div>
<div style="text-align:center"><img src="https://scciwidgetops.blob.core.windows.net/fieldimage/11741f12-1a97-4ae1-bad6-7fe7216faeef.jpg" width="150" height="150"></div>
<div class="psai-app-textblock" style="font-size:14px;text-align:center;color:#333333;font-weight:bold">Know If and When Your Roof Was Hit by Extreme Weather</div>
<div style="text-align:center"><img src="https://scciwidgetops.blob.core.windows.net/fieldimage/5e835a65-45e8-48ee-8daf-a062b2d72d26.jpg" width="375" height="214"></div>
<div class="psai-app-textblock" style="font-size:14px;text-align:center;color:#333333;font-weight:bold">Just enter your address to see the history of events your roof has endured from damaging winds to 3 inch hail.</div><input id="check"
name="spamCheck" style="display:none;visibility:hidden"> <button type="button" class="psai-app-button psai-app-button-block" style="font-size:14px;background-color:#1e3a63;font-weight:bold;border-radius:10px" data-action=""
data-next-panel="566d968a-e230-4dde-a2fc-e6ec37240fa6">Find Out Now</button>
</div>
</form>
Text Content
Same Day Online Roof Replacement Estimate Contact Us: 980-277-4421 * About Us * The Company * Servicing * Cornelius NC * Mooresville NC * Lake Norman * Ballantyne * Myers Park * Southpark * Our Team * Services * Roofing * Roof Repair * Roof Installation * Roof Replacement * Gutters * Rain Gutters * Downspouts * Gutter Guards * Siding * Siding Installation * Storm Damage * Storm Damage Repair * Free Roof Maintenance Evaluation * Our Reviews * Products * GAF Shingles * Atlas Shingles * F-Wave Shingles * Pay Your Bill Online! * Gallery * Financing * Contact Us Select Page * About Us * The Company * Servicing * Cornelius NC * Mooresville NC * Lake Norman * Ballantyne * Myers Park * Southpark * Our Team * Services * Roofing * Roof Repair * Roof Installation * Roof Replacement * Gutters * Rain Gutters * Downspouts * Gutter Guards * Siding * Siding Installation * Storm Damage * Storm Damage Repair * Free Roof Maintenance Evaluation * Our Reviews * Products * GAF Shingles * Atlas Shingles * F-Wave Shingles * Pay Your Bill Online! * Gallery * Financing * Contact Us Search YOUR LOCAL ROOFING Company CHARLOTTE'S MOST RELIABLE Roofing Company FROM ROOFING TO SIDING TO GUTTERS We Are the team to call to protect your home GAF MASTER ELITE Certified PreviousNext 1234 YOUR LOCAL ROOFING Company YOU’LL FIND 21 REASONS TO MAKE US YOUR ROOFING COMPANY OF CHOICE IN CHARLOTTE! Whether your roof was damaged by wind or hail or is simply worn out from old age, you want to make sure your home is protected with quality roofing again quickly and efficiently. At 21 Roofing Group, we will be happy to repair your roof to buy you more time, or if a replacement is advised, we can handle that, too. Get An Instant Damage Report On Any Roof Just enter your address to see the history of events your roof has endured from damaging winds to 3 inch hail. Full Name Email Phone Full Address GET INSTANT REPORT BEST QUALITY & WARRANTY in the market ROOFING It is not an understatement to say your roof protects your entire home. When your roof is not working properly, you risk the framework of your house Learn More ROOF REPAIR If you are experiencing a new leak or any other issues from your roof, it is very possible that the damage can be repaired rather than having to replace the roof. Learn More GUTTERS As a homeowner you may not even realize how important gutters and gutter guards are to your home. Well-installed and managed gutters will divert water from your home and foundation Learn More SIDING There are many appealing factors to having siding installed on your home. Not the least of which is the ease of the upkeep. Siding is easy to clean, is scratch resistant and never needs painting Learn More TESTIMONIALS THEY DID AN EXCEPTIONAL JOB. 21 Roofing Group replaced our roof and the roof for two other townhomes in Magnolia Park and did an exceptional job on all of them. Tony and Ivy did a great job with getting us the quote, handling the scheduling and following up to ensure everything went well. -Michael B. I HIGHLY RECOMMEND USING THEM FOR YOUR ROOFING NEEDS. 21 Roofing Group replaced our roof / gutters and a skylight in February of 2020 and did a terrific job. Prompt, professional and clean. I mean it, they clean up the job site very well after a messy job. I highly recommend using them for your roofing needs. -Mitch C. THE CREW WERE SPECTACULAR! They replaced our roof today, fabulous from start to end, Tony, Ivy and the crew were spectacular! They have done at least 3 other roofs in Magnolia Park. Highly recommend them! -Leslie W. THEY WORKED VERY LONG DAYS AND WORKED VERY HARD! 21 Roofing Group replaced our roof. Replaced soffit and fascia and installed new gutters. They did a fantastic job! My house looks brand new again! Thank you to Erik, Tony and Pedro as well as Ivy in the office and the whole crew! Everyone was super nice! They worked very long days and worked very hard! You don’t see that kind of work ethic anymore! I would recommend them highly! -Kim P. WOULD RECOMMEND. 21 Roofing Group did an excellent job on our house. Their staff was friendly and their service top notch. We paid about what I would expect for a total roof replacement. They tended to the job right away and got it done with quality and efficiency. There were no issues with trash/debris being left on our property and no disturbances to our personal schedules. Would recommend. -Matthew M. THEY DID EXCELLENT WORK. We had our roof replaced by Louie & team at 21 Roofing Group in the fall of 2018. Louie’s team did excellent work and I enjoyed working with him. I had many interviews with other companies, but after reviewing, we chose 21 Roofing Group. Good price and friendly service, and they did excellent work. -Michael L. GREAT SERVICE AND GREAT PRICING. I am a realtor and have used 21 Roofing Group several times. They are very honest about being able to do repairs instead of just an entire new roof. They also do repairs, replace vent boots, etc. Great service and great pricing. -Tom T. WHAT AN AMAZING EXPERIENCE. What an amazing experience. As a real estate professional, I have many vendors to choose from. I went with 21 Roofing Group for a leak in my garage. I needed a patch job completed on my roof due to a broken truss, as they informed me. They came out, photographed the damage, did the repair, sending me pics and progress reports. I came home to a new roof and no more leaks! I highly recommend this company! -Tom T. VERY PROFESSIONAL COMPANY. Impressed by Tony who came out as promised within 24 hours of my call. They fixed both structural concerns & the roof area around the chimney on a home we were selling in Statesville. The work was done a week after we accepted the bid. Would definitely recommend and use them again. -Lorillee K. HIGHLY RECOMMEND! We are a 19 building condominium in the Sedgefield neighborhood. We have used 21Roofing for repairs on several of our buildings and the replacement of 6 complete roofs. Their pricing is very attractive and the quality of their work is most satisfactory. They have been very responsive when we’ve had emergency issues arise. The crews they use are very respectful of our property and homeowners. They communicate well and show up on time. They are efficient and get the job done quickly. Most importantly, their crews do a thorough cleaning of the work space before leaving. -Sanford M. VERY PROFESSIONAL AND CAME OUT QUICKLY TO ACCESS THE ISSUE AND PERFORM THE REPAIRS. 21 Roofing Group is my go-to roofer going forward. -Diane E. MY NEW ROOF LOOKS GREAT AND I HIGHLY RECOMMEND 21 ROOFING GROUP. 21 Roofing Group showed efficiency from the the first contact for an estimate to the final detail. Everyone was friendly, professional and attentive to details. -Leigh S. WE ARE VERY HAPPY WITH THEIR WORK. We contacted 21 Roofing Group about some roofing issues in a home we recently moved into: a leaking skylight in a screened porch and water damage around a dormer. Although the latter issue had been identified in an inspection by another company, we weren’t happy with the timeliness or quality of communications from that roofer. So we called 21 roofing group based on on-line reviews. Tony promptly came to our house and conducted a very thorough inspection of our roof, going well beyond the issues we had called about. He climbed on the roof, used a drone, and entered the attic crawl space through a narrow entrance we hadn’t previously been aware of. He took many photographs and was able to document a number of issues missed by our original inspector. Among these was incorrect installation of the roofing on two flat areas of the roof (one over the screened porch) and gutters and downspouts that were too small given the size of the roof. To make a long story short, we contracted with 21 roofing group to replace the flat sections of roofing, install new gutters and downspouts and repair the damaged area around the dormer. After the work began, the crew concluded that the flat roof over the screened porch could be repaired rather than replaced, at a substantial savings. All of the work was performed promptly and meticulously. The leaks have stopped, the gutters no longer overflow, and we are confident that numerous issues have been resolved or staved off. Communications by Tony and others within the company were always prompt, clear, and helpful. We are very happy with their work, expect to use their services again when our roof needs reshingling, and will enthusiastically recommend them to others. -Don C. PreviousNext Read More CERTIFIED 21 Roofing Group is a licensed and insured General Contractor in both North and South Carolina. At 21 Roofing Group, we are Master Elite Certified with GAF, something only 3% of roofers in the U.S. can claim. We are also certified contractors with Atlas Roofing and HAAG Certified Inspectors. This means we offer the highest and best warranties in the industry, guaranteed! OUR APPROACH > At 21 Roofing Group, our experienced team assists you in navigating crucial > decisions for your project. Through strategic questioning, we tailor optimal > solutions to meet your needs. As skilled and qualified roofing and gutter > contractors, we employ cutting-edge techniques for efficient and high-quality > craftsmanship, delivering results that align with customer expectations and > include impressive warranties. Learn More WHETHER YOU REQUIRE ROOFING, GUTTERS, OR SIDING we can handle the critical issues that come with your home’s exterior, and we understand the importance of completing each job on time while giving you the best quality and warranty in the market. STORM DAMAGE Storms in the Carolinas can be sudden and severe. Damage to your home and property can happen in seconds and you need a contractor who can put things back together quickly and efficiently. Whether it is the effects of wind and hail or damage to your roof, gutters or siding caused by downed trees or limbs, 21 Roofing Group is your go to source for complete storm damage repair. Learn More FROM THE MOMENT YOU CALL ON US FOR SOLUTIONS you will find our roofing company staff to be courteous and respectful, and we will go the extra mile to make you a very satisfied customer. For all your roofing needs in Charlotte, North Carolina, make 21 Roofing Group your first choice. Call Us: 980-277-4421 STATEVILLE TROUTMAN SHERRILLS FORD MOORESVILLE DENVER CORNELIUS KANNAPOLIS CALDWELL CONCORD IRON STATION LOWESVILLE HUNTERSVILLE STANLEY DALLAS MT HOLLY HARRISBURG ROCKY RIVER NEWELL GASTONIA BELMONT MINT HILL CLOVER LAKE WYLIE PINEVILLE MATTHEWS INDIAN TRAIL TEGA CAY FORT MILL INDIAN LAND WESLEY CHAPEL MONROE ROCK HILL WAXAHAW CHARLOTTE 21 Roofing is guaranteed to bring our knowledge to bear when it comes to your project. Our employees are held to the strictest standards in both installation and clean-up after the project. Find Us On The Web Sitemap CONTACT 21 ROOFING GROUP: 980-277-4421 Licensed in North & South Carolina SERVICE AREAS North Carolina: Charlotte, Marvin, Waxhaw, Matthews, Wesley Chapel, Monroe, Indian Trail, Mint Hill, Gastonia, Belmont, Cornelius, Huntersville, Mooresville, Lake Norman, Denver, Concord South Carolina: Indian Land, Fort Mill, Lancaster, Rock Hill, Tega Cay, Clover CERTIFICATIONS Fields marked with an * are required Name * Email * Phone Address City Message * If you are a human seeing this field, please leave it empty. * Roofing Contractor * Roofer * Roofing Blog * Roofing Company © 2024 21 Roofing Group, Charlotte, NC (980) 277-4421 Same Day Online Roof Replacement Estimate Call Map X CALL US (980) 277-4421 Contact Us X OUR LOCATION View in Maps (980) 277-4421 Contact Us Privacy Policy ROOF REPLACEMENT ESTIMATE * Name* * Address * City & State* * Phone Number* * Email* * Age of Roof* * Current Roof Type* 3-Tab ShinglesArchitectural ShinglesMetal RoofingI don't know * Roof Estimate Type* Architectural Asphalt ShinglesMetal RoofingSynthetic Shingles3-Tab ShinglesOther * Will you need financing* * Yes (Greensky) * No * CAPTCHA * × × Close Schedule An Appointment × Get An Instant Damage Report On Your Roof Just enter your address to see the history of events your roof has endured from damaging winds to 3 inch hail. Full Name Email Phone Full Address GET INSTANT REPORT Close Got Weather Damage? × Find Out Your Roof's Health Instantly! Know If and When Your Roof Was Hit by Extreme Weather Just enter your address to see the history of events your roof has endured from damaging winds to 3 inch hail. Find Out Now Notifications