Free Quote Request Form Template — Copy-Paste HTML Code
Get a free HTML quote request form template you can copy and paste into any website. Collect project details, budget, and timeline to send accurate quotes. Modern styling and validation included.
A quote request form gives prospects a clear way to ask for pricing while handing you the details you need to respond accurately. In this guide you’ll get a production-ready HTML quote request form template you can copy and paste into any website in minutes. It collects project scope, budget, and timeline with modern styling, validation, and seamless delivery through FormBackend.
Complete Quote Request Form Code
Here’s a fully-styled, ready-to-use quote request form you can copy into any HTML file:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Request a Quote</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; } .container { background: #fff; border-radius: 8px; box-shadow: 0 10px 40px rgba(0,0,0,0.1); padding: 40px; max-width: 520px; width: 100%; } h1 { font-size: 28px; margin-bottom: 10px; color: #1a202c; } .form-subtitle { font-size: 14px; color: #718096; margin-bottom: 30px; } .form-group { margin-bottom: 20px; } label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; color: #2d3748; } .required::after { content: " *"; color: #e53e3e; } input, select, textarea { width: 100%; padding: 12px 14px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 14px; font-family: inherit; transition: all 0.3s ease; background: #fff; } input:focus, select:focus, textarea:focus { outline: none; border-color: #3182ce; box-shadow: 0 0 0 3px rgba(49,130,206,0.1); } textarea { resize: vertical; min-height: 120px; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; } @media (max-width: 480px) { .form-row { grid-template-columns: 1fr; } .container { padding: 25px; } } button { width: 100%; padding: 14px 20px; background: #3182ce; color: #fff; border: none; border-radius: 6px; font-size: 16px; font-weight: 600; cursor: pointer; transition: background 0.3s ease; margin-top: 10px; } button:hover { background: #2c5aa0; } .success-message, .error-message { display: none; padding: 14px; border-radius: 6px; margin-bottom: 20px; font-size: 14px; } .success-message { background: #c6f6d5; color: #22543d; } .error-message { background: #fed7d7; color: #742a2a; } </style> </head> <body> <div class="container"> <h1>Request a Quote</h1> <p class="form-subtitle">Tell us about your project and we'll send a quote.</p> <div class="success-message" id="successMessage">Thanks! We've received your request and will send a quote shortly.</div> <div class="error-message" id="errorMessage">There was an issue submitting your request. Please try again.</div> <form id="quoteForm" action="https://www.formbackend.com/f/YOUR_FORM_ID" method="POST"> <div class="form-row"> <div class="form-group"> <label for="name" class="required">Name</label> <input type="text" id="name" name="name" required> </div> <div class="form-group"> <label for="email" class="required">Email</label> <input type="email" id="email" name="email" required> </div> </div> <div class="form-row"> <div class="form-group"> <label for="company">Company</label> <input type="text" id="company" name="company"> </div> <div class="form-group"> <label for="service" class="required">Service Needed</label> <select id="service" name="service" required> <option value="">Select a service...</option> <option value="Web Design">Web Design</option> <option value="Development">Development</option> <option value="Branding">Branding</option> <option value="Consulting">Consulting</option> </select> </div> </div> <div class="form-row"> <div class="form-group"> <label for="budget">Budget Range</label> <select id="budget" name="budget"> <option value="">Select...</option> <option value="Under $2k">Under $2k</option> <option value="$2k-$10k">$2k-$10k</option> <option value="$10k-$50k">$10k-$50k</option> <option value="$50k+">$50k+</option> </select> </div> <div class="form-group"> <label for="timeline">Timeline</label> <select id="timeline" name="timeline"> <option value="">Select...</option> <option value="ASAP">ASAP</option> <option value="1-3 months">1-3 months</option> <option value="3-6 months">3-6 months</option> <option value="Flexible">Flexible</option> </select> </div> </div> <div class="form-group"> <label for="details" class="required">Project Details</label> <textarea id="details" name="project_details" placeholder="Describe what you need, goals, and any specific requirements." required></textarea> </div> <button type="submit">Request Quote</button> </form> </div> <script> const form = document.getElementById('quoteForm'); const successMessage = document.getElementById('successMessage'); const errorMessage = document.getElementById('errorMessage'); form.addEventListener('submit', function(e) { successMessage.style.display = 'none'; errorMessage.style.display = 'none'; const name = document.getElementById('name').value.trim(); const email = document.getElementById('email').value.trim(); const details = document.getElementById('details').value.trim(); if (!name || !email || !details) { errorMessage.textContent = 'Please fill in all required fields.'; errorMessage.style.display = 'block'; e.preventDefault(); return false; } const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(email)) { errorMessage.textContent = 'Please enter a valid email address.'; errorMessage.style.display = 'block'; e.preventDefault(); return false; } }); </script> </body> </html>
How to Use This Template
Step 1: Copy the Code
Copy the entire HTML above and save it as quote-request-form.html. Upload it, embed it, or test locally first.
Step 2: Create a FormBackend Account
Create a free account at FormBackend, where every quote request will be received and stored.
Step 3: Update the Form Action URL
Replace YOUR_FORM_ID with your real FormBackend form ID so the action reads https://www.formbackend.com/f/abc123xyz.
Your quote request form is now live.
Quote Request Form Variations
Variation 1: Simple Quote Request
A short version for quick estimates:
<form action="https://www.formbackend.com/f/YOUR_FORM_ID" method="POST"> <input type="text" name="name" placeholder="Name" required> <input type="email" name="email" placeholder="Email" required> <textarea name="project_details" placeholder="What do you need a quote for?" required></textarea> <button type="submit">Get a Quote</button> </form>
Variation 2: Quote Request with File Upload
Let customers attach specs, drawings, or reference files:
<form action="https://www.formbackend.com/f/YOUR_FORM_ID" method="POST" enctype="multipart/form-data"> <input type="text" name="name" placeholder="Name" required> <input type="email" name="email" placeholder="Email" required> <textarea name="project_details" placeholder="Project details" required></textarea> <label>Attach specs or reference files:</label> <input type="file" name="attachment"> <button type="submit">Request Quote</button> </form>
Variation 3: Product Quote with Quantity
For wholesale or bulk pricing requests:
<form action="https://www.formbackend.com/f/YOUR_FORM_ID" method="POST"> <input type="text" name="name" placeholder="Name" required> <input type="email" name="email" placeholder="Email" required> <input type="text" name="product" placeholder="Product or SKU" required> <input type="number" name="quantity" placeholder="Quantity" min="1" required> <textarea name="notes" placeholder="Additional notes"></textarea> <button type="submit">Request Pricing</button> </form>
How to Customize This Template
Match your brand: Change the button background: #3182ce; and the body gradient to your colors.
Edit services and budgets: Update the <option> values in the service, budget, and timeline dropdowns to match your business.
Add file uploads: Add enctype="multipart/form-data" to the form tag and a <input type="file"> field.
Add fields: Duplicate a form-group div and change the name, id, and label — FormBackend captures new fields automatically.
Adjust width: Change max-width: 520px; to fit your layout.
Integration with FormBackend
FormBackend lets you manage quote requests without a backend. Once requests arrive, you can:
- View every request in one organized dashboard
- Get an email notification for each new request
- Auto-reply to confirm receipt to the customer
- Push requests to Slack, Google Sheets, or your CRM via integrations and webhooks
- Export requests as CSV
For more on receiving emails and managing submissions, see the FormBackend documentation.
Frequently Asked Questions
Is this quote request form template free? Yes, completely free. The only cost is FormBackend for receiving and managing requests, which starts with a free tier.
How do I receive quote requests? FormBackend emails you each request instantly and stores it in your dashboard. You can also auto-reply and connect Slack or Google Sheets.
Can customers describe their project in detail? Yes. The template includes a project details textarea plus budget and timeline fields.
Can people attach files like specs or drawings? Yes. Use the file upload variation. FormBackend supports file uploads on paid plans.
How do I stop spam quote requests? FormBackend includes spam protection on every plan and supports Cloudflare Turnstile, reCAPTCHA, and hCaptcha.
Will this work on my agency or service website? Absolutely. It’s plain HTML and CSS, so it works on any platform.
More form templates
Looking for a different form type? Browse our full collection of free HTML form templates, or try one of these:
- Contact Form Template — Collect name, email, subject, and message
- Order Form Template — Accept product orders with quantities
- Lead Capture Form Template — Turn visitors into qualified leads
- Booking Form Template — Let customers request appointments
Need a custom form? Use our HTML form generator to build one visually.
Add a form backend to your site in minutes
Connect any HTML form to FormBackend and start collecting submissions — no backend code required.
Start free