{"id":278735,"date":"2026-05-06T11:24:15","date_gmt":"2026-05-06T09:24:15","guid":{"rendered":"https:\/\/www.unipile.com\/?p=278735"},"modified":"2026-05-06T11:27:29","modified_gmt":"2026-05-06T09:27:29","slug":"oauth-e-mail-api","status":"publish","type":"post","link":"https:\/\/www.unipile.com\/nl\/oauth-email-api\/","title":{"rendered":"OAuth E-mail API: Authenticeer Mailboxen van Gebruikers op de Juiste Manier (2026)"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-toc,<!-- [et_pb_line_break_holder] -->#unipile-oea-toc *,<!-- [et_pb_line_break_holder] -->#unipile-oea-toc *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-toc *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 0 20px 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e2e5ea !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  user-select: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-label {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.72rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-label svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-toggle-icon {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-toggle-icon.collapsed {<!-- [et_pb_line_break_holder] -->  transform: rotate(-90deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(4, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 6px 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-col {<!-- [et_pb_line_break_holder] -->  padding: 12px 12px !important;<!-- [et_pb_line_break_holder] -->  border-left: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-col:first-child {<!-- [et_pb_line_break_holder] -->  border-left: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-col-label {<!-- [et_pb_line_break_holder] -->  font-size: 0.52rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 1px !important;<!-- [et_pb_line_break_holder] -->  padding: 0 6px 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-item {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.15s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-item:hover {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-item.active {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.08) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-num {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  min-width: 18px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->  background: #f1f5f9 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.55rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-item.active .oea-num {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-item-text {<!-- [et_pb_line_break_holder] -->  font-size: 0.68rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->  color: #374151 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-toc.oea-toc-wrapper .oea-toc-item.active .oea-item-text {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 1000px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-toc.oea-toc-wrapper .oea-toc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: repeat(2, 1fr) !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-toc.oea-toc-wrapper .oea-toc-grid {<!-- [et_pb_line_break_holder] -->    display: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-toc.oea-toc-wrapper .oea-toc-grid.expanded {<!-- [et_pb_line_break_holder] -->    display: grid !important;<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 480px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-toc.oea-toc-wrapper .oea-toc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-toc\" class=\"oea-toc-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-toc-card\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-toc-header\" id=\"oea-toc-toggle\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-toc-label\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>Table of Contents<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <svg class=\"oea-toc-toggle-icon\" viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-toc-grid\" id=\"oea-toc-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-toc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-col-label\">Foundations<\/span><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-what-is\" class=\"oea-toc-item active\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">01<\/span><span class=\"oea-item-text\">What is an OAuth Email API?<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-why-oauth\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">02<\/span><span class=\"oea-item-text\">Why OAuth Replaced Password Access<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-how-it-works\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">03<\/span><span class=\"oea-item-text\">How OAuth Works (Step-by-Step)<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-providers\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">04<\/span><span class=\"oea-item-text\">OAuth Flows by Provider<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-toc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-col-label\">Complexity<\/span><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-hidden-complexity\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">05<\/span><span class=\"oea-item-text\">Hidden Complexity of Multi-Provider OAuth<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-architecture\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">06<\/span><span class=\"oea-item-text\">3 Architectures Compared<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-build-vs-buy\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">07<\/span><span class=\"oea-item-text\">Build vs Buy: Hosted OAuth<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-tokens\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">08<\/span><span class=\"oea-item-text\">Managing Tokens<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-toc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-col-label\">Advanced<\/span><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-scopes\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">09<\/span><span class=\"oea-item-text\">OAuth Scopes Guide<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-compliance\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">10<\/span><span class=\"oea-item-text\">Compliance: SOC2, GDPR, CASA<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-pricing\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">11<\/span><span class=\"oea-item-text\">Pricing and Cost Models<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-pitfalls\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">12<\/span><span class=\"oea-item-text\">Common Pitfalls<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-toc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-col-label\">Reference<\/span><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-faq\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">13<\/span><span class=\"oea-item-text\">FAQ (10 Questions)<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"#oea-get-started\" class=\"oea-toc-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-num\">14<\/span><span class=\"oea-item-text\">Get Started in 5 Minutes<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var toggle = document.getElementById('oea-toc-toggle');<!-- [et_pb_line_break_holder] -->    var grid = document.getElementById('oea-toc-grid');<!-- [et_pb_line_break_holder] -->    var icon = toggle ? toggle.querySelector('.oea-toc-toggle-icon') : null;<!-- [et_pb_line_break_holder] -->    if(!toggle || !grid) return;<!-- [et_pb_line_break_holder] -->    toggle.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->      var isCollapsed = grid.style.display === 'none';<!-- [et_pb_line_break_holder] -->      grid.style.display = isCollapsed ? '' : 'none';<!-- [et_pb_line_break_holder] -->      if(icon){ icon.style.transform = isCollapsed ? '' : 'rotate(-90deg)'; }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    var items = document.querySelectorAll('#unipile-oea-toc .oea-toc-item');<!-- [et_pb_line_break_holder] -->    items.forEach(function(item){<!-- [et_pb_line_break_holder] -->      item.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->        items.forEach(function(i){ i.classList.remove('active'); });<!-- [et_pb_line_break_holder] -->        item.classList.add('active');<!-- [et_pb_line_break_holder] -->        var href = item.getAttribute('href');<!-- [et_pb_line_break_holder] -->        if(href && href.startsWith('#')){<!-- [et_pb_line_break_holder] -->          e.preventDefault();<!-- [et_pb_line_break_holder] -->          var target = document.querySelector(href);<!-- [et_pb_line_break_holder] -->          if(target){ target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if(document.readyState === 'loading'){<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-hero,<!-- [et_pb_line_break_holder] -->#unipile-oea-hero *,<!-- [et_pb_line_break_holder] -->#unipile-oea-hero *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-hero *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1160px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px 50px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 56px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-h1 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 44px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.18 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-h1 .oea-accent {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-desc {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-meta {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-meta-item {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.8rem !important;<!-- [et_pb_line_break_holder] -->  color: #718096 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-meta-item svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-meta-sep {<!-- [et_pb_line_break_holder] -->  width: 4px !important;<!-- [et_pb_line_break_holder] -->  height: 4px !important;<!-- [et_pb_line_break_holder] -->  background: #cbd5e0 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-btn-primary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-btn-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-btn-primary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-btn-secondary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #0f2736 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-btn-secondary:hover {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-btn-secondary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-hero-tags {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-tag {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.75rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Code editor *\/<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-code-wrap {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 20px 60px rgba(15,39,54,0.18) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-editor-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-dot {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-pre {<!-- [et_pb_line_break_holder] -->  padding: 22px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-editor-ok svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-providers-strip {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 20px !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid #e8ecf0 !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-providers-strip img {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-hero.oea-hero-wrapper .oea-prov-label {<!-- [et_pb_line_break_holder] -->  font-size: 0.72rem !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-hero.oea-hero-wrapper {<!-- [et_pb_line_break_holder] -->    padding: 50px 20px 40px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-hero.oea-hero-wrapper .oea-hero-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->    gap: 40px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-hero.oea-hero-wrapper .oea-hero-h1 {<!-- [et_pb_line_break_holder] -->    font-size: 34px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-hero.oea-hero-wrapper .oea-hero-h1 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-hero.oea-hero-wrapper .oea-btn-primary,<!-- [et_pb_line_break_holder] -->  #unipile-oea-hero.oea-hero-wrapper .oea-btn-secondary {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-hero\" class=\"oea-hero-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-hero-grid\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-hero-left\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-hero-badge\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-hero-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->        <span>OAuth Email API Guide 2026<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <h1 class=\"oea-hero-h1\">OAuth Email API: Authenticate User Mailboxes <span class=\"oea-accent\">the Right Way<\/span><\/h1><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-hero-desc\">Stop storing passwords. An OAuth email API lets your app access user inboxes securely &#8211; using revocable, scope-limited tokens from Gmail, Outlook, and IMAP providers. This guide covers every OAuth flow, every scope, every pitfall, and how to ship in 5 minutes with a unified hosted auth layer.<\/pee><!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->      <div class=\"oea-hero-actions\"><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"oea-btn-primary\"><span>Start Free Trial<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\" class=\"oea-btn-secondary\"><span>Email API Guide<\/span><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-hero-right\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-code-wrap\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-editor-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-dot oea-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"oea-dot oea-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"oea-dot oea-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"oea-filename\">connect-mailbox.js<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pre\"><code><span class=\"c\">\/\/ Connect any user mailbox via OAuth - 1 API call<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">response<\/span> <span class=\"w\">=<\/span> <span class=\"k\">await<\/span> <span class=\"fn\">fetch<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"s\">'https:\/\/api6.unipile.com:13226\/api\/v1\/hosted\/accounts\/link'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">{<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">method:<\/span> <span class=\"s\">'POST'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">headers:<\/span> <span class=\"w\">{<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"s\">'X-API-KEY'<\/span><span class=\"w\">:<\/span> <span class=\"s\">'YOUR_API_KEY'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"s\">'Content-Type'<\/span><span class=\"w\">:<\/span> <span class=\"s\">'application\/json'<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">},<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">body:<\/span> <span class=\"fn\">JSON.stringify<\/span><span class=\"w\">({<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"w\">type:<\/span> <span class=\"s\">'GOOGLE'<\/span><span class=\"w\">,<\/span>  <span class=\"c\">\/\/ or MICROSOFT, IMAP<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"w\">name:<\/span> <span class=\"s\">'user_123'<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">})<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">{ url } =<\/span> <span class=\"k\">await<\/span> <span class=\"w\">response.<\/span><span class=\"fn\">json<\/span><span class=\"w\">();<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Redirect user to url - OAuth handled by Unipile<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-editor-ok\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>Gmail, Outlook, IMAP &#8211; one hosted auth flow<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-providers-strip\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-prov-label\">Works with:<\/span><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP\"><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-whatis,<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis *,<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->  max-width: 720px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-definition-card {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-definition-card .oea-def-label {<!-- [et_pb_line_break_holder] -->  font-size: 0.72rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 10px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-definition-card .oea-def-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-card.bad {<!-- [et_pb_line_break_holder] -->  border-color: rgba(239,68,68,0.3) !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.03) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-card.good {<!-- [et_pb_line_break_holder] -->  border-color: rgba(59,185,139,0.3) !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.03) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-icon {<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-icon.bad-icon {<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.12) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-icon.good-icon {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-icon svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-icon.bad-icon svg { stroke: #ef4444 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-icon.good-icon svg { stroke: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-list {<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-list li {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .oea-compare-list li svg {<!-- [et_pb_line_break_holder] -->  width: 15px !important;<!-- [et_pb_line_break_holder] -->  height: 15px !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .bad-li svg { stroke: #ef4444 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-whatis.oea-whatis-wrapper .good-li svg { stroke: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-whatis.oea-whatis-wrapper .oea-compare-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-whatis.oea-whatis-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-whatis\" class=\"oea-whatis-wrapper\"><!-- [et_pb_line_break_holder] -->  <span id=\"oea-what-is\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->    <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->    <span>Definition<\/span><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] -->  <h2 class=\"oea-h2\">What is an OAuth Email API?<\/h2><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-intro-text\">An <strong>OAuth email API<\/strong> is a programmatic interface that grants your application access to user mailboxes using OAuth 2.0 tokens &#8211; without ever handling or storing the user&#8217;s password. Instead of asking users for credentials, you redirect them through the provider&#8217;s consent screen, receive a short-lived access token, and use it to read, send, or sync emails on their behalf. The distinction matters: this is about accessing <em>user-owned mailboxes<\/em> (Gmail, Outlook, personal email), not sending transactional emails via SMTP relay services like SendGrid.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <div class=\"oea-definition-card\"><!-- [et_pb_line_break_holder] -->    <span class=\"oea-def-label\">Canonical definition<\/span><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-def-text\">An <strong>OAuth email API<\/strong> is a combination of an OAuth 2.0 authorization flow (to authenticate a user and obtain delegated access) and an email API (to read, send, search, or sync that user&#8217;s mailbox). The OAuth layer generates a cryptographically signed, revocable, scope-limited access token. The email API consumes that token to interact with Gmail, Outlook, or any IMAP-compatible mailbox &#8211; all without ever knowing the user&#8217;s password.<\/pee><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <div class=\"oea-compare-grid\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-compare-card bad\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compare-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compare-icon bad-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <span class=\"oea-compare-title\">Password-based IMAP access<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <ul class=\"oea-compare-list\"><!-- [et_pb_line_break_holder] -->        <li class=\"bad-li\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Stores plaintext or encrypted passwords in your DB<\/span><\/li><!-- [et_pb_line_break_holder] -->        <li class=\"bad-li\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Full mailbox access &#8211; no scope control<\/span><\/li><!-- [et_pb_line_break_holder] -->        <li class=\"bad-li\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Blocked by Google\/Microsoft since 2026<\/span><\/li><!-- [et_pb_line_break_holder] -->        <li class=\"bad-li\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>GDPR\/SOC2 liability for credential storage<\/span><\/li><!-- [et_pb_line_break_holder] -->      <\/ul><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-compare-card good\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compare-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compare-icon good-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <span class=\"oea-compare-title\">OAuth email API access<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <ul class=\"oea-compare-list\"><!-- [et_pb_line_break_holder] -->        <li class=\"good-li\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Zero password storage &#8211; only short-lived tokens<\/span><\/li><!-- [et_pb_line_break_holder] -->        <li class=\"good-li\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Granular scopes &#8211; read-only, send-only, or full<\/span><\/li><!-- [et_pb_line_break_holder] -->        <li class=\"good-li\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Revocable at any time by the user<\/span><\/li><!-- [et_pb_line_break_holder] -->        <li class=\"good-li\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Compliant with GDPR, SOC2<\/span><\/li><!-- [et_pb_line_break_holder] -->      <\/ul><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-why,<!-- [et_pb_line_break_holder] -->#unipile-oea-why *,<!-- [et_pb_line_break_holder] -->#unipile-oea-why *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-why *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why { background: #f4f5f7 !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-reasons-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(3, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-reason-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-reason-icon {<!-- [et_pb_line_break_holder] -->  width: 44px !important;<!-- [et_pb_line_break_holder] -->  height: 44px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-reason-icon svg {<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-reason-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 10px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-reason-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-alert-box {<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.06) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(239,68,68,0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-alert-icon {<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.12) !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-alert-icon svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-alert-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-why.oea-why-wrapper .oea-alert-text strong {<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-why.oea-why-wrapper .oea-reasons-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-why.oea-why-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-why.oea-why-wrapper .oea-reasons-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-why.oea-why-wrapper .oea-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-why\" class=\"oea-why-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-inner\"><!-- [et_pb_line_break_holder] -->    <span id=\"oea-why-oauth\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->      <span>Context<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-h2\">Why OAuth Replaced Password-Based Email Access<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-intro-text\">Using IMAP with a username and password used to be the standard way to access user email programmatically. That era is over. Google deprecated basic authentication for Gmail in 2022, and Microsoft completed its shutdown of basic auth for Exchange Online in October 2022, with the final sweep for remaining protocols in 2026. If your application still relies on password-based IMAP access, it is either already broken or will break soon.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-reasons-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-reason-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-reason-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-reason-title\">Security: no password storage<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-reason-text\">OAuth tokens are short-lived (typically 1 hour) and scope-limited. Even if leaked, they cannot be used to log in as the user, change their password, or access other services. You never touch the user&#8217;s credential.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-reason-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-reason-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 8 12 12 14 14\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-reason-title\">The 2026 deadline: Microsoft basic auth sunset<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-reason-text\">Microsoft completed its retirement of basic authentication for Exchange Online and legacy IMAP in 2026. Any app still using username+password to access Outlook or Microsoft 365 mailboxes will receive 401 Unauthorized errors.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-reason-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-reason-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-reason-title\">Compliance: GDPR &#038; SOC2<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-reason-text\">Storing user passwords &#8211; even hashed &#8211; creates a compliance liability. GDPR&#8217;s data minimization principle requires you to not collect what you do not need. SOC2 auditors flag credential storage.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-alert-box\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-alert-icon\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-alert-text\"><strong>Critical:<\/strong> Google App Passwords and Microsoft legacy protocols are no longer sufficient for production applications. If you are building a product that accesses user mailboxes, an <strong>OAuth email API<\/strong> is not optional &#8211; it is the only compliant path forward in 2026.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-how,<!-- [et_pb_line_break_holder] -->#unipile-oea-how *,<!-- [et_pb_line_break_holder] -->#unipile-oea-how *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-how *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-steps-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-step-num {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  min-width: 40px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-step-body {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-step-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-step-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-step-text code {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 7px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-tokens-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 22px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-card .oea-token-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-card.access .oea-token-label { color: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-card.refresh .oea-token-label { color: #8a8c2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-card.access .oea-token-dot { background: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-card.refresh .oea-token-dot { background: #DDDF4C !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-name {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-how.oea-how-wrapper .oea-token-desc {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-how.oea-how-wrapper .oea-tokens-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-how.oea-how-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-how\" class=\"oea-how-wrapper\"><!-- [et_pb_line_break_holder] -->  <span id=\"oea-how-it-works\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->    <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->    <span>How It Works<\/span><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] -->  <h2 class=\"oea-h2\">How OAuth Works for Email APIs (Step-by-Step)<\/h2><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-intro-text\">The authorization code flow is the standard OAuth 2.0 flow for server-side applications that need to access user email. Understanding it end-to-end helps you implement it correctly, debug token failures, and explain the flow to your security team.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <div class=\"oea-steps-list\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-step\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-num\"><span>01<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-body\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-step-title\">Your app redirects the user to the provider&#8217;s authorization URL<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-step-text\">You construct a URL with your <code>client_id<\/code>, a <code>redirect_uri<\/code>, the requested <code>scope<\/code>, a random <code>state<\/code> parameter (CSRF protection), and <code>response_type=code<\/code>. The user is sent to Google&#8217;s or Microsoft&#8217;s consent screen.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-step\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-num\"><span>02<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-body\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-step-title\">The user reviews and approves the requested scopes<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-step-text\">The consent screen shows your app name, logo, and the exact permissions you requested. The user either approves (grants consent) or denies. Requesting too many scopes at this step is the most common cause of consent rejection.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-step\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-num\"><span>03<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-body\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-step-title\">The provider returns an authorization code to your redirect URI<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-step-text\">After consent, the provider redirects to your <code>redirect_uri<\/code> with a short-lived <code>code<\/code> parameter (valid for ~10 minutes). Verify the <code>state<\/code> parameter matches what you sent to prevent CSRF attacks.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-step\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-num\"><span>04<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-body\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-step-title\">Your backend exchanges the code for tokens<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-step-text\">Server-to-server POST to the token endpoint with your <code>client_id<\/code>, <code>client_secret<\/code>, the <code>code<\/code>, and <code>grant_type=authorization_code<\/code>. You receive an <code>access_token<\/code> and (if you requested offline access) a <code>refresh_token<\/code>.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-step\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-num\"><span>05<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-step-body\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-step-title\">Use the access token to call the email API<\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-step-text\">Pass the access token in the <code>Authorization: Bearer<\/code> header on every API request. When it expires (typically after 1 hour), use the refresh token to obtain a new access token without user interaction.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">Access tokens vs refresh tokens: lifecycle<\/h3><!-- [et_pb_line_break_holder] -->  <div class=\"oea-tokens-grid\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-token-card access\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-token-label\"><span class=\"oea-token-dot\"><\/span><span>Access Token<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-token-name\">Short-lived credential<\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-token-desc\">Valid for 1 hour (Google) or 1 hour (Microsoft). Passed in the Authorization header on every API call. When it expires, your OAuth email API call returns a 401 error &#8211; the signal to refresh.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-token-card refresh\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-token-label\"><span class=\"oea-token-dot\"><\/span><span>Refresh Token<\/span><\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-token-name\">Long-lived renewal credential<\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-token-desc\">Valid until revoked (Google) or 90 days of inactivity (Microsoft). Never sent to API endpoints &#8211; only used server-to-server to get new access tokens. Must be encrypted at rest.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Build CTA inline 1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;20px||20px||true|false&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243;][et_pb_code _builder_version=&#8221;4.27.0&#8243;]<div id=\"unipile-oea-buildcta-1\" class=\"oea-buildcta-wrapper\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#unipile-oea-buildcta-1.oea-buildcta-wrapper,\n#unipile-oea-buildcta-1.oea-buildcta-wrapper * {\n  box-sizing: border-box !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper {\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-strip {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 24px !important;\n  background: #f4f5f7 !important;\n  border: 1px solid #e5e7eb !important;\n  border-radius: 16px !important;\n  padding: 22px 28px !important;\n  max-width: 1100px !important;\n  margin: 0 auto !important;\n  flex-wrap: wrap !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-text {\n  flex: 1 1 360px !important;\n  min-width: 240px !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-title {\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 18px !important;\n  font-weight: 700 !important;\n  color: #0f2736 !important;\n  margin: 0 0 4px 0 !important;\n  line-height: 1.3 !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-sub {\n  font-size: 14px !important;\n  color: #4a5568 !important;\n  margin: 0 !important;\n  line-height: 1.55 !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-btn {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  background: #DDDF4C !important;\n  color: #0f2736 !important;\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  padding: 12px 22px !important;\n  border-radius: 10px !important;\n  text-decoration: none !important;\n  transition: transform 0.2s ease, box-shadow 0.2s ease !important;\n  white-space: nowrap !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-btn:hover {\n  transform: translateY(-5px) !important;\n  box-shadow: 0 10px 24px rgba(221, 223, 76, 0.4) !important;\n}\n#unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-btn svg {\n  width: 16px !important;\n  height: 16px !important;\n}\n@media (max-width: 600px) {\n  #unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-strip { padding: 18px 20px !important; flex-direction: column !important; align-items: stretch !important; }\n  #unipile-oea-buildcta-1.oea-buildcta-wrapper .oea-bcta-btn { width: 100% !important; justify-content: center !important; }\n}\n<\/style>\n<div class=\"oea-bcta-strip\">\n<div class=\"oea-bcta-text\">\n<pee class=\"oea-bcta-title\">Build a unified OAuth flow in minutes<\/pee>\n<pee class=\"oea-bcta-sub\">Skip the per-provider authorization plumbing. One Unipile API call replaces three OAuth integrations.<\/pee>\n<\/div>\n<a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"oea-bcta-btn\">\n<span>Build it now<\/span>\n<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n<\/a>\n<\/div>\n<\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-providers,<!-- [et_pb_line_break_holder] -->#unipile-oea-providers *,<!-- [et_pb_line_break_holder] -->#unipile-oea-providers *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-providers *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers { background: #f4f5f7 !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-block {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-logo {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-logo.gmail { background: rgba(234,67,53,0.12) !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-logo.outlook { background: rgba(0,120,212,0.12) !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-logo.imap { background: rgba(100,116,139,0.12) !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-logo img {<!-- [et_pb_line_break_holder] -->  width: 24px !important;<!-- [et_pb_line_break_holder] -->  height: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-title-group {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-name {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 18px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-sub {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-provider-desc {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 18px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-meta-chips {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-chip {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 10px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #374151 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-code-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-code-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-cdot {<!-- [et_pb_line_break_holder] -->  width: 10px !important;<!-- [et_pb_line_break_holder] -->  height: 10px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-cdot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-cdot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-cdot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-code-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-pre {<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .oea-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-providers.oea-providers-wrapper .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-providers.oea-providers-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #unipile-oea-providers.oea-providers-wrapper .oea-provider-block { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-providers\" class=\"oea-providers-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-inner\"><!-- [et_pb_line_break_holder] -->    <span id=\"oea-providers\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->      <span>By Provider<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-h2\">OAuth Flows by Provider: Google and Microsoft<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-intro-text\">Google and Microsoft each implement OAuth 2.0 differently &#8211; different authorization endpoints, different scopes, different token endpoints, and different verification processes. IMAP is the credential-based fallback for providers without standardized OAuth. Here is what you need to know for each case.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-provider-block\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-provider-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-provider-logo gmail\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail\"><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-provider-title-group\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-provider-name\">Google OAuth 2.0 (Gmail)<\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-provider-sub\">Authorization: accounts.google.com\/o\/oauth2\/v2\/auth<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-provider-desc\">Google&#8217;s OAuth implementation uses the standard authorization code flow. The token endpoint is <code style=\"background:#f4f5f7;padding:2px 6px;border-radius:4px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">https:\/\/oauth2.googleapis.com\/token<\/code>. The critical complexity is Google CASA (Cloud Application Security Assessment): once your app exceeds 100 users, you must pass a security review. For sensitive scopes like <code style=\"background:#f4f5f7;padding:2px 6px;border-radius:4px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">gmail.modify<\/code> or <code style=\"background:#f4f5f7;padding:2px 6px;border-radius:4px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">gmail.readonly<\/code>, App Verification is required before production use. For a complete <a href=\"https:\/\/www.unipile.com\/gmail-api-send-email-a-comprehensive-guide-for-developers\/\" style=\"color:#3BB98B;text-decoration:underline;\">Gmail API integration deep-dive<\/a>, see our dedicated guide. Implementation details are in the <a href=\"https:\/\/developer.unipile.com\/docs\/google-oauth\" style=\"color:#3BB98B;text-decoration:underline;\">Unipile Google OAuth docs<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <div class=\"oea-meta-chips\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">gmail.readonly<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">gmail.send<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">gmail.modify<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">gmail.labels<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-code-block\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-code-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-cdot oea-cdot-r\"><\/span><span class=\"oea-cdot oea-cdot-y\"><\/span><span class=\"oea-cdot oea-cdot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"oea-code-filename\">gmail-token-exchange.sh<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pre\"><code><span class=\"c\"># Exchange authorization code for Gmail access + refresh tokens<\/span><!-- [et_pb_line_break_holder] --><span class=\"fn\">curl<\/span> <span class=\"s\">-X POST https:\/\/oauth2.googleapis.com\/token<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"code=AUTH_CODE\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"client_id=YOUR_CLIENT_ID\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"client_secret=YOUR_CLIENT_SECRET\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"redirect_uri=https:\/\/yourapp.com\/callback\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"grant_type=authorization_code\"<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Response: { \"access_token\": \"...\", \"refresh_token\": \"...\", \"expires_in\": 3600 }<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-provider-block\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-provider-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-provider-logo outlook\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook\"><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-provider-title-group\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-provider-name\">Microsoft Identity Platform (Outlook)<\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-provider-sub\">Covers Outlook.com, Microsoft 365, and Exchange Online<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-provider-desc\">Microsoft uses its Identity Platform (formerly Azure AD v2). The token endpoint is <code style=\"background:#f4f5f7;padding:2px 6px;border-radius:4px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">https:\/\/login.microsoftonline.com\/{tenant}\/oauth2\/v2.0\/token<\/code>. Publisher Verification is required before your OAuth email API app can request sensitive mail scopes in production. Microsoft deprecated basic auth for all Exchange Online protocols &#8211; OAuth is mandatory. See our <a href=\"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/\" style=\"color:#3BB98B;text-decoration:underline;\">complete Microsoft Graph email guide<\/a> for full details, and the <a href=\"https:\/\/developer.unipile.com\/docs\/microsoft-oauth\" style=\"color:#3BB98B;text-decoration:underline;\">Unipile Microsoft OAuth docs<\/a> for implementation reference.<\/pee><!-- [et_pb_line_break_holder] -->      <div class=\"oea-meta-chips\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">Mail.Read<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">Mail.Send<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">Mail.ReadWrite<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">offline_access<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-code-block\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-code-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-cdot oea-cdot-r\"><\/span><span class=\"oea-cdot oea-cdot-y\"><\/span><span class=\"oea-cdot oea-cdot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"oea-code-filename\">microsoft-token-exchange.sh<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pre\"><code><span class=\"c\"># Exchange code for Microsoft OAuth tokens<\/span><!-- [et_pb_line_break_holder] --><span class=\"fn\">curl<\/span> <span class=\"s\">-X POST https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"code=AUTH_CODE\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"client_id=YOUR_CLIENT_ID\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"client_secret=YOUR_CLIENT_SECRET\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"redirect_uri=https:\/\/yourapp.com\/callback\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"grant_type=authorization_code\"<\/span> \\<!-- [et_pb_line_break_holder] -->  <span class=\"k\">-d<\/span> <span class=\"s\">\"scope=https:\/\/graph.microsoft.com\/Mail.Read offline_access\"<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Response: { \"access_token\": \"...\", \"refresh_token\": \"...\", \"expires_in\": 3600 }<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-provider-block\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-provider-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-provider-logo imap\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP\"><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-provider-title-group\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-provider-name\">IMAP: When OAuth Is Not Available<\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-provider-sub\">Username\/password or app password authentication<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-provider-desc\">IMAP is not an OAuth provider: it is a protocol that authenticates with username\/password, or app passwords (such as a Google App Password or iCloud-generated password). It is the fallback for custom mail servers, corporate domains not on Microsoft 365, and any provider without a standardized OAuth flow. XOAUTH2 existed as an IMAP SASL extension for a small number of providers, but it has been largely abandoned &#8211; Yahoo discontinued its first-party implementation in 2022. For most IMAP deployments, Unipile authenticates with credentials directly. See the full <a href=\"https:\/\/www.unipile.com\/the-developers-guide-to-imap-api-solution\/\" style=\"color:#3BB98B;text-decoration:underline;\">IMAP integration guide<\/a> for server configuration and authentication details.<\/pee><!-- [et_pb_line_break_holder] -->      <div class=\"oea-meta-chips\"><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">username\/password<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">app password<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">IMAP4_SSL<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"oea-chip\">STARTTLS<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-code-block\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-code-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"oea-cdot oea-cdot-r\"><\/span><span class=\"oea-cdot oea-cdot-y\"><\/span><span class=\"oea-cdot oea-cdot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"oea-code-filename\">imap-credentials.py<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pre\"><code><span class=\"k\">import<\/span> <span class=\"w\">base64, imaplib<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Build XOAUTH2 string from OAuth access token<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">def<\/span> <span class=\"fn\">build_xoauth2<\/span><span class=\"w\">(user_email, access_token):<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">auth_str<\/span> <span class=\"k\">=<\/span> <span class=\"s\">f\"user={user_email}\\x01auth=Bearer {access_token}\\x01\\x01\"<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"k\">return<\/span> <span class=\"fn\">base64.b64encode<\/span><span class=\"w\">(auth_str.encode()).decode()<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Connect via IMAP with XOAUTH2<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">conn<\/span> <span class=\"k\">=<\/span> <span class=\"w\">imaplib.<\/span><span class=\"fn\">IMAP4_SSL<\/span><span class=\"w\">(<\/span><span class=\"s\">\"imap.mail.yahoo.com\"<\/span><span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">auth_str<\/span> <span class=\"k\">=<\/span> <span class=\"fn\">build_xoauth2<\/span><span class=\"w\">(<\/span><span class=\"s\">\"user@yahoo.com\"<\/span><span class=\"w\">, access_token)<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">conn.<\/span><span class=\"fn\">authenticate<\/span><span class=\"w\">(<\/span><span class=\"s\">\"XOAUTH2\"<\/span><span class=\"w\">,<\/span> <span class=\"k\">lambda<\/span> <span class=\"w\">x: auth_str)<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-complexity,<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity *,<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(2, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-icon {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-icon svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-complexity.oea-complexity-wrapper .oea-pain-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-complexity.oea-complexity-wrapper .oea-pain-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-complexity.oea-complexity-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-complexity\" class=\"oea-complexity-wrapper\"><!-- [et_pb_line_break_holder] -->  <span id=\"oea-hidden-complexity\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->    <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->    <span>The Real Cost<\/span><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] -->  <h2 class=\"oea-h2\">The Hidden Complexity of Multi-Provider OAuth<\/h2><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-intro-text\">Implementing an OAuth email API for one provider takes a few days. Implementing it correctly for Gmail, Outlook, and IMAP &#8211; with production-grade token management, error handling, and compliance &#8211; typically takes 4 to 8 weeks of engineering time. Here is why.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <div class=\"oea-pain-grid\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pain-card\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pain-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-title\">3 separate developer consoles<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-pain-text\">Google Cloud Console, Azure Portal, and Yahoo Developer Network are 3 entirely different dashboards with different UX, different app registration flows, and different verification requirements. Any credential rotation touches all 3.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pain-card\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pain-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-title\">Google CASA Tier 2 security review<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-pain-text\">Gmail&#8217;s sensitive scopes (including <code style=\"background:#f4f5f7;padding:1px 5px;border-radius:3px;font-family:'Courier New',monospace;font-size:12px;\">gmail.readonly<\/code>) are blocked at 100 users until you pass a CASA Tier 2 assessment. This involves a CASA-authorized lab, a penetration test, and a formal security review &#8211; typically 6-12 weeks and $10,000-$25,000.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pain-card\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pain-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 8 12 12 14 14\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-title\">Microsoft Publisher Verification<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-pain-text\">Microsoft requires Publisher Verification for apps requesting sensitive Mail scopes. Without it, users see a red &#8220;unverified publisher&#8221; warning on the consent screen. The verification process requires an active Microsoft Partner Network account with a verified domain.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pain-card\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pain-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"23 4 23 10 17 10\"\/><polyline points=\"1 20 1 14 7 14\"\/><path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-title\">3 different token refresh strategies<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-pain-text\">Google refresh tokens expire after 6 months of inactivity (or immediately if the user revokes). Microsoft tokens expire after 90 days of inactivity. Yahoo\/IMAP XOAUTH2 tokens have provider-specific lifetimes. Your token management layer must handle all 3 differently.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pain-card\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pain-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-title\">Consent screen UX divergences<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-pain-text\">Google, Microsoft, and Yahoo each render consent screens differently &#8211; different branding, different scope descriptions, different UI patterns. Your users see 3 different flows depending on their email provider, creating inconsistent UX and higher drop-off rates.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pain-card\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pain-header\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pain-title\">Ongoing maintenance overhead<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <pee class=\"oea-pain-text\">OAuth endpoints change. Scope names get deprecated. New security requirements are added. Each provider announces breaking changes on different timelines. Someone on your team must track 3 provider blogs, 3 changelogs, and 3 compliance calendars &#8211; indefinitely.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Build CTA inline 2&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;20px||20px||true|false&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243;][et_pb_code _builder_version=&#8221;4.27.0&#8243;]<div id=\"unipile-oea-buildcta-2\" class=\"oea-buildcta-wrapper\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#unipile-oea-buildcta-2.oea-buildcta-wrapper,\n#unipile-oea-buildcta-2.oea-buildcta-wrapper * {\n  box-sizing: border-box !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper {\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-strip {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 24px !important;\n  background: #f4f5f7 !important;\n  border: 1px solid #e5e7eb !important;\n  border-radius: 16px !important;\n  padding: 22px 28px !important;\n  max-width: 1100px !important;\n  margin: 0 auto !important;\n  flex-wrap: wrap !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-text {\n  flex: 1 1 360px !important;\n  min-width: 240px !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-title {\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 18px !important;\n  font-weight: 700 !important;\n  color: #0f2736 !important;\n  margin: 0 0 4px 0 !important;\n  line-height: 1.3 !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-sub {\n  font-size: 14px !important;\n  color: #4a5568 !important;\n  margin: 0 !important;\n  line-height: 1.55 !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-btn {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  background: #DDDF4C !important;\n  color: #0f2736 !important;\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  padding: 12px 22px !important;\n  border-radius: 10px !important;\n  text-decoration: none !important;\n  transition: transform 0.2s ease, box-shadow 0.2s ease !important;\n  white-space: nowrap !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-btn:hover {\n  transform: translateY(-5px) !important;\n  box-shadow: 0 10px 24px rgba(221, 223, 76, 0.4) !important;\n}\n#unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-btn svg {\n  width: 16px !important;\n  height: 16px !important;\n}\n@media (max-width: 600px) {\n  #unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-strip { padding: 18px 20px !important; flex-direction: column !important; align-items: stretch !important; }\n  #unipile-oea-buildcta-2.oea-buildcta-wrapper .oea-bcta-btn { width: 100% !important; justify-content: center !important; }\n}\n<\/style>\n<div class=\"oea-bcta-strip\">\n<div class=\"oea-bcta-text\">\n<pee class=\"oea-bcta-title\">Skip the OAuth complexity entirely<\/pee>\n<pee class=\"oea-bcta-sub\">Hosted auth, scope management, refresh handling. Unipile handles all of it so you can focus on your product.<\/pee>\n<\/div>\n<a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"oea-bcta-btn\">\n<span>Build with Unipile<\/span>\n<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n<\/a>\n<\/div>\n<\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-arch,<!-- [et_pb_line_break_holder] -->#unipile-oea-arch *,<!-- [et_pb_line_break_holder] -->#unipile-oea-arch *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-arch *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch { background: #f4f5f7 !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  max-width: 760px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-table-wrap {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper thead th {<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper thead th:first-child {<!-- [et_pb_line_break_holder] -->  border-radius: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.15s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper tbody tr:hover {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.04) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper tbody td {<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper tbody td:first-child {<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-check {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-cross {<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-neutral {<!-- [et_pb_line_break_holder] -->  color: #f59e0b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-arch.oea-arch-wrapper .oea-winner-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 5px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 3px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-arch.oea-arch-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-arch\" class=\"oea-arch-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-inner\"><!-- [et_pb_line_break_holder] -->    <span id=\"oea-architecture\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->      <span>Architecture<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-h2\">OAuth Email API Architecture: 3 Approaches Compared<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-intro-text\">There are 3 architectures for building an OAuth email API layer. Each has a fundamentally different cost-to-ship, maintenance burden, and security profile. The right choice depends on whether email connectivity is your core product or a feature you are shipping alongside your main product.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-table-wrap\"><!-- [et_pb_line_break_holder] -->      <table><!-- [et_pb_line_break_holder] -->        <thead><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <th>Dimension<\/th><!-- [et_pb_line_break_holder] -->            <th>Direct Provider OAuth (x3)<\/th><!-- [et_pb_line_break_holder] -->            <th>Self-hosted OAuth Gateway<\/th><!-- [et_pb_line_break_holder] -->            <th>Unified Hosted OAuth (Unipile) <span class=\"oea-winner-badge\">Recommended<\/span><\/th><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->        <\/thead><!-- [et_pb_line_break_holder] -->        <tbody><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Time to first mailbox linked<\/td><!-- [et_pb_line_break_holder] -->            <td>3-7 days (per provider)<\/td><!-- [et_pb_line_break_holder] -->            <td>2-4 weeks<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">5 minutes<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>OAuth flows to implement<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">3 separate flows<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">3 flows + routing logic<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">1 hosted link endpoint<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Google CASA review<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">You handle it (6-12 weeks, $10k+)<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">You handle it<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Handled by Unipile<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Microsoft Publisher Verification<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">You handle it<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">You handle it<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Handled by Unipile<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Token refresh management<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">3 strategies to build<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-neutral\">Custom per provider<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Automatic, transparent<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Email read\/send API<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">3 different APIs<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-neutral\">Abstraction layer required<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">1 unified REST API<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Webhook on new emails<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">Push\/pull per provider<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-neutral\">Custom<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Unified webhook events<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>SOC2 \/ GDPR compliance<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-neutral\">Your responsibility<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-neutral\">Your responsibility<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Unipile is SOC2 certified<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Ongoing maintenance<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">High (3 provider changelogs)<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-cross\">High<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Zero &#8211; handled by Unipile<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td>Best for<\/td><!-- [et_pb_line_break_holder] -->            <td>Single-provider, email-native products<\/td><!-- [et_pb_line_break_holder] -->            <td>Large teams with dedicated infra<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"oea-check\">Any team shipping fast<\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->        <\/tbody><!-- [et_pb_line_break_holder] -->      <\/table><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-bvb,<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb *,<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-h3:first-of-type {<!-- [et_pb_line_break_holder] -->  margin-top: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-step-desc {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-code-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-code-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-cdot {<!-- [et_pb_line_break_holder] -->  width: 10px !important;<!-- [et_pb_line_break_holder] -->  height: 10px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-cdot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-cdot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-cdot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-code-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-pre {<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-editor-ok svg {<!-- [et_pb_line_break_holder] -->  width: 13px !important;<!-- [et_pb_line_break_holder] -->  height: 13px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-webhook-info {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-webhook-icon {<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-webhook-icon svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-webhook-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-webhook-text strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-bvb.oea-bvb-wrapper .oea-webhook-text code {<!-- [et_pb_line_break_holder] -->  background: #e8ecf0 !important;<!-- [et_pb_line_break_holder] -->  padding: 1px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 3px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-bvb.oea-bvb-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-bvb\" class=\"oea-bvb-wrapper\"><!-- [et_pb_line_break_holder] -->  <span id=\"oea-build-vs-buy\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->    <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->    <span>Implementation<\/span><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] -->  <h2 class=\"oea-h2\">Build vs Buy: Hosted OAuth Email API in 5 Minutes<\/h2><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-intro-text\">Instead of building 3 separate OAuth flows, Unipile provides a hosted authentication link that handles Google OAuth, Microsoft Identity, and IMAP OAuth for you. Your app generates a link, redirects the user, and receives a webhook when the mailbox is linked. The OAuth email API is then immediately usable &#8211; no console setup, no CASA review, no token refresh logic to build.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">Step 1: Generate a hosted auth link<\/h3><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-step-desc\">One API call to create a hosted authentication session. Specify the provider type and a name for the account. Unipile returns a URL to redirect your user to the OAuth consent screen.<\/pee><!-- [et_pb_line_break_holder] -->  <div class=\"oea-code-block\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-code-bar\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-cdot oea-cdot-r\"><\/span><span class=\"oea-cdot oea-cdot-y\"><\/span><span class=\"oea-cdot oea-cdot-g\"><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"oea-code-filename\">connect-gmail.js<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pre\"><code><span class=\"c\">\/\/ Connect Gmail user via Unipile hosted OAuth email API<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">response<\/span> <span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"fn\">fetch<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"s\">'https:\/\/api6.unipile.com:13226\/api\/v1\/hosted\/accounts\/link'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">{<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">method:<\/span> <span class=\"s\">'POST'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">headers:<\/span> <span class=\"w\">{<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"s\">'X-API-KEY'<\/span><span class=\"w\">:<\/span> <span class=\"s\">'YOUR_UNIPILE_API_KEY'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"s\">'Content-Type'<\/span><span class=\"w\">:<\/span> <span class=\"s\">'application\/json'<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">},<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">body:<\/span> <span class=\"fn\">JSON.stringify<\/span><span class=\"w\">({<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"w\">type:<\/span> <span class=\"s\">'GOOGLE'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"w\">name:<\/span> <span class=\"s\">'user_alice_123'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"w\">success_redirect_url:<\/span> <span class=\"s\">'https:\/\/yourapp.com\/connected'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"w\">failure_redirect_url:<\/span> <span class=\"s\">'https:\/\/yourapp.com\/error'<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">})<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">{ url, object } =<\/span> <span class=\"k\">await<\/span> <span class=\"w\">response.<\/span><span class=\"fn\">json<\/span><span class=\"w\">();<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Redirect user to url - Unipile handles OAuth consent<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">window.location.href<\/span> <span class=\"k\">=<\/span> <span class=\"w\">url;<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-editor-ok\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <span>Redirects user to Gmail consent screen &#8211; no client_id or client_secret needed<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">Step 2: Connect an Outlook user<\/h3><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-step-desc\">Same endpoint, same pattern. Change <code style=\"background:#f4f5f7;padding:1px 5px;border-radius:3px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">type<\/code> to <code style=\"background:#f4f5f7;padding:1px 5px;border-radius:3px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">MICROSOFT<\/code>. No Azure Portal, no Publisher Verification to manage on your side.<\/pee><!-- [et_pb_line_break_holder] -->  <div class=\"oea-code-block\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-code-bar\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-cdot oea-cdot-r\"><\/span><span class=\"oea-cdot oea-cdot-y\"><\/span><span class=\"oea-cdot oea-cdot-g\"><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"oea-code-filename\">connect-outlook.py<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pre\"><code><span class=\"k\">import<\/span> <span class=\"w\">requests<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Connect Outlook user via Unipile OAuth email API<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">response<\/span> <span class=\"k\">=<\/span> <span class=\"w\">requests.<\/span><span class=\"fn\">post<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">\"https:\/\/api6.unipile.com:13226\/api\/v1\/hosted\/accounts\/link\"<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">headers={<\/span><span class=\"s\">\"X-API-KEY\"<\/span><span class=\"w\">:<\/span> <span class=\"s\">\"YOUR_UNIPILE_API_KEY\"<\/span><span class=\"w\">},<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">json={<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"s\">\"type\"<\/span><span class=\"w\">:<\/span> <span class=\"s\">\"MICROSOFT\"<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"s\">\"name\"<\/span><span class=\"w\">:<\/span> <span class=\"s\">\"user_bob_456\"<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"s\">\"success_redirect_url\"<\/span><span class=\"w\">:<\/span> <span class=\"s\">\"https:\/\/yourapp.com\/connected\"<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">auth_url<\/span> <span class=\"k\">=<\/span> <span class=\"w\">response.json()[<\/span><span class=\"s\">\"url\"<\/span><span class=\"w\">]<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Redirect to auth_url - Microsoft Identity flow handled by Unipile<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->    <div class=\"oea-editor-ok\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <span>Works for Outlook.com and Microsoft 365 &#8211; same call<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">Step 3: Receive the webhook on account.connected<\/h3><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-step-desc\">After OAuth consent, Unipile fires a webhook to your endpoint. The event payload includes the new <code style=\"background:#f4f5f7;padding:1px 5px;border-radius:3px;font-family:'Courier New',monospace;font-size:12px;color:#0f2736;\">account_id<\/code> &#8211; which you store and use for all subsequent <a href=\"https:\/\/www.unipile.com\/read-email-api\/\" style=\"color:#3BB98B;text-decoration:underline;\">read email API<\/a> and <a href=\"https:\/\/www.unipile.com\/send-email-api\/\" style=\"color:#3BB98B;text-decoration:underline;\">send email API<\/a> calls.<\/pee><!-- [et_pb_line_break_holder] -->  <div class=\"oea-webhook-info\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-webhook-icon\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"\/><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"\/><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"\/><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"\/><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-webhook-text\"><strong>Webhook event:<\/strong> When a user completes OAuth, Unipile sends a <code>account.connected<\/code> event to your webhook URL. The payload contains the <code>account_id<\/code> (store this), the <code>provider<\/code> (GOOGLE \/ MICROSOFT \/ IMAP), and the linked email address. This is the only state you need to persist &#8211; Unipile manages all OAuth tokens internally.<\/pee><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-cta1,<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1 *,<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1 *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1 *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->border-radius:20px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1 { background: #0f2736 !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  padding: 56px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-inner {<!-- [et_pb_line_break_holder] -->  max-width: 900px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  text-align: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-cta-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-cta-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-cta-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 32px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.25 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-cta-desc {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.80) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->  max-width: 700px !important;<!-- [et_pb_line_break_holder] -->  margin-left: auto !important;<!-- [et_pb_line_break_holder] -->  margin-right: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-cta-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-btn-yellow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-btn-yellow:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-btn-yellow svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-btn-outline {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.90) !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid rgba(255,255,255,0.30) !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.25s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-btn-outline:hover {<!-- [et_pb_line_break_holder] -->  border-color: rgba(255,255,255,0.70) !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-cta1.oea-cta1-wrapper .oea-btn-outline svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-cta1.oea-cta1-wrapper .oea-cta-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #unipile-oea-cta1.oea-cta1-wrapper .oea-btn-yellow,<!-- [et_pb_line_break_holder] -->  #unipile-oea-cta1.oea-cta1-wrapper .oea-btn-outline {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-cta1\" class=\"oea-cta1-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-inner\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-cta-eyebrow\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-cta-eyebrow-dot\"><\/span><!-- [et_pb_line_break_holder] -->      <span>Hosted OAuth Email API<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-cta-h2\">Skip the 8-week OAuth implementation. Connect mailboxes in minutes.<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-cta-desc\">Unipile&#8217;s hosted OAuth email API handles Google CASA, Microsoft Publisher Verification, XOAUTH2, and token refresh for all providers. Your users link their mailbox via a single hosted flow &#8211; you get a unified API to read, send, and sync.<\/pee><!-- [et_pb_line_break_holder] -->    <div class=\"oea-cta-actions\"><!-- [et_pb_line_break_holder] -->      <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"oea-btn-yellow\"><span>Start Free Trial<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->      <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\" class=\"oea-btn-outline\"><span>Compare email API providers<\/span><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-tokens,<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens *,<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens { background: transparent !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-bp-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-bp-list {<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-bp-list li {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-bp-list li .oea-check-icon {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  min-width: 20px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-bp-list li .oea-check-icon svg {<!-- [et_pb_line_break_holder] -->  width: 11px !important;<!-- [et_pb_line_break_holder] -->  height: 11px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-scopes-table-wrap {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper thead th {<!-- [et_pb_line_break_holder] -->  padding: 13px 16px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper tbody tr:hover {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.03) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper tbody td {<!-- [et_pb_line_break_holder] -->  padding: 12px 16px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.55 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper tbody td:first-child {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-risk-low {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 4px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-risk-med {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 4px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(245,158,11,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #b45309 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-tokens.oea-tokens-wrapper .oea-risk-high {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 4px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-tokens.oea-tokens-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-tokens\" class=\"oea-tokens-wrapper\"><!-- [et_pb_line_break_holder] -->  <span id=\"oea-tokens\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->    <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->    <span>Token Management<\/span><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] -->  <h2 class=\"oea-h2\">Managing OAuth Tokens: Refresh, Revoke, Rotate<\/h2><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-intro-text\">Token management is the most operationally demanding part of building an OAuth email API. Access tokens expire, refresh tokens get revoked by users, and your system must handle all of this gracefully &#8211; or risk your users losing access to their mailboxes silently.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">Best practices for token storage<\/h3><!-- [et_pb_line_break_holder] -->  <ul class=\"oea-bp-list\"><!-- [et_pb_line_break_holder] -->    <li><span class=\"oea-check-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><span>Encrypt refresh tokens at rest using AES-256 or a cloud KMS (AWS KMS, GCP Cloud KMS, Azure Key Vault). Never store them in plaintext in your database.<\/span><\/li><!-- [et_pb_line_break_holder] -->    <li><span class=\"oea-check-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><span>Never log access tokens or refresh tokens. Structured logging systems like Datadog or Splunk should have token fields masked or redacted.<\/span><\/li><!-- [et_pb_line_break_holder] -->    <li><span class=\"oea-check-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><span>Store tokens in a dedicated secrets store (Vault, AWS Secrets Manager) rather than in your main application database, to minimize blast radius if the DB is compromised.<\/span><\/li><!-- [et_pb_line_break_holder] -->    <li><span class=\"oea-check-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><span>Implement token rotation: when you get a new refresh token on a refresh call (some providers issue new refresh tokens on each use), invalidate the old one immediately.<\/span><\/li><!-- [et_pb_line_break_holder] -->  <\/ul><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">Handling refresh failures gracefully<\/h3><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-bp-text\">When a refresh token expires or is revoked, your refresh call returns a 400 or 401 error. Your OAuth email API must catch this and trigger a re-authentication flow for the user &#8211; not silently fail. The worst outcome is a user who thinks emails are being read, but the token has been revoked for weeks. Build an explicit account health check and alert users when re-auth is needed.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <span id=\"oea-scopes\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <h3 class=\"oea-h3\">OAuth Scopes: What to Ask For (and What Not To)<\/h3><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-bp-text\">Scope minimization is both a security best practice and a consent optimization strategy. Requesting more scopes than you need causes users to hesitate (or reject) at the consent screen, and triggers elevated scrutiny during Google CASA and Microsoft Publisher reviews.<\/pee><!-- [et_pb_line_break_holder] -->  <div class=\"oea-scopes-table-wrap\"><!-- [et_pb_line_break_holder] -->    <table><!-- [et_pb_line_break_holder] -->      <thead><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <th>Scope<\/th><!-- [et_pb_line_break_holder] -->          <th>Provider<\/th><!-- [et_pb_line_break_holder] -->          <th>Use case<\/th><!-- [et_pb_line_break_holder] -->          <th>Sensitivity<\/th><!-- [et_pb_line_break_holder] -->          <th>CASA review?<\/th><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->      <\/thead><!-- [et_pb_line_break_holder] -->      <tbody><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>gmail.readonly<\/td><!-- [et_pb_line_break_holder] -->          <td>Gmail<\/td><!-- [et_pb_line_break_holder] -->          <td>Read all emails and metadata<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-high\">High<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Yes &#8211; Tier 2<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>gmail.send<\/td><!-- [et_pb_line_break_holder] -->          <td>Gmail<\/td><!-- [et_pb_line_break_holder] -->          <td>Send email as the user<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-high\">High<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Yes &#8211; Tier 2<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>gmail.modify<\/td><!-- [et_pb_line_break_holder] -->          <td>Gmail<\/td><!-- [et_pb_line_break_holder] -->          <td>Read, send, delete, label<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-high\">High<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Yes &#8211; Tier 2<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>gmail.labels<\/td><!-- [et_pb_line_break_holder] -->          <td>Gmail<\/td><!-- [et_pb_line_break_holder] -->          <td>Read and manage labels only<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-low\">Low<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>No<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>Mail.Read<\/td><!-- [et_pb_line_break_holder] -->          <td>Outlook<\/td><!-- [et_pb_line_break_holder] -->          <td>Read all mail<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-med\">Medium<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Publisher Verification<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>Mail.Send<\/td><!-- [et_pb_line_break_holder] -->          <td>Outlook<\/td><!-- [et_pb_line_break_holder] -->          <td>Send mail as user<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-med\">Medium<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Publisher Verification<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>Mail.ReadWrite<\/td><!-- [et_pb_line_break_holder] -->          <td>Outlook<\/td><!-- [et_pb_line_break_holder] -->          <td>Read, send, delete, folder mgmt<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-high\">High<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Publisher Verification<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>offline_access<\/td><!-- [et_pb_line_break_holder] -->          <td>Outlook<\/td><!-- [et_pb_line_break_holder] -->          <td>Obtain refresh tokens<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-low\">Low<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>No<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->        <tr><!-- [et_pb_line_break_holder] -->          <td>mail-r<\/td><!-- [et_pb_line_break_holder] -->          <td>IMAP (Yahoo)<\/td><!-- [et_pb_line_break_holder] -->          <td>Read email via IMAP\/XOAUTH2<\/td><!-- [et_pb_line_break_holder] -->          <td><span class=\"oea-risk-med\">Medium<\/span><\/td><!-- [et_pb_line_break_holder] -->          <td>Yahoo dev review<\/td><!-- [et_pb_line_break_holder] -->        <\/tr><!-- [et_pb_line_break_holder] -->      <\/tbody><!-- [et_pb_line_break_holder] -->    <\/table><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Build CTA inline 3&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;20px||20px||true|false&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243;][et_pb_code _builder_version=&#8221;4.27.0&#8243;]<div id=\"unipile-oea-buildcta-3\" class=\"oea-buildcta-wrapper\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#unipile-oea-buildcta-3.oea-buildcta-wrapper,\n#unipile-oea-buildcta-3.oea-buildcta-wrapper * {\n  box-sizing: border-box !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper {\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-strip {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 24px !important;\n  background: #f4f5f7 !important;\n  border: 1px solid #e5e7eb !important;\n  border-radius: 16px !important;\n  padding: 22px 28px !important;\n  max-width: 1100px !important;\n  margin: 0 auto !important;\n  flex-wrap: wrap !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-text {\n  flex: 1 1 360px !important;\n  min-width: 240px !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-title {\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 18px !important;\n  font-weight: 700 !important;\n  color: #0f2736 !important;\n  margin: 0 0 4px 0 !important;\n  line-height: 1.3 !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-sub {\n  font-size: 14px !important;\n  color: #4a5568 !important;\n  margin: 0 !important;\n  line-height: 1.55 !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-btn {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  background: #DDDF4C !important;\n  color: #0f2736 !important;\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  padding: 12px 22px !important;\n  border-radius: 10px !important;\n  text-decoration: none !important;\n  transition: transform 0.2s ease, box-shadow 0.2s ease !important;\n  white-space: nowrap !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-btn:hover {\n  transform: translateY(-5px) !important;\n  box-shadow: 0 10px 24px rgba(221, 223, 76, 0.4) !important;\n}\n#unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-btn svg {\n  width: 16px !important;\n  height: 16px !important;\n}\n@media (max-width: 600px) {\n  #unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-strip { padding: 18px 20px !important; flex-direction: column !important; align-items: stretch !important; }\n  #unipile-oea-buildcta-3.oea-buildcta-wrapper .oea-bcta-btn { width: 100% !important; justify-content: center !important; }\n}\n<\/style>\n<div class=\"oea-bcta-strip\">\n<div class=\"oea-bcta-text\">\n<pee class=\"oea-bcta-title\">Tokens refreshed and rotated for you<\/pee>\n<pee class=\"oea-bcta-sub\">Stop writing token-lifecycle code. Connect a mailbox once, Unipile keeps the access alive across all providers.<\/pee>\n<\/div>\n<a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"oea-bcta-btn\">\n<span>Start building<\/span>\n<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n<\/a>\n<\/div>\n<\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-compl,<!-- [et_pb_line_break_holder] -->#unipile-oea-compl *,<!-- [et_pb_line_break_holder] -->#unipile-oea-compl *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-compl *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl { background: #f4f5f7 !important; display: block !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-section-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  max-width: 760px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-intro-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(2, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-header {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-icon {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-icon svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-compl-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-pitfalls-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-pitfall-item {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 20px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-pitfall-num {<!-- [et_pb_line_break_holder] -->  width: 32px !important;<!-- [et_pb_line_break_holder] -->  height: 32px !important;<!-- [et_pb_line_break_holder] -->  min-width: 32px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-pitfall-body .oea-pitfall-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-pitfall-body .oea-pitfall-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-compl.oea-compl-wrapper .oea-pitfall-body .oea-pitfall-text code {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 1px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 3px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 11.5px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-compl.oea-compl-wrapper .oea-compl-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-oea-compl.oea-compl-wrapper .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-compl\" class=\"oea-compl-wrapper\"><!-- [et_pb_line_break_holder] -->  <div class=\"oea-inner\"><!-- [et_pb_line_break_holder] -->    <span id=\"oea-compliance\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"oea-section-badge\"><!-- [et_pb_line_break_holder] -->      <span class=\"oea-badge-dot\"><\/span><!-- [et_pb_line_break_holder] -->      <span>Compliance<\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-h2\">Compliance: SOC2, GDPR, CASA<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-intro-text\">An OAuth email API that handles user mailboxes sits at the intersection of security and privacy compliance. Here are the four frameworks most enterprise buyers will ask about &#8211; and what OAuth&#8217;s token model means for each.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-compl-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compl-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compl-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-title\">SOC2 Type II<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-compl-text\">SOC2 auditors look at token handling as part of the Availability and Confidentiality criteria. OAuth tokens must be encrypted at rest (AES-256 or KMS), access-logged, and subject to a formal rotation policy. Storing refresh tokens in plaintext is an automatic finding. Using a hosted OAuth email API like Unipile (which is SOC2 certified) shifts this responsibility.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compl-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compl-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M9 9h6\"\/><path d=\"M9 12h6\"\/><path d=\"M9 15h4\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-title\">GDPR<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-compl-text\">Under GDPR, your app is a data processor when it accesses user email content. You need a DPA (Data Processing Agreement) with your OAuth email API infrastructure provider. OAuth&#8217;s revocability directly satisfies Article 17 (right to erasure) &#8211; when a user revokes, your access ends immediately. Document your lawful basis for accessing email data (typically consent via OAuth flow).<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compl-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compl-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-title\">Google CASA Tier 2<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-compl-text\">Once your Gmail OAuth email API app exceeds 100 users with sensitive scopes, Google blocks further user additions until you pass CASA Tier 2. This requires a pentest by a CASA-authorized lab, a security questionnaire, and a formal assessment report submitted to Google. Timeline: 8-16 weeks. Cost: $10,000-$25,000. Verified apps get the &#8220;Verified by Google&#8221; badge on their consent screen.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <span id=\"oea-pricing\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-h2\">OAuth Email API: Pricing and Cost Models<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-intro-text\">The &#8220;free&#8221; provider APIs from Google and Microsoft hide significant real costs. Here is a realistic cost model for implementing an OAuth email API at scale &#8211; covering the direct provider route vs unified APIs.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-compl-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compl-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compl-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-title\">Direct provider OAuth: hidden costs<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-compl-text\">Google and Microsoft APIs are technically free at the API call level. But: Google CASA Tier 2 costs $10k-$25k and 3+ months of engineering time. Publisher Verification for Microsoft requires a Partner Network account and legal domain verification. Engineering time to build 3 flows, token management, and error handling: 6-10 weeks. Annual maintenance: 2-4 weeks\/year per provider.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-compl-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-compl-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"oea-compl-title\">Unified hosted OAuth API: total cost<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <pee class=\"oea-compl-text\">Unipile&#8217;s OAuth email API includes all provider compliance (CASA, Publisher Verification), token management, and a unified email API under a single subscription. For teams shipping email connectivity as a feature (not a product), the ROI calculus is straightforward: weeks of engineering time saved vs a monthly API cost. See the <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\" style=\"color:#3BB98B;text-decoration:underline;\">compare email API providers<\/a> guide for a full cost breakdown.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <span id=\"oea-pitfalls\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <h2 class=\"oea-h2\" style=\"margin-top:20px !important;\">Common Pitfalls When Implementing OAuth Email<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"oea-intro-text\">These are the most common mistakes developers make when building an OAuth email API for the first time &#8211; and what to do instead.<\/pee><!-- [et_pb_line_break_holder] -->    <div class=\"oea-pitfalls-list\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pitfall-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-num\"><span>01<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-pitfall-title\">Google refresh token expiry after 6 months of inactivity<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"oea-pitfall-text\">Google invalidates refresh tokens if the user has not used your app for 6 months. Your token refresh call returns <code>invalid_grant<\/code>. Fix: implement a periodic &#8220;token health check&#8221; that makes a lightweight Gmail API call for each linked account at least once every 30 days to prevent inactivity-based expiry.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pitfall-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-num\"><span>02<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-pitfall-title\">Scope creep &#8211; over-asking triggers consent rejection<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"oea-pitfall-text\">Requesting <code>gmail.modify<\/code> when you only need <code>gmail.readonly<\/code> inflates your consent screen and causes users to abandon the OAuth flow. It also escalates your CASA tier requirement. Always request the minimum scope needed. You can request additional scopes incrementally later.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pitfall-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-num\"><span>03<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-pitfall-title\">Missing CASA verification &#8211; 100 user cap blocks growth<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"oea-pitfall-text\">Gmail&#8217;s sensitive scope cap at 100 users is the most common growth blocker for OAuth email API implementations. Plan for the CASA review before you hit 50 users &#8211; the review takes 8-16 weeks, and your user growth will be blocked while it is pending.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pitfall-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-num\"><span>04<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-pitfall-title\">Token leak via application logs<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"oea-pitfall-text\">Verbose request logging that captures Authorization headers will log your access tokens in plaintext. Implement log scrubbing middleware that redacts <code>Bearer [TOKEN]<\/code> patterns before logs are written to any persistent storage.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-pitfall-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-num\"><span>05<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-pitfall-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"oea-pitfall-title\">No IMAP fallback strategy<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"oea-pitfall-text\">Some corporate email servers run behind custom IMAP configurations that do not support OAuth. Your OAuth email API must have a graceful fallback path for IMAP-only providers. Build this into your account connection flow from day one, or you will exclude a significant segment of B2B users. See our <a href=\"https:\/\/www.unipile.com\/the-developers-guide-to-imap-api-solution\/\" style=\"color:#3BB98B;text-decoration:underline;\">IMAP integration<\/a> guide for the full fallback pattern.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Build CTA inline 4&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;20px||20px||true|false&#8221;][et_pb_row _builder_version=&#8221;4.27.0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.0&#8243;][et_pb_code _builder_version=&#8221;4.27.0&#8243;]<div id=\"unipile-oea-buildcta-4\" class=\"oea-buildcta-wrapper\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#unipile-oea-buildcta-4.oea-buildcta-wrapper,\n#unipile-oea-buildcta-4.oea-buildcta-wrapper * {\n  box-sizing: border-box !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper {\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-strip {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 24px !important;\n  background: #f4f5f7 !important;\n  border: 1px solid #e5e7eb !important;\n  border-radius: 16px !important;\n  padding: 22px 28px !important;\n  max-width: 1100px !important;\n  margin: 0 auto !important;\n  flex-wrap: wrap !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-text {\n  flex: 1 1 360px !important;\n  min-width: 240px !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-title {\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 18px !important;\n  font-weight: 700 !important;\n  color: #0f2736 !important;\n  margin: 0 0 4px 0 !important;\n  line-height: 1.3 !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-sub {\n  font-size: 14px !important;\n  color: #4a5568 !important;\n  margin: 0 !important;\n  line-height: 1.55 !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-btn {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  background: #DDDF4C !important;\n  color: #0f2736 !important;\n  font-family: 'Poppins', sans-serif !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  padding: 12px 22px !important;\n  border-radius: 10px !important;\n  text-decoration: none !important;\n  transition: transform 0.2s ease, box-shadow 0.2s ease !important;\n  white-space: nowrap !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-btn:hover {\n  transform: translateY(-5px) !important;\n  box-shadow: 0 10px 24px rgba(221, 223, 76, 0.4) !important;\n}\n#unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-btn svg {\n  width: 16px !important;\n  height: 16px !important;\n}\n@media (max-width: 600px) {\n  #unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-strip { padding: 18px 20px !important; flex-direction: column !important; align-items: stretch !important; }\n  #unipile-oea-buildcta-4.oea-buildcta-wrapper .oea-bcta-btn { width: 100% !important; justify-content: center !important; }\n}\n<\/style>\n<div class=\"oea-bcta-strip\">\n<div class=\"oea-bcta-text\">\n<pee class=\"oea-bcta-title\">Build instead of stitching providers together<\/pee>\n<pee class=\"oea-bcta-sub\">Get a working OAuth email integration today. Free tier, no credit card, full Gmail and Microsoft scopes available.<\/pee>\n<\/div>\n<a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"oea-bcta-btn\">\n<span>Build for free<\/span>\n<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n<\/a>\n<\/div>\n<\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script type=\"application\/ld+json\"><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  \"@context\": \"https:\/\/schema.org\",<!-- [et_pb_line_break_holder] -->  \"@type\": \"FAQPage\",<!-- [et_pb_line_break_holder] -->  \"mainEntity\": [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What is an OAuth email API?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"An OAuth email API is a combination of an OAuth 2.0 authorization flow (which lets a user grant your app delegated access to their mailbox without sharing their password) and an email API (which reads, sends, or syncs that mailbox). The OAuth layer produces a scope-limited, revocable access token. The email API uses that token to interact with Gmail, Outlook, or IMAP providers on the user's behalf.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Why use OAuth instead of IMAP password?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"IMAP password access requires storing the user's plaintext or encrypted password in your system - a critical security and compliance liability. OAuth tokens are short-lived (1 hour), scope-limited, and revocable by the user at any time. Google disabled basic auth for Gmail in 2022, and Microsoft completed its basic auth shutdown for Exchange Online in 2026. OAuth is now the only compliant method for accessing user mailboxes via API.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Which OAuth flow should I use for Gmail and Outlook? What about IMAP?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"For Gmail: Google OAuth 2.0 authorization code flow, token endpoint https:\/\/oauth2.googleapis.com\/token, scopes in the gmail.* namespace. For Outlook (covering Outlook.com, Microsoft 365, and Exchange Online): Microsoft Identity Platform authorization code flow, token endpoint https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token, scopes in the https:\/\/graph.microsoft.com\/ namespace. For IMAP: IMAP is not an OAuth provider. It uses username\/password or app password authentication. XOAUTH2 existed as a SASL extension for a small number of IMAP providers but has largely been deprecated.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How do I refresh expired access tokens?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"When an access token expires (typically after 1 hour), use the refresh token to request a new one by calling the token endpoint with grant_type=refresh_token and your client credentials. For Google, call https:\/\/oauth2.googleapis.com\/token. For Microsoft, call https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token. If the refresh token itself has expired or been revoked (error: invalid_grant), you must prompt the user to re-authenticate via the full OAuth flow.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What scopes do I need to read or send emails?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"For Gmail: gmail.readonly to read, gmail.send to send, gmail.modify for full read\/write\/delete. For Outlook: Mail.Read to read, Mail.Send to send, Mail.ReadWrite for full access - plus offline_access to get refresh tokens. Always request the minimum scope your use case requires.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Is OAuth required for Microsoft 365 in 2026?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Yes. Microsoft completed the retirement of basic authentication for Exchange Online (which powers Microsoft 365 email) in 2026. This affects all legacy protocols including IMAP, POP3, and SMTP AUTH when used with username\/password. OAuth via the Microsoft Identity Platform is the only supported authentication method for Exchange Online going forward.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How do I avoid Google's CASA security review?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"CASA (Cloud Application Security Assessment) Tier 2 is required when your app requests sensitive Gmail scopes (gmail.readonly, gmail.send, gmail.modify) and exceeds 100 users. Options: use only non-sensitive scopes like gmail.labels (not subject to CASA), start the CASA process early before you hit 50 users (it takes 8-16 weeks), or use a hosted OAuth email API like Unipile whose OAuth infrastructure has already passed CASA review.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Can I connect Yahoo or AOL via OAuth?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Yahoo Mail historically supported XOAUTH2 for IMAP authentication, but this has been largely deprecated since 2022. For most practical purposes, IMAP connections to Yahoo and AOL use app passwords generated via account security settings, not OAuth tokens. Unipile handles Yahoo and AOL mail via IMAP with app password authentication.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How does Unipile handle multi-provider OAuth?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Unipile provides a hosted OAuth email API that abstracts all provider complexity behind a single endpoint. You call \/api\/v1\/hosted\/accounts\/link with a type parameter (GOOGLE, MICROSOFT, or IMAP), and Unipile generates a hosted authentication URL. After consent, Unipile fires a webhook to your endpoint with the account_id. All token management, refresh, and rotation is handled internally.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What happens when a user revokes OAuth access?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"When a user revokes your app's OAuth access, the refresh token is immediately invalidated. Your next token refresh call returns invalid_grant. Your OAuth email API must catch this, mark the linked account as disconnected, and notify the user with a re-authentication link. With Unipile, a revocation webhook fires automatically so your system is notified in real time.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  ]<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#unipile-oea-faq,<!-- [et_pb_line_break_holder] -->#unipile-oea-faq *,<!-- [et_pb_line_break_holder] -->#unipile-oea-faq *::before,<!-- [et_pb_line_break_holder] -->#unipile-oea-faq *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-faq {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 860px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 13px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.6px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 6px !important;<!-- [et_pb_line_break_holder] -->  height: 6px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 10px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-subtitle {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  max-width: 640px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1.5px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: border-color 0.22s ease, box-shadow 0.22s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item:hover {<!-- [et_pb_line_break_holder] -->  border-color: #c8e8de !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item.oea-open {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 4px 20px rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-question {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 20px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  user-select: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-num {<!-- [et_pb_line_break_holder] -->  width: 34px !important;<!-- [et_pb_line_break_holder] -->  height: 34px !important;<!-- [et_pb_line_break_holder] -->  min-width: 34px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 9px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.2s, color 0.2s !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item.oea-open .oea-num {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-q-text {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-icon {<!-- [et_pb_line_break_holder] -->  width: 26px !important;<!-- [et_pb_line_break_holder] -->  height: 26px !important;<!-- [et_pb_line_break_holder] -->  min-width: 26px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease, background 0.2s !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item.oea-open .oea-icon {<!-- [et_pb_line_break_holder] -->  transform: rotate(45deg) !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-icon svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  transition: stroke 0.2s !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item.oea-open .oea-icon svg {<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-answer {<!-- [et_pb_line_break_holder] -->  max-height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: max-height 0.35s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-item.oea-open .oea-answer {<!-- [et_pb_line_break_holder] -->  max-height: 600px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-answer-inner {<!-- [et_pb_line_break_holder] -->  padding: 0 20px 22px 68px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-answer-inner code {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-answer-inner a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-cta {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 22px 26px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-cta-text {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.75) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-cta-text strong {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 20px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s, box-shadow 0.2s !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-2px) !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 6px 18px rgba(221,223,76,0.30) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-oea-faq .oea-cta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 13px !important;<!-- [et_pb_line_break_holder] -->  height: 13px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-faq .oea-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-faq .oea-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #unipile-oea-faq .oea-answer-inner { padding: 0 14px 18px 14px !important; }<!-- [et_pb_line_break_holder] -->  #unipile-oea-faq .oea-cta { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #unipile-oea-faq .oea-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"unipile-oea-faq\"><!-- [et_pb_line_break_holder] -->  <span id=\"oea-faq\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"oea-badge\"><span class=\"oea-badge-dot\"><\/span> FAQ<\/span><!-- [et_pb_line_break_holder] -->  <h2 class=\"oea-h2\">Frequently Asked Questions<\/h2><!-- [et_pb_line_break_holder] -->  <pee class=\"oea-subtitle\">The most common questions developers ask when building an OAuth email API integration &#8211; answered precisely.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <div class=\"oea-list\" id=\"oea-faq-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item oea-open\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">01<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">What is an OAuth email API?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">An OAuth email API is a combination of an OAuth 2.0 authorization flow &#8211; which lets a user grant your app delegated access to their mailbox without sharing their password &#8211; and an email API that reads, sends, or syncs that mailbox. The OAuth layer produces a scope-limited, revocable access token. The email API uses that token to interact with Gmail, Outlook, or IMAP providers on the user&#8217;s behalf.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">02<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">Why use OAuth instead of IMAP password?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">IMAP password access requires storing the user&#8217;s plaintext or encrypted password &#8211; a critical security and compliance liability. OAuth tokens are short-lived (1 hour), scope-limited, and revocable by the user at any time. Google disabled basic auth for Gmail in 2022, and Microsoft completed its basic auth shutdown for Exchange Online in 2026. OAuth is now the only compliant method for accessing user mailboxes via API.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">03<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">Which OAuth flow should I use for Gmail and Outlook? What about IMAP?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">For Gmail: Google OAuth 2.0 authorization code flow, token endpoint <code>https:\/\/oauth2.googleapis.com\/token<\/code>, scopes in the <code>gmail.*<\/code> namespace. For Outlook (covering Outlook.com, Microsoft 365, and Exchange Online): Microsoft Identity Platform, token endpoint <code>https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token<\/code>, scopes under <code>https:\/\/graph.microsoft.com\/<\/code>. For IMAP: IMAP is not an OAuth provider. It uses username\/password or app password credentials. XOAUTH2 existed as a SASL extension for a small number of providers but has largely been deprecated.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">04<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">How do I refresh expired access tokens?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">When an access token expires (typically after 1 hour), use the refresh token to request a new one by calling the token endpoint with <code>grant_type=refresh_token<\/code>. For Google: POST to <code>https:\/\/oauth2.googleapis.com\/token<\/code>. For Microsoft: POST to <code>https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token<\/code>. If you receive <code>invalid_grant<\/code>, the refresh token has expired or been revoked &#8211; prompt the user to re-authenticate.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">05<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">What scopes do I need to read or send emails?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">For Gmail: <code>gmail.readonly<\/code> to read, <code>gmail.send<\/code> to send, <code>gmail.modify<\/code> for full read\/write\/delete. For Outlook: <code>Mail.Read<\/code> to read, <code>Mail.Send<\/code> to send, <code>Mail.ReadWrite<\/code> for full access &#8211; plus <code>offline_access<\/code> to get refresh tokens. Always request the minimum scope your use case requires. See the <a href=\"https:\/\/www.unipile.com\/communication-api\/email-api\/\">email API page<\/a> for use-case-specific scope recommendations.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">06<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">Is OAuth required for Microsoft 365 in 2026?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">Yes. Microsoft completed the retirement of basic authentication for Exchange Online in 2026. This affects all legacy protocols including IMAP, POP3, and SMTP AUTH when used with username\/password. Any application connecting to Microsoft 365 mailboxes via basic auth will receive 401 Unauthorized errors. OAuth via the Microsoft Identity Platform is the only supported method going forward.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">07<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">How do I avoid Google&#8217;s CASA security review?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">CASA Tier 2 is required for sensitive Gmail scopes above 100 users &#8211; you cannot bypass it at scale. Options: use only non-sensitive scopes like <code>gmail.labels<\/code> (not subject to CASA), start the CASA process before you hit 50 users (it takes 8-16 weeks), or use a hosted OAuth email API like Unipile whose infrastructure has already passed CASA review &#8211; eliminating this requirement for your application entirely.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">08<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">Can I connect Yahoo or AOL via OAuth?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">Yahoo Mail historically supported XOAUTH2 for IMAP authentication, but this has been largely deprecated since 2022. In practice, IMAP connections to Yahoo and AOL now use app passwords generated via account security settings &#8211; not OAuth tokens. Unipile handles Yahoo and AOL via IMAP with app password credentials.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">09<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">How does Unipile handle multi-provider OAuth?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">Unipile provides a hosted OAuth email API via a single endpoint: <code>\/api\/v1\/hosted\/accounts\/link<\/code>. You pass a <code>type<\/code> (GOOGLE, MICROSOFT, or IMAP) and Unipile generates a hosted auth URL. The user completes OAuth consent on Unipile&#8217;s infrastructure &#8211; which has passed Google CASA and Microsoft Publisher Verification. After consent, Unipile sends a webhook with the <code>account_id<\/code>. All token management and refresh is handled internally.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"oea-item\"><!-- [et_pb_line_break_holder] -->      <div class=\"oea-question\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-num\">10<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-q-text\">What happens when a user revokes OAuth access?<\/div><!-- [et_pb_line_break_holder] -->        <div class=\"oea-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"#94a3b8\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"oea-answer\"><!-- [et_pb_line_break_holder] -->        <div class=\"oea-answer-inner\">When a user revokes access via their Google, Microsoft, or Yahoo account settings, the refresh token is immediately invalidated. Your next token refresh call returns <code>invalid_grant<\/code>. Your OAuth email API must catch this, mark the linked account as disconnected, and notify the user with a re-authentication link. With Unipile, a revocation webhook fires automatically so your system is notified in real time &#8211; no polling required.<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <div class=\"oea-cta\"><!-- [et_pb_line_break_holder] -->    <div class=\"oea-cta-text\"><strong>Still have questions?<\/strong> Our team can walk you through OAuth implementation for your specific use case.<\/div><!-- [et_pb_line_break_holder] -->    <button class=\"oea-cta-btn\" onclick=\"if(window.$crisp){$crisp.push(['do','chat:open'])}\"><!-- [et_pb_line_break_holder] -->      Talk to an expert<!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function oeaFaqInit(){<!-- [et_pb_line_break_holder] -->    var list = document.getElementById('oea-faq-list');<!-- [et_pb_line_break_holder] -->    if(!list) return;<!-- [et_pb_line_break_holder] -->    var items = list.querySelectorAll('.oea-item');<!-- [et_pb_line_break_holder] -->    items.forEach(function(item){<!-- [et_pb_line_break_holder] -->      var q = item.querySelector('.oea-question');<!-- [et_pb_line_break_holder] -->      if(!q) return;<!-- [et_pb_line_break_holder] -->      q.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->        var isOpen = item.classList.contains('oea-open');<!-- [et_pb_line_break_holder] -->        items.forEach(function(i){ i.classList.remove('oea-open'); });<!-- [et_pb_line_break_holder] -->        if(!isOpen){ item.classList.add('oea-open'); }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if(document.readyState === 'loading'){<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', oeaFaqInit);<!-- [et_pb_line_break_holder] -->  } else { oeaFaqInit(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Implementation Build vs Buy: Hosted OAuth Email API in 5 Minutes Instead of building 3 separate OAuth flows, Unipile provides a hosted authentication link that handles Google OAuth, Microsoft Identity, and IMAP OAuth for you. Your app generates a link, redirects the user, and receives a webhook when the mailbox is linked. The OAuth email [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":278753,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[69,73],"tags":[],"post_folder":[],"class_list":["post-278735","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-guidelines","category-email-api-integration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OAuth Email API: Authenticate User Mailboxes the Right Way (2026) - Unipile<\/title>\n<meta name=\"description\" content=\"Use OAuth to connect user mailboxes via API. Compare Gmail OAuth, Microsoft Identity, IMAP OAuth. Code samples + scopes guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.unipile.com\/nl\/oauth-e-mail-api\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OAuth Email API: Authenticate User Mailboxes the Right Way (2026) - Unipile\" \/>\n<meta property=\"og:description\" content=\"Use OAuth to connect user mailboxes via API. Compare Gmail OAuth, Microsoft Identity, IMAP OAuth. Code samples + scopes guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unipile.com\/nl\/oauth-e-mail-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Unipile\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unipilefr\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-06T09:24:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-06T09:27:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/em-15-oauth-email-api.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Damien Girardeau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@UnipileAPI\" \/>\n<meta name=\"twitter:site\" content=\"@UnipileAPI\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Damien Girardeau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/\"},\"author\":{\"name\":\"Damien Girardeau\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\"},\"headline\":\"OAuth Email API: Authenticate User Mailboxes the Right Way (2026)\",\"datePublished\":\"2026-05-06T09:24:15+00:00\",\"dateModified\":\"2026-05-06T09:27:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/\"},\"wordCount\":5621,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/em-15-oauth-email-api.png\",\"articleSection\":[\"API Guidelines\",\"Email API Integration\"],\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/\",\"name\":\"OAuth Email API: Authenticate User Mailboxes the Right Way (2026) - Unipile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/em-15-oauth-email-api.png\",\"datePublished\":\"2026-05-06T09:24:15+00:00\",\"dateModified\":\"2026-05-06T09:27:29+00:00\",\"description\":\"Use OAuth to connect user mailboxes via API. Compare Gmail OAuth, Microsoft Identity, IMAP OAuth. Code samples + scopes guide.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/em-15-oauth-email-api.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/em-15-oauth-email-api.png\",\"width\":2400,\"height\":1600,\"caption\":\"OAuth Email API: connect Gmail and Outlook user mailboxes with one hosted auth flow via Unipile (no IMAP, no passwords stored)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/oauth-email-api\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.unipile.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OAuth Email API: Authenticate User Mailboxes the Right Way (2026)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"name\":\"Unipile\",\"description\":\"Integrate Messaging &amp; Email, Connect with Ease via API\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.unipile.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\",\"name\":\"Unipile\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/logo-unipile.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/logo-unipile.png\",\"width\":200,\"height\":49,\"caption\":\"Unipile\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/unipilefr\",\"https:\\\/\\\/x.com\\\/UnipileAPI\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/unipile\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\",\"name\":\"Damien Girardeau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"caption\":\"Damien Girardeau\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OAuth E-mail API: Authenticeer E-mailaccounts van Gebruikers op de Juiste Manier (2026) - Unipile","description":"Gebruik OAuth om gebruikersmailboxen te verbinden via API. Vergelijk Gmail OAuth, Microsoft Identity, IMAP OAuth. Codevoorbeelden + scopegids.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.unipile.com\/nl\/oauth-e-mail-api\/","og_locale":"nl_NL","og_type":"article","og_title":"OAuth Email API: Authenticate User Mailboxes the Right Way (2026) - Unipile","og_description":"Use OAuth to connect user mailboxes via API. Compare Gmail OAuth, Microsoft Identity, IMAP OAuth. Code samples + scopes guide.","og_url":"https:\/\/www.unipile.com\/nl\/oauth-e-mail-api\/","og_site_name":"Unipile","article_publisher":"https:\/\/www.facebook.com\/unipilefr","article_published_time":"2026-05-06T09:24:15+00:00","article_modified_time":"2026-05-06T09:27:29+00:00","og_image":[{"width":2400,"height":1600,"url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/em-15-oauth-email-api.png","type":"image\/png"}],"author":"Damien Girardeau","twitter_card":"summary_large_image","twitter_creator":"@UnipileAPI","twitter_site":"@UnipileAPI","twitter_misc":{"Geschreven door":"Damien Girardeau","Geschatte leestijd":"18 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unipile.com\/oauth-email-api\/#article","isPartOf":{"@id":"https:\/\/www.unipile.com\/oauth-email-api\/"},"author":{"name":"Damien Girardeau","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e"},"headline":"OAuth Email API: Authenticate User Mailboxes the Right Way (2026)","datePublished":"2026-05-06T09:24:15+00:00","dateModified":"2026-05-06T09:27:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unipile.com\/oauth-email-api\/"},"wordCount":5621,"publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"image":{"@id":"https:\/\/www.unipile.com\/oauth-email-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/em-15-oauth-email-api.png","articleSection":["API Guidelines","Email API Integration"],"inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/www.unipile.com\/oauth-email-api\/","url":"https:\/\/www.unipile.com\/oauth-email-api\/","name":"OAuth E-mail API: Authenticeer E-mailaccounts van Gebruikers op de Juiste Manier (2026) - Unipile","isPartOf":{"@id":"https:\/\/www.unipile.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.unipile.com\/oauth-email-api\/#primaryimage"},"image":{"@id":"https:\/\/www.unipile.com\/oauth-email-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/em-15-oauth-email-api.png","datePublished":"2026-05-06T09:24:15+00:00","dateModified":"2026-05-06T09:27:29+00:00","description":"Gebruik OAuth om gebruikersmailboxen te verbinden via API. Vergelijk Gmail OAuth, Microsoft Identity, IMAP OAuth. Codevoorbeelden + scopegids.","breadcrumb":{"@id":"https:\/\/www.unipile.com\/oauth-email-api\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unipile.com\/oauth-email-api\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/www.unipile.com\/oauth-email-api\/#primaryimage","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/em-15-oauth-email-api.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/em-15-oauth-email-api.png","width":2400,"height":1600,"caption":"OAuth Email API: connect Gmail and Outlook user mailboxes with one hosted auth flow via Unipile (no IMAP, no passwords stored)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.unipile.com\/oauth-email-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.unipile.com\/"},{"@type":"ListItem","position":2,"name":"OAuth Email API: Authenticate User Mailboxes the Right Way (2026)"}]},{"@type":"WebSite","@id":"https:\/\/www.unipile.com\/#website","url":"https:\/\/www.unipile.com\/","name":"Eenpaal","description":"Integreer berichten en e-mail, maak eenvoudig verbinding via API","publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.unipile.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/www.unipile.com\/#organization","name":"Eenpaal","url":"https:\/\/www.unipile.com\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/www.unipile.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2021\/05\/logo-unipile.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2021\/05\/logo-unipile.png","width":200,"height":49,"caption":"Unipile"},"image":{"@id":"https:\/\/www.unipile.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/unipilefr","https:\/\/x.com\/UnipileAPI","https:\/\/www.linkedin.com\/company\/unipile\/"]},{"@type":"Person","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e","name":"Damien Girardeau","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","caption":"Damien Girardeau"}}]}},"_links":{"self":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/278735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/comments?post=278735"}],"version-history":[{"count":9,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/278735\/revisions"}],"predecessor-version":[{"id":278759,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/278735\/revisions\/278759"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/media\/278753"}],"wp:attachment":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/media?parent=278735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/categories?post=278735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/tags?post=278735"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/post_folder?post=278735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}