<iframe
id="pf-iframe"
style="width:100%;border:none;display:block;min-height:900px"
scrolling="no"
srcdoc='
Find a Pediatrician
var S={tax:”208000000X”,spec:”Pediatrics”,page:1,results:[],total:0,busy:false,lastQ:””};
var CLR=[“#064e3b”,”#065f46″,”#047857″,”#059669″,”#0d9488″,”#0e7490″,”#1d4ed8″,”#4338ca”,”#7c3aed”,”#be185d”];
function clr(n){var s=0;for(var i=0;i-1){r.state=raw.toUpperCase();return r;}
if(STATES[raw.toLowerCase()]){r.state=STATES[raw.toLowerCase()];return r;}
if(raw.indexOf(“,”)>-1){var p=raw.split(“,”);r.city=p[0].trim();var s=p[1].trim();r.state=ABBRS.indexOf(s.toUpperCase())>-1?s.toUpperCase():(STATES[s.toLowerCase()]||””);return r;}
var clean=raw.replace(/^dr.?s*/i,””).trim();
if(/^dr.?s/i.test(raw)){var w=clean.split(/s+/);r.last=w[w.length-1];if(w.length>=2)r.first=w[0];return r;}
r.city=raw;return r;
}
function setSpec(btn,code,name){
S.tax=code;S.spec=name;
document.querySelectorAll(“.chip”).forEach(function(b){b.className=”chip”;b.textContent=b.textContent.replace(/^✓s*/,””);});
btn.className=”chip active”;btn.textContent=”✓ “+btn.textContent.replace(/^✓s*/,””);
if(S.results.length)go();
}
function go(pg){
if(S.busy)return;
var q=document.getElementById(“q”).value.trim();
if(!q){document.getElementById(“q”).style.border=”3px solid #ef4444″;setTimeout(function(){document.getElementById(“q”).style.border=”3px solid #059669″;},1500);return;}
S.page=pg||1;S.lastQ=q;S.busy=true;
var btn=document.querySelector(“.search-bar button”);
btn.textContent=”Searching…”;btn.style.background=”#6b7280″;btn.disabled=true;
document.getElementById(“container”).innerHTML=’‘;
document.getElementById(“count”).style.display=”none”;
document.getElementById(“pages”).innerHTML=””;
var parsed=parse(q);
var p=new URLSearchParams({version:”2.1″,limit:25,skip:(S.page-1)*25,enumeration_type:”NPI-1″,taxonomy_description:S.spec.split(” “)[0]});
if(parsed.zip)p.append(“postal_code”,parsed.zip);
else{if(parsed.city)p.append(“city”,parsed.city);if(parsed.state)p.append(“state”,parsed.state);if(parsed.last)p.append(“last_name”,parsed.last);if(parsed.first)p.append(“first_name”,parsed.first);}
fetch(“https://npiregistry.cms.hhs.gov/api/?”+p.toString())
.then(function(r){return r.json()})
.then(function(data){
S.busy=false;btn.textContent=”Search”;btn.style.background=”#059669″;btn.disabled=false;
S.results=data.results||[];S.total=data.result_count||0;
render(q);
})
.catch(function(){
S.busy=false;btn.textContent=”Search”;btn.style.background=”#059669″;btn.disabled=false;
document.getElementById(“container”).innerHTML=”“;
});
}
function render(q){
var cnt=document.getElementById(“count”);
cnt.style.display=”block”;
cnt.innerHTML=”“+S.total.toLocaleString()+” pediatricians found for ““+q+”“”;
if(!S.results.length){document.getElementById(“container”).innerHTML=”“;return;}
var h=””;
S.results.forEach(function(r,i){
var b=r.basic||{};var f=b.first_name||””;var l=b.last_name||””;
var cred=b.credential?”, “+b.credential:””;
var sp=pSpec(r);var ad=pAddr(r);
var addr=[ad.address_1,ad.city,ad.state,ad.postal_code].filter(Boolean).join(“, “);
var tel=ph(ad.telephone_number||””);
var c=clr(f+l);var gnd=b.gender===”F”?”♀ Female”:b.gender===”M”?”♂ Male”:””;
h+=”“;
if(addrs.length){
h+=”
📞 “+tel:””)+(fax?”
Fax: “+fax:””)+”“;});
}
if(taxs.length){
h+=”“;
if(b.enumeration_date)h+=”
Find a Pediatrician
Anywhere in America
Search 115,000+ board-registered physicians from the official U.S. federal NPI registry
115,000+Pediatricians
50 StatesNationwide
Real-timeLive federal data
FreeNo signup needed
Official CMS NPPES Registry
Updated daily by federal government
All providers NPI-verified
Filter by specialty
🩺
Search for a pediatrician
Type a location or doctor name above and press Search
Examples: “Atlanta, GA” · “TX” · “90210” · “Dr. Smith”
Searching 115,000+ pediatricians…
⚠️
Connection error
Could not reach the NPI registry. Please try again.
🔍
No results found
Try a state abbreviation like GA, a city + state like Atlanta, GA, or a zip code.
“;
h+=”
“;
});
document.getElementById(“container”).innerHTML=h;
renderPages();
window.scrollTo(0,0);
}
function renderPages(){
var pages=Math.min(Math.ceil(S.total/25),20);
if(pages1)h+=”“;
var s=Math.max(1,S.page-2),e=Math.min(pages,S.page+2);
for(var p=s;p<=e;p++)h+="“;
if(S.page<pages)h+="“;
document.getElementById(“pages”).innerHTML=h;
}
function openModal(i){
var r=S.results[i];if(!r)return;
var b=r.basic||{};var f=b.first_name||””;var l=b.last_name||””;
var cred=b.credential?”, “+b.credential:””;
var sp=pSpec(r);var c=clr(f+l);
var addrs=r.addresses||[];var taxs=r.taxonomies||[];
var gnd=b.gender===”F”?”Female”:b.gender===”M”?”Male”:””;
var h=”“+ini(f,l)+”
“;
h+=”“;
h+=”
Dr. “+f+” “+l+cred+”
“;
h+=”“;
h+=”“;
if(addr)h+=”📍 “+addr+”“;
if(tel)h+=”📞 “+tel+”“;
h+=”NPI: “+r.number+”“;
h+=”
“;
h+=”“+(tel?”“:””)+”
“;
h+=”“+ini(f,l)+”
Dr. “+f+” “+l+cred+”
“+sp+”
“+(gnd?”“+gnd+”
“:””)+”Practice Addresses
“;
addrs.forEach(function(a){var as=[a.address_1,a.address_2,a.city,a.state,a.postal_code].filter(Boolean).join(“, “);var tel=ph(a.telephone_number||””);var fax=ph(a.fax_number||””);h+=”“+(a.address_purpose===”LOCATION”?”📍 Primary Practice”:”📬 Mailing Address”)+”
“+as+(tel?”📞 “+tel:””)+(fax?”
Fax: “+fax:””)+”
Specialties & Licenses
“;
taxs.forEach(function(t){h+=”“+t.desc+”“+(t.primary?” PRIMARY“:””)+(t.state?”
License: “+t.license+” · “+t.state+”“:””)+”
“;});
}
h+=”License: “+t.license+” · “+t.state+”“:””)+”
NPI NUMBER
“+r.number+”
Registered: “+b.enumeration_date+(b.last_updated?” · Updated: “+b.last_updated:””)+”
“;
document.getElementById(“modal”).innerHTML=h;
document.getElementById(“overlay”).className=”overlay open”;
}
function closeModal(e){if(e.target===document.getElementById(“overlay”))document.getElementById(“overlay”).className=”overlay”;}
document.getElementById(“q”).addEventListener(“keydown”,function(e){if(e.key===”Enter”)go();});
‘>
// Auto-resize iframe to content height
(function(){
var iframe = document.getElementById(‘pf-iframe’);
function resize(){
try{
var h = iframe.contentDocument.body.scrollHeight;
if(h > 400) iframe.style.minHeight = h + ‘px’;
}catch(e){}
}
iframe.addEventListener(‘load’, function(){
resize();
setInterval(resize, 800);
});
})();
