Best Bathmate Penis Pump Australia 2025 — Secret Fantasy
Secret Fantasy logotype
Issue 04 · Bathmate Buyer's Guide 2025

Find your perfect Bathmate — size guide, performance breakdown, no fluff.

We've broken down every model in the Bathmate range — HydroXtreme 11, 9, 8, 6 and the Hydromax line — so Australian blokes pick the right size the first time and stop wasting money on a pump that doesn't fit.

Affiliate disclosure: We earn a commission if you buy via our links — it doesn't cost you a cent extra and it keeps these guides independent.

Editorial flat-lay featuring the Bathmate range tested for this guide

The 2025 Lineup

Every Bathmate, ranked by who it actually suits.

No "best of" pageantry. Each model below is the right answer for one specific kind of buyer — find yours, click through, done.

Bathmate HydroXtreme 11 vacuum penis pump kit
Editor's Pick 9–11 inches

Bathmate HydroXtreme 11 Kit

Verdict — best for: men already 9"+ wanting full handball control and the complete kit.

The flagship. Largest chamber Bathmate makes, handball pump for fine-tuned pressure, and the full accessory haul (cleaning brush, gauge, comfort pad, security lock, towel, lube). Honest caveat: overkill if you're under 8 inches — you won't fill the chamber and the seal suffers.

Bathmate HydroXtreme 9 pump kit clear
7–9 inches

HydroXtreme 9 Kit

Best for: above-average size who want HydroXtreme control without the 11's price.

The sweet-spot HydroXtreme. Same handball, same kit, smaller chamber for blokes already in the 7–9 inch range. Caveat: you'll outgrow it if you're chasing serious length gains from a smaller starting point.

Bathmate HydroXtreme 8 penis pump kit
6–8 inches

HydroXtreme 8 Kit

Best for: most Australian men. The default HydroXtreme entry point.

Statistically the right size for the largest slice of users, and you get the handball + full kit. Caveat: if you're under 6 inches the chamber's too tall to seal properly — go HydroXtreme 6.

Bathmate HydroXtreme 6 penis pump kit
Up to 6 inches

HydroXtreme 6 Kit

Best for: smaller starting size who still want premium handball control.

The forgotten gem. Same engineering as its big brothers, scaled for a smaller chamber so the seal stays tight from session one. Caveat: you'll likely upgrade to an 8 within a year if results land.

Bathmate Hydromax9 X40 penis pump
Hydromax · 7–9"

Hydromax9 X40

Best for: larger users who want 35% more pressure but skip the handball.

The Hydromax line is the Bellows-pump-only version — squeeze against the base instead of a handball. Same chamber engineering, no accessory kit. Caveat: no fine pressure control, harder to use in the bath without bracing.

Bathmate Hydromax7 Xtreme X30 hydro pump kit
5–7 inches

Hydromax7 Xtreme X30 Kit

Best for: budget HydroXtreme-style kit at the most common starting size.

The Hydromax7 with the handball added back in plus the accessory kit — basically the cheapest way into the full HydroXtreme experience. Caveat: branding is slightly confusing; this is the model to ask about by code.

Bathmate Hydromax7 X30 penis pump in clear
Best Value 5–7 inches

Bathmate Hydromax7 X30

Verdict — best for: first-time buyers who want real results without spending $400+.

Half the price of the kits, same Bellows pump engine, same chamber dimensions as the Hydromax7 Xtreme. You lose the handball pump and the accessory kit — that's it. If you can squeeze against your body in the bath, this is the smartest entry point in the range. Honest caveat: no comfort pad means more careful sealing on your first few sessions.

Side-by-side

The full range, on one screen.

Find your erect length on the left, follow the row across, click through.

Model Fits (erect) Pump system Best for Price
HydroXtreme 11 9–11" Handball + Bellows + full kit Already large, want full control $459 See price →
HydroXtreme 9 7–9" Handball + Bellows + full kit Above average, premium kit $425 See price →
HydroXtreme 8 Most popular 6–8" Handball + Bellows + full kit Most Australian men $399 See price →
HydroXtreme 6 Up to 6" Handball + Bellows + full kit Smaller start, premium control $399 See price →
Hydromax7 Xtreme X30 5–7" Handball + Bellows + full kit Budget HydroXtreme experience $399 See price →
Hydromax9 X40 7–9" Bellows only Larger users, no kit needed $399 See price →
Hydromax7 X30 Best value 5–7" Bellows only First-timers, smartest entry $221 See price →

The decision that matters

HydroXtreme vs Hydromax — is the handball worth it?

Both ranges use the same chamber, same Bellows pump engine, same warranty. The difference is two things: pressure control and what's in the box.

  • HydroXtreme adds a detachable handball pump so you can fine-tune suction without breaking the seal. You also get the cleaning brush, gauge, comfort pad, security lock, towel and lube.
  • Hydromax uses the squeeze-against-the-base method only. It works — millions of blokes have used it for a decade — but you can't dial pressure mid-session without losing the seal.

Our honest read: if it's your first pump and money's tight, the (function () { function isLeadForm(f) { var a = (f.getAttribute('action') || '').toLowerCase(); return a.indexOf('/api/lead') >= 0; } function thankYouPanel(name) { var first = (name || '').trim().split(/\s+/)[0] || ''; var greet = first ? ('Thanks, ' + first + '!') : 'Thanks for reaching out!'; var wrap = document.createElement('div'); wrap.setAttribute('data-stui-thanks', '1'); // Bigger, bolder, animated. Replaces the form with something // unmissable — owner feedback was that the old green panel was // easy to miss in a tall hero card. Now: large tick badge, // bold greeting, two readable lines, subtle entrance animation. wrap.style.cssText = [ 'padding:36px 28px', 'border-radius:18px', 'background:linear-gradient(135deg,#ecfdf5 0%,#d1fae5 100%)', 'border:2px solid #6ee7b7', 'color:#064e3b', 'font-family:inherit', 'text-align:center', 'box-shadow:0 10px 40px rgba(16,185,129,0.18)', 'animation:stui-thanks-in 0.5s ease-out both', ].join(';'); wrap.innerHTML = '

' + '
' + greet + '
' + '
We got your enquiry — usually back within 15 minutes during business hours.
' + '
📬 A confirmation has been sent to your email.
'; return wrap; } // One-shot keyframes injection so the entrance animation works // without depending on the page's stylesheet. function ensureKeyframes() { if (document.getElementById('stui-thanks-keyframes')) return; var s = document.createElement('style'); s.id = 'stui-thanks-keyframes'; s.textContent = '@keyframes stui-thanks-in { from { opacity: 0; transform: translateY(12px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes stui-toast-in { from { opacity: 0; transform: translate(-50%, -10px); } to { opacity: 1; transform: translate(-50%, 0); } } @keyframes stui-toast-out { to { opacity: 0; transform: translate(-50%, -10px); } }'; document.head.appendChild(s); } // Sticky top-of-viewport toast — fires alongside the inline swap so // owners definitely see SOMETHING acknowledging the submission, even // if the form sat in a section that's not currently in view. function showTopToast(name) { ensureKeyframes(); var first = (name || '').trim().split(/\s+/)[0] || ''; var msg = first ? 'Thanks ' + first + ' — we got your enquiry.' : 'Thanks — we got your enquiry.'; var t = document.createElement('div'); t.setAttribute('data-stui-toast', '1'); t.style.cssText = [ 'position:fixed', 'top:20px', 'left:50%', 'transform:translateX(-50%)', 'z-index:2147483647', 'padding:12px 20px', 'border-radius:9999px', 'background:#0a0a0a', 'color:#fff', 'font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif', 'font-size:14px', 'font-weight:600', 'box-shadow:0 8px 32px rgba(0,0,0,0.25)', 'display:inline-flex', 'align-items:center', 'gap:10px', 'animation:stui-toast-in 0.4s ease-out both', ].join(';'); t.innerHTML = '' + msg; document.body.appendChild(t); setTimeout(function () { t.style.animation = 'stui-toast-out 0.3s ease-in both'; setTimeout(function () { t.remove(); }, 320); }, 5000); } function swap(form, name) { ensureKeyframes(); var panel = thankYouPanel(name); if (form.parentNode) { form.parentNode.replaceChild(panel, form); // Wait one frame so layout settles before scrolling — avoids // a race where the old form's height was still in the layout // when scrollIntoView was called and the panel ended up just // off-screen. requestAnimationFrame(function () { try { panel.scrollIntoView({ behavior: 'smooth', block: 'center' }); } catch (e) {} }); try { console.log('[stui-form] swap completed — thank-you panel inserted'); } catch (e) {} } else { try { console.warn('[stui-form] form has no parent — cannot swap'); } catch (e) {} } // Belt + braces: a sticky toast at top of viewport, in case the // user's scrolled away from the form area and didn't notice the // swap, OR the form was in a tall section. showTopToast(name); } function attach(form) { if (form.dataset.stuiBound === '1') return; form.dataset.stuiBound = '1'; form.addEventListener('submit', function (ev) { // Honeypot — keep server's existing trap behaviour. var hp = form.querySelector('input[name="website"]'); if (hp && hp.value && hp.value.trim() !== '') return; ev.preventDefault(); var fd = new FormData(form); var name = fd.get('name') || fd.get('full_name') || ''; var btn = form.querySelector('button[type="submit"], input[type="submit"]'); var prevTxt = btn ? (btn.innerText || btn.value) : null; if (btn) { btn.disabled = true; if (btn.innerText !== undefined) btn.innerText = 'Sending…'; else btn.value = 'Sending…'; } // Signal to /api/lead that this is a JS-driven submission so it // returns 200 JSON instead of a 303 redirect to a full HTML // page. Treat ANY 2xx as success even if the response body // can't be parsed — the data already hit the server. Treat the // swap (DOM mutation) as best-effort; a swap failure shouldn't // show the user a "couldn't send" alert when in fact the lead // DID land. fetch(form.action, { method: 'POST', body: fd, headers: { 'X-Stui-Form': 'fetch', 'Accept': 'application/json' }, }) .then(function (res) { if (!res.ok) { try { console.error('[stui-form] HTTP ' + res.status, res); } catch (e) {} throw new Error('http_' + res.status); } // Submission succeeded — swap is purely visual. If swap // throws, log it but DON'T propagate to the catch (the // user's data is in; they shouldn't see an error alert). try { swap(form, String(name || '')); } catch (swapErr) { try { console.warn('[stui-form] swap failed but submission succeeded', swapErr); } catch (e) {} } }) .catch(function (err) { try { console.error('[stui-form] submit failed:', err); } catch (e) {} if (btn) { btn.disabled = false; if (btn.innerText !== undefined && prevTxt) btn.innerText = prevTxt; else if (prevTxt) btn.value = prevTxt; } alert('Sorry — couldn\'t send that. Please call us instead, or try again in a sec.'); }); }); } function init() { var forms = document.querySelectorAll('form'); for (var i = 0; i < forms.length; i++) { if (isLeadForm(forms[i])) attach(forms[i]); } // Handle no-JS fallback: server redirects to ?submitted=1 on a // standard form POST. Swap any lead form on the page for a panel. if (window.location.search.indexOf('submitted=1') >= 0) { for (var j = 0; j < forms.length; j++) { if (isLeadForm(forms[j])) { swap(forms[j], ''); // Strip the query param so a refresh doesn't re-trigger. if (window.history && window.history.replaceState) { var u = window.location.pathname + window.location.hash; window.history.replaceState({}, '', u); } break; } } } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })(); Secret Fantasy