🎵 TikTok QR Code Generator

Grow Your TikTok Following
With a Scannable QR Code

Create a QR code that opens your TikTok profile or a specific video directly in the app. Perfect for business cards, packaging, posters, and social bios. 100% free, no sign‑up.

👤 Profile 🎬 Video 📱 TikTok App 🌐 Browser
🎵 TikTok link details TIKTOK
How to get started: Enter your TikTok username without the @ symbol. For example, type toolsbox to link to @toolsbox.
Use just your username — no @ symbol needed. Letters, numbers, periods and underscores only.
📁 Click or drag to upload logo
PNG, JPG, SVG · max 500 KB
Logo preview
TikTok QR Code
💡 Quick tips
Use just your username — no @ symbol needed
Use Level H error correction with a logo
Download SVG for print — infinite resolution
Minimum print size on posters: 3×3 cm
Test scan on iPhone and Android before printing

📊 Why TikTok QR Codes Are Essential for Growth

1B+
monthly active TikTok users — a massive audience for your content
90%
of TikTok users access the app daily — QR codes meet them where they are
4.8×
higher engagement when QR codes drive traffic to TikTok content vs. text links
100%
private — your username never leaves your device

📖 How to Create Your TikTok QR Code in 4 Steps

Choose Your Mode
Select Profile to link to your main page, or Video link to share a specific piece of content.
Enter Your TikTok Info
Type your username (without @) or paste the full URL of the video you want to share.
Generate and Customise
Click Generate — your QR appears instantly. Change colours, add your logo, adjust size.
Download and Display
Download as PNG for digital, SVG for print. Place on business cards, product packaging, event banners, or anywhere your audience is.
Test Before Bulk Printing
Scan with both iPhone and Android to confirm the link opens the correct TikTok profile or video.
Track Your Growth
Monitor your follower count and video views to measure the impact of your QR code campaign.

💼 Where to Use Your TikTok QR Code

Business Cards
Add your TikTok QR alongside your contact details — a modern networking essential.
Product Packaging
Drive customers from your product to your TikTok for reviews, demos, and brand content.
Posters & Flyers
Promote your TikTok account at events with a quick-follow QR code.
Storefront Window
Let passersby follow you on the spot with a window display QR code.
Merch & Apparel
Add your TikTok QR to t-shirts, hoodies, and tote bags.
Email Signatures
Embed a QR code in your email signature for instant TikTok access.
Trade Shows & Events
Booth banners with your TikTok QR to connect with attendees and grow your following.
Website & Social Media
Add the QR on your site or social profiles to cross‑promote your TikTok content.

🚀 6 Benefits of a TikTok QR Code

Zero Friction for Followers
No need to search for your username — one scan and your profile opens instantly in the TikTok app. Removes every barrier between a viewer and a follow.
Grow Your Audience Offline
Turn physical materials — business cards, product packaging, event banners — into powerful tools for building your TikTok following.
Amplify Your Best Content
Link directly to your most popular video or a specific campaign. Perfect for driving views, engagement, and going viral.
Cost‑Free Marketing
Printing a QR code costs pennies, but the potential lifetime value of a TikTok follower is immense. Infinite ROI for your brand.
Fully Branded
Customise with your brand colours and logo — a branded QR looks professional, builds trust, and drives higher scan rates.
Static & Never Expires
This is a static QR code — your TikTok link is encoded directly into the image. It works forever with no subscription, server, or expiry date.

📖 Complete Guide: How to Grow Your TikTok Following with QR Codes

TikTok is the fastest‑growing social media platform in the world, with over 1 billion monthly active users. But getting people to find your profile and follow you requires visibility — and visibility often starts offline. QR codes are the perfect bridge between your physical presence and your TikTok profile, making it effortless for anyone to connect with you in seconds.

Why TikTok QR Codes Are Essential

When you're at an event, handing out business cards, or selling merchandise, there's no easy way for someone to instantly find and follow you on TikTok — unless you use a QR code. Without it, they have to remember your username, open the app, search, and hope they find the right profile. That's too many steps. A QR code reduces the entire process to a single scan, eliminating friction and dramatically increasing the likelihood of a follow.

Getting the Most from Your TikTok QR Code

Frequently Asked Questions

Enter your TikTok username (without the @ symbol), click Generate, then download the QR code as PNG or SVG. Scanning it opens your profile directly in the TikTok app or browser.
Yes. Switch to "Video link" mode and paste the full URL of the TikTok video you want to share — the QR code will open that exact video when scanned.
On phones with TikTok installed, scanning the QR code opens the profile or video directly in the app. On devices without the app, it opens in a mobile browser instead.
No. This is a static QR code — your TikTok link is encoded directly into the image. It works forever with no subscription, server, or expiry date.
No. All QR code generation happens entirely in your browser. Your username or link never leaves your device — it is never sent to our servers, stored, or tracked.

TikTok QR Code · ToolsBox.org

' ); win.document.close(); } function resetAll() { ['tt-username', 'tt-url'].forEach(id => { const el = document.getElementById(id); if (el) el.value = ''; }); document.getElementById('qr-out').innerHTML = ''; document.getElementById('qm-info').textContent = '—'; document.getElementById('qm-ready').textContent = ''; document.getElementById('link-preview').style.display = 'none'; rmLogo(); } /* ── CUSTOMISE ── */ function toggleCust() { const b = document.getElementById('cust-body'); const hd = document.querySelector('.cust-hd'); const h = b.classList.toggle('hide'); hd.setAttribute('aria-expanded', !h); document.querySelector('.cust-arr').textContent = h ? '▾' : '▴'; } function syncHex(cid, hid) { document.getElementById(hid).value = document.getElementById(cid).value; } function syncCol(hid, cid) { const v = document.getElementById(hid).value; if (/^#[0-9a-fA-F]{6}$/.test(v)) document.getElementById(cid).value = v; } function updSize() { const v = document.getElementById('sz-range').value; document.getElementById('sz-label').textContent = v + '×' + v; document.getElementById('sz-range').setAttribute('aria-valuetext', v + ' by ' + v + ' pixels'); } function setEC(ec, btn) { EC = ec; document.querySelectorAll('.ec-p').forEach(p => { p.classList.remove('on'); p.setAttribute('aria-pressed', 'false'); }); btn.classList.add('on'); btn.setAttribute('aria-pressed', 'true'); } function preset(fg, bg) { document.getElementById('fg-col').value = fg; document.getElementById('fg-hex').value = fg; document.getElementById('bg-col').value = bg; document.getElementById('bg-hex').value = bg; autoGenerate(); } /* ── LOGO ── */ function handleLogo(inp) { const f = inp.files[0]; if (!f) return; if (f.size > 512000) { showErr('Logo must be under 500 KB'); return; } const reader = new FileReader(); reader.onload = e => { currentLogoBase64 = e.target.result; document.getElementById('logo-img').src = currentLogoBase64; document.getElementById('logo-name').textContent = f.name; document.getElementById('logo-prev').style.display = 'flex'; setEC('H', document.querySelector('.ec-p[data-ec="H"]')); autoGenerate(); }; reader.readAsDataURL(f); } function rmLogo() { currentLogoBase64 = null; document.getElementById('logo-inp').value = ''; document.getElementById('logo-prev').style.display = 'none'; document.getElementById('logo-img').src = ''; autoGenerate(); } /* ── ERRORS ── */ function showErr(m) { const e = document.getElementById('err-box'); e.textContent = '⚠️ ' + m; e.classList.add('show'); setTimeout(() => e.classList.remove('show'), 5000); } function hideErr() { document.getElementById('err-box').classList.remove('show'); } /* ── FAQ ── */ function faq(el) { const p = el.parentElement; const open = p.classList.contains('open'); document.querySelectorAll('.fi').forEach(x => { x.classList.remove('open'); x.querySelector('.fq').setAttribute('aria-expanded', 'false'); }); if (!open) { p.classList.add('open'); el.setAttribute('aria-expanded', 'true'); } } /* ── MOBILE NAV ── */ (function() { const h = document.getElementById('ham'), m = document.getElementById('mob-menu'); h.addEventListener('click', () => { const o = m.classList.toggle('open'); h.setAttribute('aria-expanded', o); const s = h.querySelectorAll('span'); if (o) { s[0].style.transform = 'rotate(45deg) translate(4px,4px)'; s[1].style.opacity = '0'; s[2].style.transform = 'rotate(-45deg) translate(4px,-4px)'; } else { s.forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); document.addEventListener('click', e => { if (!h.contains(e.target) && !m.contains(e.target)) { m.classList.remove('open'); h.setAttribute('aria-expanded', 'false'); h.querySelectorAll('span').forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); })(); /* ── LOGO DRAG‑AND‑DROP ── */ (function() { const drop = document.getElementById('logo-drop'); ['dragenter', 'dragover'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.add('drag-over'); })); ['dragleave', 'drop'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.remove('drag-over'); })); drop.addEventListener('drop', e => { e.preventDefault(); const f = e.dataTransfer.files[0]; if (f && f.type.startsWith('image/')) { const dt = new DataTransfer(); dt.items.add(f); document.getElementById('logo-inp').files = dt.files; handleLogo(document.getElementById('logo-inp')); } }); drop.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); document.getElementById('logo-inp').click(); } }); })(); /* ── DEMO ON LOAD ── */ window.addEventListener('load', () => { document.getElementById('tt-username').value = 'toolsbox'; livePreview(); generateQR(); });