<div class="vt" data-vt-cat="visitor-visas"> <div class="vt-crumbs"><nav class="vt-wrap" aria-label="Breadcrumb"><a href="/">Home</a><span>›</span><span>Visit & tourism</span></nav></div> <section class="vt-wrap vt-head"><p class="vt-eyebrow">Browse by purpose</p><h1 class="vt-h1">Visit & tourism visas</h1><p class="vt-intro">Short-term visits for tourism, business meetings, medical treatment and transit, including visa-free travel under the Visa Waiver Program.</p><button type="button" class="vt-filtbtn" id="vtFiltBtn">Show filters</button></section> <section class="vt-wrap vt-twocol"><aside class="vt-aside filters" id="vtFilters"><h2>Filter</h2> <fieldset class="vt-fieldset"><legend>Classification</legend><label><input type="checkbox" data-f="kind" value="Nonimmigrant"><span>Nonimmigrant</span><em>4</em></label><label><input type="checkbox" data-f="kind" value="Program"><span>Program</span><em>1</em></label></fieldset> <fieldset class="vt-fieldset"><legend>Sponsorship</legend><label><input type="checkbox" data-f="sp" value="self"><span>Self-petition / own business</span><em>2</em></label><label><input type="checkbox" data-f="sp" value="none"><span>No sponsor needed</span><em>3</em></label></fieldset> <fieldset class="vt-fieldset"><legend>Nationality-specific</legend><label><input type="checkbox" data-f="nat" value="yes"><span>Limited to certain nationalities</span><em>2</em></label></fieldset> </aside><div class="vt-mainc"> <div class="vt-listbar"><span><strong id="vtCount">5</strong> visa types</span><label style="display:flex;align-items:center;gap:8px;font-size:14px">Sort by<select id="vtSort"><option value="pop">Most popular</option><option value="az">Code A–Z</option></select></label></div><div id="vtList"> <a class="vt-row" href="/visa/b-2" data-kind="Nonimmigrant" data-sp="self" data-cap="no" data-dual="no" data-nat="no" data-pop="1" data-code="B-2"><div style="min-width:0"><div class="t"><span class="c">B-2</span><span class="n">Visitor for Pleasure</span></div><p>Tourism, family visits and medical treatment; no work or degree study.</p><dl><div><dt>Max stay</dt><dd>Up to 6 months</dd></div><div><dt>Annual cap</dt><dd>None</dd></div><div><dt>Sponsor</dt><dd>None (self)</dd></div><div><dt>Dual intent</dt><dd>No</dd></div></dl></div><span class="go" aria-hidden="true">→</span></a> <a class="vt-row" href="/visa/vwp" data-kind="Program" data-sp="none" data-cap="no" data-dual="no" data-nat="yes" data-pop="8" data-code="VWP / ESTA"><div style="min-width:0"><div class="t"><span class="c">VWP / ESTA</span><span class="n">Visa Waiver Program</span></div><p>Visa-free business or tourist visits of up to 90 days for citizens of 42 countries, with an approved ESTA.</p><dl><div><dt>Max stay</dt><dd>90 days</dd></div><div><dt>Annual cap</dt><dd>None</dd></div><div><dt>Sponsor</dt><dd>None</dd></div><div><dt>Dual intent</dt><dd>No</dd></div></dl></div><span class="go" aria-hidden="true">→</span></a> <a class="vt-row" href="/visa/b-1" data-kind="Nonimmigrant" data-sp="self" data-cap="no" data-dual="no" data-nat="no" data-pop="18" data-code="B-1"><div style="min-width:0"><div class="t"><span class="c">B-1</span><span class="n">Business Visitor</span></div><p>Short business trips: meetings, conferences, negotiations. No U.S. employment.</p><dl><div><dt>Max stay</dt><dd>Up to 6 months</dd></div><div><dt>Annual cap</dt><dd>None</dd></div><div><dt>Sponsor</dt><dd>None (self)</dd></div><div><dt>Dual intent</dt><dd>No</dd></div></dl></div><span class="go" aria-hidden="true">→</span></a> <a class="vt-row" href="/visa/bcc" data-kind="Nonimmigrant" data-sp="none" data-cap="no" data-dual="no" data-nat="yes" data-pop="104" data-code="BCC"><div style="min-width:0"><div class="t"><span class="c">BCC</span><span class="n">Border Crossing Card</span></div><p>Combined B-1/B-2 visa and border card for Mexican citizens, generally valid for 10 years.</p><dl><div><dt>Max stay</dt><dd>30 days in border zone</dd></div><div><dt>Annual cap</dt><dd>None</dd></div><div><dt>Sponsor</dt><dd>None</dd></div><div><dt>Dual intent</dt><dd>No</dd></div></dl></div><span class="go" aria-hidden="true">→</span></a> <a class="vt-row" href="/visa/c-1" data-kind="Nonimmigrant" data-sp="none" data-cap="no" data-dual="no" data-nat="no" data-pop="105" data-code="C-1"><div style="min-width:0"><div class="t"><span class="c">C-1</span><span class="n">Transit Visa</span></div><p>Immediate and continuous transit through the U.S., up to 29 days; C-1/D for crew joining a vessel.</p><dl><div><dt>Max stay</dt><dd>29 days</dd></div><div><dt>Annual cap</dt><dd>None</dd></div><div><dt>Sponsor</dt><dd>None</dd></div><div><dt>Dual intent</dt><dd>No</dd></div></dl></div><span class="go" aria-hidden="true">→</span></a> </div><div class="vt-empty" id="vtNone" style="display:none">No visa types match those filters.</div> <div class="vt-note"><div><b>Not sure which classification fits?</b><span>Every classification is listed by code in the A–Z index.</span></div><a href="/a-z" style="font-weight:700;font-size:15px;white-space:nowrap">Open the A–Z index →</a></div> </div></section></div> <script>(function(){var b=document.getElementById('vtFiltBtn'),a=document.getElementById('vtFilters');b&&b.addEventListener('click',function(){var o=!a.classList.contains('open');a.classList.toggle('open',o);b.textContent=o?'Hide filters':'Show filters'});var list=document.getElementById('vtList');if(!list)return;var rows=[].slice.call(list.children),boxes=[].slice.call(document.querySelectorAll('#vtFilters input[type=checkbox]'));function apply(){var sel={};boxes.forEach(function(x){if(x.checked)(sel[x.getAttribute('data-f')]=sel[x.getAttribute('data-f')]||[]).push(x.value)});var n=0;rows.forEach(function(r){var ok=Object.keys(sel).every(function(f){return sel[f].indexOf(r.getAttribute('data-'+f))>-1});r.style.display=ok?'':'none';if(ok)n++});document.getElementById('vtCount').textContent=n;document.getElementById('vtNone').style.display=n?'none':'block'}boxes.forEach(function(x){x.addEventListener('change',apply)});var s=document.getElementById('vtSort');s&&s.addEventListener('change',function(){rows.sort(function(x,y){return s.value==='az'?x.getAttribute('data-code').localeCompare(y.getAttribute('data-code'),'en',{numeric:true}):(+x.getAttribute('data-pop'))-(+y.getAttribute('data-pop'))});rows.forEach(function(r){list.appendChild(r)})})})();</script>