{"id":258436,"date":"2024-04-17T12:06:50","date_gmt":"2024-04-17T10:06:50","guid":{"rendered":"https:\/\/www.unipile.com\/?p=258436"},"modified":"2026-06-03T11:33:02","modified_gmt":"2026-06-03T09:33:02","slug":"google-oauth-2-0-gebruikersauthenticatie-integreren-in-je-app","status":"publish","type":"post","link":"https:\/\/www.unipile.com\/nl\/integrating-google-oauth-2-0-user-authentication-into-your-app\/","title":{"rendered":"Google OAuth-verificatie en Gmail API-gegevens (2026)"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;40px||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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   UNIPILE TOC  -  Gmail OAuth article  -  Divi-safe<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->#unipile-toc,<!-- [et_pb_line_break_holder] -->#unipile-toc *,<!-- [et_pb_line_break_holder] -->#unipile-toc *::before,<!-- [et_pb_line_break_holder] -->#unipile-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: 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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [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] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  padding: 32px !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 2px 12px rgba(15, 39, 54, 0.04) !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-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] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->  padding-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-header-left {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-icon-box {<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !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-toc .utc-icon-box 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.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-toc .utc-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] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-toggle {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 10px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-toggle 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] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc:not(.utc-expanded) .utc-toggle svg {<!-- [et_pb_line_break_holder] -->  transform: rotate(-90deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-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] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->  padding: 0 24px !important;<!-- [et_pb_line_break_holder] -->  border-left: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col:first-child {<!-- [et_pb_line_break_holder] -->  padding-left: 0 !important;<!-- [et_pb_line_break_holder] -->  border-left: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col:last-child {<!-- [et_pb_line_break_holder] -->  padding-right: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !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: 0.8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link-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] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-num {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !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] -->  font-size: 10px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-num.utc-num-faq {<!-- [et_pb_line_break_holder] -->  font-size: 8px !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.45 !important;<!-- [et_pb_line_break_holder] -->  transition: color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link:hover .utc-num {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link:hover .utc-link-text {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-link.utc-active .utc-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-toc .utc-link.utc-active .utc-link-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] -->#unipile-toc .utc-link.utc-read .utc-num {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-toc .utc-tag-best {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 9px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !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-left: 6px !important;<!-- [et_pb_line_break_holder] -->  vertical-align: middle !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 1000px) {<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: repeat(2, 1fr) !important;<!-- [et_pb_line_break_holder] -->    gap: 24px 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->    padding: 0 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:nth-child(2n+1) {<!-- [et_pb_line_break_holder] -->    padding-left: 0 !important;<!-- [et_pb_line_break_holder] -->    border-left: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:nth-child(2n) {<!-- [et_pb_line_break_holder] -->    padding-right: 0 !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-toc .utc-card {<!-- [et_pb_line_break_holder] -->    padding: 22px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-header {<!-- [et_pb_line_break_holder] -->    margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->    padding-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->    border-bottom: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-toggle {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->    gap: 22px !important;<!-- [et_pb_line_break_holder] -->    overflow: hidden !important;<!-- [et_pb_line_break_holder] -->    transition: max-height 0.4s ease, margin-top 0.3s ease, padding-top 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* === COLLAPSED PAR DEFAUT EN CSS sur mobile (avant meme le JS) === *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    max-height: 0 !important;<!-- [et_pb_line_break_holder] -->    margin-top: 0 !important;<!-- [et_pb_line_break_holder] -->    padding-top: 0 !important;<!-- [et_pb_line_break_holder] -->    border-top: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* Si le JS a tourne et l'utilisateur ouvre, cette classe re-affiche *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-expanded .utc-grid {<!-- [et_pb_line_break_holder] -->    max-height: 2000px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 22px !important;<!-- [et_pb_line_break_holder] -->    padding-top: 22px !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->    padding: 0 !important;<!-- [et_pb_line_break_holder] -->    border-left: none !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    padding-top: 18px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:first-child {<!-- [et_pb_line_break_holder] -->    border-top: none !important;<!-- [et_pb_line_break_holder] -->    padding-top: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-toc\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"utc-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-header-left\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-icon-box\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><!-- [et_pb_line_break_holder] -->          <\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"utc-title\">Table of Contents<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"utc-toggle\" aria-label=\"Toggle table of contents\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-toggle-label\">Show<\/span><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-grid\"><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 1 - Basics --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Basics<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#what-is-verification\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">01<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">What OAuth verification is<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#how-to-get-credentials\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">02<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Get Gmail API credentials<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#unverified-warning\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">03<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Unverified app &#038; user cap<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 2 - Verification --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Verification<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#timeline-cost\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">04<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Verification timeline &#038; cost<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#diy-vs-managed\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">05<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">DIY vs managed OAuth<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 3 - Solution & Providers --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Solution<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#ship-today\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">06<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Ship today with Unipile<span class=\"utc-tag-best\">Best<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#microsoft-contrast\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">07<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Why Azure skips CASA<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#compliance-google\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">08<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Data &#038; compliance<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 4 - FAQ --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">FAQ<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#faq-goa\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num utc-num-faq\">FAQ<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Common questions<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var toc = document.getElementById('unipile-toc');<!-- [et_pb_line_break_holder] -->  if (!toc) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var MOBILE_BP = 700;<!-- [et_pb_line_break_holder] -->  var toggleBtn = toc.querySelector('.utc-toggle');<!-- [et_pb_line_break_holder] -->  var toggleLabel = toc.querySelector('.utc-toggle-label');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function syncInitial(){<!-- [et_pb_line_break_holder] -->    if (window.innerWidth <= MOBILE_BP) {<!-- [et_pb_line_break_holder] -->      toc.classList.remove('utc-expanded');<!-- [et_pb_line_break_holder] -->      if (toggleLabel) toggleLabel.textContent = 'Show';<!-- [et_pb_line_break_holder] -->    } else {<!-- [et_pb_line_break_holder] -->      toc.classList.add('utc-expanded');<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  syncInitial();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (toggleBtn) {<!-- [et_pb_line_break_holder] -->    toggleBtn.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->      var isOpen = toc.classList.toggle('utc-expanded');<!-- [et_pb_line_break_holder] -->      if (toggleLabel) toggleLabel.textContent = isOpen ? 'Hide' : 'Show';<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var resizeTimer = null;<!-- [et_pb_line_break_holder] -->  window.addEventListener('resize', function(){<!-- [et_pb_line_break_holder] -->    if (resizeTimer) clearTimeout(resizeTimer);<!-- [et_pb_line_break_holder] -->    resizeTimer = setTimeout(syncInitial, 150);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  var links = toc.querySelectorAll('.utc-link');<!-- [et_pb_line_break_holder] -->  links.forEach(function(link){<!-- [et_pb_line_break_holder] -->    link.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->      if (!href || href.charAt(0) !== '#') return;<!-- [et_pb_line_break_holder] -->      var target = document.getElementById(href.substring(1));<!-- [et_pb_line_break_holder] -->      if (target) {<!-- [et_pb_line_break_holder] -->        e.preventDefault();<!-- [et_pb_line_break_holder] -->        var offset = 80;<!-- [et_pb_line_break_holder] -->        var top = target.getBoundingClientRect().top + window.pageYOffset - offset;<!-- [et_pb_line_break_holder] -->        window.scrollTo({ top: top, behavior: 'smooth' });<!-- [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] -->  var sectionIds = [];<!-- [et_pb_line_break_holder] -->  links.forEach(function(link){<!-- [et_pb_line_break_holder] -->    var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->    if (href && href.charAt(0) === '#') sectionIds.push(href.substring(1));<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function updateActive(){<!-- [et_pb_line_break_holder] -->    var scrollY = window.pageYOffset + 120;<!-- [et_pb_line_break_holder] -->    var activeId = null;<!-- [et_pb_line_break_holder] -->    var readIds = [];<!-- [et_pb_line_break_holder] -->    sectionIds.forEach(function(id){<!-- [et_pb_line_break_holder] -->      var el = document.getElementById(id);<!-- [et_pb_line_break_holder] -->      if (el) {<!-- [et_pb_line_break_holder] -->        var top = el.getBoundingClientRect().top + window.pageYOffset;<!-- [et_pb_line_break_holder] -->        if (top <= scrollY) {<!-- [et_pb_line_break_holder] -->          activeId = id;<!-- [et_pb_line_break_holder] -->          readIds.push(id);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    links.forEach(function(link){<!-- [et_pb_line_break_holder] -->      var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->      var id = href ? href.substring(1) : '';<!-- [et_pb_line_break_holder] -->      link.classList.remove('utc-active', 'utc-read');<!-- [et_pb_line_break_holder] -->      if (id === activeId) {<!-- [et_pb_line_break_holder] -->        link.classList.add('utc-active');<!-- [et_pb_line_break_holder] -->      } else if (readIds.indexOf(id) !== -1) {<!-- [et_pb_line_break_holder] -->        link.classList.add('utc-read');<!-- [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 ('IntersectionObserver' in window) {<!-- [et_pb_line_break_holder] -->    var observer = new IntersectionObserver(function(){ updateActive(); }, { rootMargin: '-120px 0px -60% 0px' });<!-- [et_pb_line_break_holder] -->    sectionIds.forEach(function(id){<!-- [et_pb_line_break_holder] -->      var el = document.getElementById(id);<!-- [et_pb_line_break_holder] -->      if (el) observer.observe(el);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  window.addEventListener('scroll', updateActive, { passive: true });<!-- [et_pb_line_break_holder] -->  updateActive();<!-- [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.0&#8243; background_color=&#8221;transparent&#8221; width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; use_custom_width=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-hero,<!-- [et_pb_line_break_holder] -->#upl-goa-hero *,<!-- [et_pb_line_break_holder] -->#upl-goa-hero *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-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: 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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 72px 24px 64px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-container {<!-- [et_pb_line_break_holder] -->  max-width: 1160px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [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] -->#upl-goa-hero .goa-left {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero h1 .goa-accent {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-desc {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-cta-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] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-cta-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-cta-primary svg {<!-- [et_pb_line_break_holder] -->  width: 15px !important;<!-- [et_pb_line_break_holder] -->  height: 15px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-cta-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] -->  border: 2px solid #0f2736 !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] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-cta-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] -->#upl-goa-hero .goa-right {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-code-wrapper {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-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] -->#upl-goa-hero .goa-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] -->#upl-goa-hero .goa-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-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] -->#upl-goa-hero .goa-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] -->#upl-goa-hero .goa-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: normal !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-pre code .goa-ln {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  min-height: 1.8em !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-hero .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-hero .goa-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !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] -->#upl-goa-hero .goa-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] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-hero { padding: 52px 20px 48px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-container { grid-template-columns: 1fr !important; gap: 40px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero h1 { font-size: 34px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-hero { padding: 40px 16px 36px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero h1 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-desc { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-actions { flex-direction: column !important; width: 100% !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-cta-primary,<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-cta-secondary { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-pre { padding: 16px !important; font-size: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-pre code .goa-ln { white-space: pre-wrap !important; word-break: break-all !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-code-wrapper { overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-hero h1 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-hero .goa-pre { padding: 12px !important; font-size: 11.5px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"google-oauth-hub-top\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-hero\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"goa-container\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goa-left\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goa-badge\"><span class=\"goa-badge-dot\"><\/span><span>Google OAuth for Developers &#8211; 2026 Guide<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<h1>Google OAuth <span class=\"goa-accent\">Verification<\/span> &#038; Gmail API Credentials<\/h1>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"goa-desc\">Step-by-step: create Gmail API OAuth credentials, pass Google app verification and CASA Tier 2 review &#8211; or ship today on Unipile&#8217;s already-certified OAuth key and certify your own later.<\/pee><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goa-actions\"><!-- [et_pb_line_break_holder] -->        <a class=\"goa-cta-primary\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Build with Unipile &#8211; free<\/span><\/a><!-- [et_pb_line_break_holder] -->        <a class=\"goa-cta-secondary\" href=\"https:\/\/developer.unipile.com\/docs\/getting-started\" target=\"_blank\" rel=\"noopener\"><span>View docs<\/span><\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goa-right\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goa-code-wrapper\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goa-editor-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"goa-dot goa-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goa-dot goa-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goa-dot goa-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goa-filename\">hosted-auth.js<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goa-pre\"><code><span class=\"goa-ln\"><span class=\"c\">\/\/ Skip the Google Cloud setup entirely.<\/span><\/span><span class=\"goa-ln\"><span class=\"c\">\/\/ Unipile's certified OAuth key handles it.<\/span><\/span><span class=\"goa-ln\"> <\/span><span class=\"goa-ln\"><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><span class=\"s\">'https:\/\/api.unipile.com\/api\/v1\/hosted\/accounts'<\/span><span class=\"w\">, {<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">  method: <\/span><span class=\"s\">'POST'<\/span><span class=\"w\">,<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">  headers: {<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">    <\/span><span class=\"s\">'X-API-KEY'<\/span><span class=\"w\">: process.env.UNIPILE_API_KEY,<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">    <\/span><span class=\"s\">'Content-Type'<\/span><span class=\"w\">: <\/span><span class=\"s\">'application\/json'<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">  },<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">  body: <\/span><span class=\"fn\">JSON.stringify<\/span><span class=\"w\">({<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">    type: <\/span><span class=\"s\">'GOOGLE'<\/span><span class=\"w\">,<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">    name: <\/span><span class=\"s\">'user-123'<\/span><span class=\"w\">,<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">    expiresOn: <\/span><span class=\"s\">'2026-12-31'<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">  })<\/span><\/span><span class=\"goa-ln\"><span class=\"w\">});<\/span><\/span><span class=\"goa-ln\"> <\/span><span class=\"goa-ln\"><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><\/span><span class=\"goa-ln\"><span class=\"c\">\/\/ Redirect your user to `url` - done.<\/span><\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goa-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>Google account linked via Unipile certified key<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-tldr,<!-- [et_pb_line_break_holder] -->#upl-goa-tldr *,<!-- [et_pb_line_break_holder] -->#upl-goa-tldr *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-tldr *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr {<!-- [et_pb_line_break_holder] -->  padding: 48px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-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] -->#upl-goa-tldr .tldr-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: 32px 36px !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-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(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: 18px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-eyebrow-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-title {<!-- [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: 22px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-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] -->#upl-goa-tldr .tldr-item {<!-- [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] -->#upl-goa-tldr .tldr-check {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !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: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-check svg {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !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] -->#upl-goa-tldr .tldr-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.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-tldr .tldr-text strong {<!-- [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] -->#upl-goa-tldr .tldr-text 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] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr { padding: 36px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr .tldr-card { padding: 24px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr .tldr-title { font-size: 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr .tldr-text { font-size: 14px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr { padding: 28px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr .tldr-card { padding: 18px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr .tldr-title { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-tldr .tldr-item { gap: 10px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"tldr\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-tldr\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"tldr-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"tldr-card\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tldr-eyebrow\"><span class=\"tldr-eyebrow-dot\"><\/span><span>Key Takeaways<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tldr-title\">What you need to know before building with the Gmail API<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"tldr-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tldr-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-text\"><span><strong>The Gmail API always triggers Google verification.<\/strong> It uses sensitive or restricted scopes &#8211; no workaround exists for production apps serving external users.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tldr-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-text\"><span><strong>Verification takes 2 to 8 weeks.<\/strong> A CASA Tier 2 assessment costs approximately $540-$1k\/yr via self-serve labs, up to $15k-$75k on the legacy track.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tldr-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-text\"><span><strong>Before you are verified, users see the &#8220;unverified app&#8221; screen<\/strong> and you are capped at 100 test users.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tldr-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-text\"><span><strong>With Unipile you can ship to real users today<\/strong> on an already CASA Tier 2 certified Google OAuth client, acting as an independent technical intermediary on behalf of each authenticated user.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"tldr-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"tldr-text\"><span><strong>Run your own Google + CASA verification in parallel, then switch to your own credentials (BYOC)<\/strong> &#8211; it is a single configuration change.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;80px||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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-what,<!-- [et_pb_line_break_holder] -->#upl-goa-what *,<!-- [et_pb_line_break_holder] -->#upl-goa-what *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-what *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what {<!-- [et_pb_line_break_holder] -->  padding: 0 24px 64px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-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] -->#upl-goa-what .gwt-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(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] -->#upl-goa-what .gwt-eyebrow-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what 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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-snippet {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->#upl-goa-what .gwt-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: 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-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] -->#upl-goa-what .gwt-card-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] -->  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] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card-icon svg {<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card-icon-yellow {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card-icon-red {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card h3 {<!-- [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.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card p {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card ul {<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card ul li {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  padding-left: 14px !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-card ul li::before {<!-- [et_pb_line_break_holder] -->  content: '' !important;<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 0 !important;<!-- [et_pb_line_break_holder] -->  top: 9px !important;<!-- [et_pb_line_break_holder] -->  width: 5px !important;<!-- [et_pb_line_break_holder] -->  height: 5px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-callout {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 12px 12px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-callout p {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-callout strong {<!-- [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] -->#upl-goa-what .gwt-cta-inline {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-cta-inline:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-what .gwt-cta-inline svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-what h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-what .gwt-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-what { padding: 0 16px 48px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-what h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-what .gwt-snippet { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-what .gwt-cta-inline { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-what h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"what-is-verification\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-what\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gwt-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwt-eyebrow\"><span class=\"gwt-eyebrow-dot\"><\/span><span>Understanding Google OAuth 2.0<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>What Google OAuth verification actually is<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gwt-snippet\">Google OAuth verification is the formal approval process through which Google confirms that your application handles user data in accordance with its policies. Until your app passes this review, it is considered unverified &#8211; meaning users see a warning screen and you are limited to 100 test users maximum. The review is mandatory whenever your app requests sensitive or restricted Gmail API scopes from external (non-internal) users.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwt-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwt-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gwt-card-icon gwt-card-icon-yellow\"><!-- [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>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Sensitive scopes: what they are<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Sensitive scopes allow your app to read or modify user data beyond basic profile information. For Gmail, these include:<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li><code style=\"font-family:monospace;background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;font-size:13px;\">gmail.readonly<\/code> &#8211; read all messages<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li><code style=\"font-family:monospace;background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;font-size:13px;\">gmail.send<\/code> &#8211; send email on behalf of user<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li><code style=\"font-family:monospace;background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;font-size:13px;\">gmail.modify<\/code> &#8211; read, compose, archive<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li><code style=\"font-family:monospace;background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;font-size:13px;\">mail.google.com<\/code> &#8211; full access (restricted)<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->        <pee style=\"margin-top:12px!important;\">Sensitive scopes require a Google security assessment. Restricted scopes (like full IMAP access) additionally require a CASA Tier 2 audit. See the full scope reference in our <a href=\"\/gmail-api-scopes-guide\/\" style=\"color:#3BB98B;text-decoration:underline;\">Gmail API Scopes Guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwt-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gwt-card-icon gwt-card-icon-red\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Why Gmail API always triggers it<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Unlike a basic Google Sign-In flow (which only requests profile data), the Gmail API always requests scopes that grant access to the contents of a user&#8217;s mailbox. Google treats any mailbox-level permission as sensitive by definition.<\/pee><!-- [et_pb_line_break_holder] -->        <pee style=\"margin-top:12px!important;\">This means: every developer who wants to use the Gmail API for external users must go through Google OAuth app verification &#8211; there is no version of the Gmail API that bypasses this requirement for production use.<\/pee><!-- [et_pb_line_break_holder] -->        <pee style=\"margin-top:12px!important;\">Not sure whether you need OAuth credentials or a simple API key? Read our <a href=\"\/gmail-api-key-vs-oauth\/\" style=\"color:#3BB98B;text-decoration:underline;\">Gmail API Key vs OAuth guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwt-callout\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Key distinction:<\/strong> Google OAuth verification is not a one-time event. If you add new scopes to an already-verified app, you must submit the app for re-review covering those additional scopes. Plan your scope strategy before starting the process &#8211; it saves weeks.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a class=\"gwt-cta-inline\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Skip verification<\/span><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-prereq,<!-- [et_pb_line_break_holder] -->#upl-goa-prereq *,<!-- [et_pb_line_break_holder] -->#upl-goa-prereq *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-prereq *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq {<!-- [et_pb_line_break_holder] -->  padding: 48px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-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] -->#upl-goa-prereq .prereq-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: 32px 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-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.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] -->#upl-goa-prereq .prereq-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-title {<!-- [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: 22px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-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] -->#upl-goa-prereq .prereq-item {<!-- [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] -->#upl-goa-prereq .prereq-icon {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.18) !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] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-icon svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #8a8c2e !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] -->#upl-goa-prereq .prereq-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.75 !important;<!-- [et_pb_line_break_holder] -->  padding-top: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-text strong {<!-- [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] -->#upl-goa-prereq .prereq-text 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] --><!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-cta-wrap {<!-- [et_pb_line_break_holder] -->  margin-top: 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  justify-content: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-cta {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-cta:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-prereq .prereq-cta svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !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] -->  #upl-goa-prereq .prereq-cta { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-cta-wrap { justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq { padding: 36px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-card { padding: 24px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-title { font-size: 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-text { font-size: 14px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq { padding: 28px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-card { padding: 18px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-title { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-item { gap: 10px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-prereq .prereq-icon { width: 30px !important; height: 30px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"prerequisites\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-prereq\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"prereq-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"prereq-card\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"prereq-eyebrow\"><span class=\"prereq-eyebrow-dot\"><\/span><span>Before you start<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"prereq-title\">What you will need to get Gmail API credentials<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"prereq-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"prereq-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 9h18\"\/><path d=\"M9 21V9\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-text\"><span><strong>A Google account with access to the Google Cloud Console.<\/strong> Any Google account works; a Google Workspace account is required if you plan to set the app type to Internal.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"prereq-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-text\"><span><strong>A public Privacy Policy URL and a Terms of Service page.<\/strong> Google&#8217;s review team checks that these URLs are live and accurately describe your use of Gmail data. A missing or broken privacy policy is the most common rejection reason.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"prereq-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"8\" r=\"4\"\/><path d=\"M4 20c0-4 3.6-7 8-7s8 3 8 7\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-text\"><span><strong>Your app&#8217;s homepage URL, name, and logo.<\/strong> These appear directly on the OAuth consent screen that users see when authorizing your app. Authorized domains must match your homepage domain exactly.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"prereq-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-icon\"><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><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-text\"><span><strong>The list of Gmail <a href=\"\/gmail-api-scopes-guide\/\">scopes<\/a> your app actually needs.<\/strong> Plan using the least-privilege principle &#8211; adding a restricted scope later requires a full re-review. See our Gmail API Scopes Guide for the complete reference.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"prereq-item\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-icon\"><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><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"prereq-text\"><span><strong>An estimate of your expected user volume.<\/strong> The 100-test-user cap applies the moment your app uses sensitive scopes. If you anticipate shipping to more than 100 users before your verification completes, plan for a bridging solution.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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; max_width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#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@600;700;800&#038;family=JetBrains+Mono:wght@400;500;600&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip,<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip *,<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip *::before,<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip *::after { margin:0 !important; padding:0 !important; box-sizing:border-box !important; border:none !important; outline:none !important; font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif !important; line-height:normal !important; letter-spacing:normal !important; text-transform:none !important; text-decoration:none !important; list-style:none !important; background:transparent !important; float:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip { max-width:1100px !important; margin:40px auto !important; padding:0 24px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-strip { position:relative !important; background:linear-gradient(135deg,#0f2736 0%,#143447 50%,#0f2736 100%) !important; border-radius:18px !important; overflow:hidden !important; box-shadow:0 20px 55px rgba(15,39,54,0.22) !important; padding:32px 48px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-bg-grid { position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; background-image:linear-gradient(rgba(59,185,139,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(59,185,139,0.05) 1px,transparent 1px) !important; background-size:40px 40px !important; pointer-events:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-glow-1 { position:absolute !important; top:-140px !important; right:-100px !important; width:380px !important; height:380px !important; background:radial-gradient(circle,rgba(221,223,76,0.18) 0%,transparent 70%) !important; pointer-events:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-glow-2 { position:absolute !important; bottom:-180px !important; left:-120px !important; width:460px !important; height:460px !important; background:radial-gradient(circle,rgba(59,185,139,0.13) 0%,transparent 70%) !important; pointer-events:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-content { position:relative !important; z-index:2 !important; display:grid !important; grid-template-columns:1.1fr 1fr !important; gap:40px !important; align-items:center !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-text { display:flex !important; flex-direction:column !important; gap:14px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-h { font-family:'Poppins',sans-serif !important; font-size:34px !important; font-weight:700 !important; line-height:1.12 !important; color:#ffffff !important; letter-spacing:-0.7px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-h .h-yellow { color:#DDDF4C !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-h .h-strike { color:rgba(255,255,255,0.55) !important; text-decoration:line-through !important; text-decoration-color:rgba(234,67,53,0.75) !important; text-decoration-thickness:3px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-desc { font-size:15px !important; line-height:1.55 !important; color:rgba(255,255,255,0.75) !important; max-width:490px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-buttons { display:flex !important; align-items:center !important; gap:18px !important; flex-wrap:wrap !important; margin-top:4px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-btn-primary { display:inline-flex !important; align-items:center !important; gap:10px !important; padding:14px 24px !important; background:#DDDF4C !important; color:#0F2836 !important; border-radius:10px !important; text-decoration:none !important; font-weight:700 !important; font-size:15px !important; box-shadow:0 12px 28px rgba(15,39,54,0.25) !important; transition:transform 0.2s ease,box-shadow 0.2s ease !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-btn-primary:hover { transform:translateY(-3px) !important; box-shadow:0 16px 32px rgba(15,39,54,0.35) !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-btn-primary svg { width:16px !important; height:16px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-trust-line { display:flex !important; align-items:center !important; gap:8px !important; font-size:12px !important; color:rgba(255,255,255,0.5) !important; font-weight:600 !important; margin-top:2px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-trust-line svg { width:13px !important; height:13px !important; color:#3BB98B !important; flex-shrink:0 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-code-wrap { position:relative !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .casa-badge { position:absolute !important; top:-14px !important; right:-10px !important; z-index:3 !important; display:inline-flex !important; align-items:center !important; gap:6px !important; padding:6px 12px !important; background:#3BB98B !important; color:#ffffff !important; border-radius:20px !important; font-size:10.5px !important; font-weight:700 !important; text-transform:uppercase !important; letter-spacing:0.7px !important; box-shadow:0 8px 20px rgba(59,185,139,0.4) !important; border:2px solid #0f2736 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .casa-badge svg { width:12px !important; height:12px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .cta-code { background:#0d1117 !important; border:1px solid rgba(255,255,255,0.1) !important; border-radius:12px !important; overflow:hidden !important; box-shadow:0 20px 45px rgba(0,0,0,0.45) !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-head { background:rgba(255,255,255,0.04) !important; padding:10px 16px !important; display:flex !important; align-items:center !important; gap:10px !important; border-bottom:1px solid rgba(255,255,255,0.06) !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-dots { display:flex !important; gap:5px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-dot { width:9px !important; height:9px !important; border-radius:50% !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-dot-r { background:#ff5f56 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-dot-y { background:#ffbd2e !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-dot-g { background:#27c93f !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-filename { font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important; color:rgba(255,255,255,0.5) !important; margin-left:4px !important; display:flex !important; align-items:center !important; gap:8px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-lang { background:rgba(59,185,139,0.15) !important; border:1px solid rgba(59,185,139,0.3) !important; color:#3BB98B !important; font-size:8.5px !important; font-weight:700 !important; padding:2px 6px !important; border-radius:3px !important; text-transform:uppercase !important; letter-spacing:0.5px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-body { padding:14px 18px 16px !important; font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important; line-height:1.7 !important; color:#c9d1d9 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .code-line { display:block !important; white-space:pre !important; font-family:'JetBrains Mono',monospace !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .c-cmt { color:#8b949e !important; font-style:italic !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .c-kw { color:#ff7b72 !important; font-weight:600 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .c-str { color:#a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-1.upl-skip-oauth-strip .c-flag { color:#DDDF4C !important; }<!-- [et_pb_line_break_holder] -->@media (max-width:920px) {<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-strip { padding:30px 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-content { grid-template-columns:1fr !important; gap:26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-h { font-size:26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .casa-badge { top:-12px !important; right:8px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width:480px) {<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip { padding:0 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-strip { padding:24px 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-h { font-size:22px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-buttons { flex-direction:column !important; align-items:stretch !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .cta-btn-primary { justify-content:center !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .code-body { font-size:10.5px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-1.upl-skip-oauth-strip .casa-badge { font-size:9.5px !important; padding:5px 10px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-skip-oauth-1\" class=\"upl-skip-oauth-strip\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"cta-strip\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-bg-grid\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-glow-1\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-glow-2\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-content\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cta-text\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h2 class=\"cta-h\"><span class=\"h-strike\">Weeks of verification.<\/span><!\u2013- [et_pb_br_holder] -\u2013>Use <span class=\"h-yellow\">Unipile&#8217;s key<\/span> and start now.<\/h2>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"cta-desc\">Don&#8217;t lose customers waiting on Google&#8217;s review. Connect Gmail accounts in 5 minutes with our pre-verified developer credentials.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cta-buttons\"><!-- [et_pb_line_break_holder] -->          <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn-primary\"><span>Use Unipile&#8217;s Google Key<\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cta-trust-line\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>SOC 2 &#8211; GDPR &#8211; No app review needed<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cta-code-wrap\"><!-- [et_pb_line_break_holder] -->        <span class=\"casa-badge\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><span>CASA Tier 2 Certified<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cta-code\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"code-head\">\n<div class=\"code-dots\"><span class=\"code-dot code-dot-r\"><\/span><span class=\"code-dot code-dot-y\"><\/span><span class=\"code-dot code-dot-g\"><\/span><\/div>\n<p><span class=\"code-filename\"><span>connect-gmail.sh<\/span><span class=\"code-lang\">curl<\/span><\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"code-body\"><span class=\"code-line\"><span class=\"c-cmt\"># No Google Cloud Console. No review.<\/span><\/span><span class=\"code-line\"><span class=\"c-cmt\"># Connect any Gmail account in 5 min.<\/span><\/span><span class=\"code-line\"> <\/span><span class=\"code-line\"><span class=\"c-kw\">curl<\/span> -X POST <span class=\"c-str\">&#8220;https:\/\/api.unipile.com\/v1\/accounts&#8221;<\/span> \\<\/span><span class=\"code-line\">  -H <span class=\"c-str\">&#8220;X-API-KEY: $UNIPILE_KEY&#8221;<\/span> \\<\/span><span class=\"code-line\">  -d <span class=\"c-str\">&#8216;{<\/span><\/span><span class=\"code-line\">    <span class=\"c-str\">&#8220;provider&#8221;: &#8220;GOOGLE_OAUTH&#8221;,<\/span><\/span><span class=\"code-line\">    <span class=\"c-str\">&#8220;use_unipile_credentials&#8221;: <span class=\"c-flag\">true<\/span><\/span><\/span><span class=\"code-line\">  <span class=\"c-str\">}&#8217;<\/span><\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<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\": \"HowTo\",<!-- [et_pb_line_break_holder] -->  \"name\": \"How to get Gmail API credentials\",<!-- [et_pb_line_break_holder] -->  \"description\": \"A step-by-step guide to obtaining Gmail API OAuth credentials (client_id and client_secret) via the Google Cloud Console, including project setup, API activation, OAuth consent screen configuration, scope selection, and Client ID creation.\",<!-- [et_pb_line_break_holder] -->  \"totalTime\": \"PT45M\",<!-- [et_pb_line_break_holder] -->  \"step\": [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"HowToStep\",<!-- [et_pb_line_break_holder] -->      \"position\": 1,<!-- [et_pb_line_break_holder] -->      \"name\": \"Create a Google Cloud project\",<!-- [et_pb_line_break_holder] -->      \"text\": \"Go to console.cloud.google.com, click the project picker in the top navigation bar, and select New Project. Give it a name that will appear on your OAuth consent screen. Attach a billing account even if you expect zero usage - Gmail API activation requires it.\",<!-- [et_pb_line_break_holder] -->      \"image\": \"https:\/\/files.readme.io\/7120efa-1-Create_New_Project.png\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"HowToStep\",<!-- [et_pb_line_break_holder] -->      \"position\": 2,<!-- [et_pb_line_break_holder] -->      \"name\": \"Enable the Gmail API\",<!-- [et_pb_line_break_holder] -->      \"text\": \"In the Google Cloud Console, navigate to APIs and Services, then Library. Search for Gmail API and click Enable. The API now appears in your Enabled APIs dashboard. Calls without valid credentials return a 403 accessNotConfigured error.\",<!-- [et_pb_line_break_holder] -->      \"image\": \"https:\/\/files.readme.io\/94db434-9-Enable_Gmail_API.png\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"HowToStep\",<!-- [et_pb_line_break_holder] -->      \"position\": 3,<!-- [et_pb_line_break_holder] -->      \"name\": \"Configure the OAuth consent screen\",<!-- [et_pb_line_break_holder] -->      \"text\": \"Go to APIs and Services, then OAuth consent screen. Select External as your user type if your app serves users outside your Google Workspace organization. Fill in your app name, support email, authorized domains, homepage URL, privacy policy URL, and terms of service URL. Google's review team verifies that these pages are live.\",<!-- [et_pb_line_break_holder] -->      \"image\": \"https:\/\/files.readme.io\/cd1e1b1-17-User_Type.png\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"HowToStep\",<!-- [et_pb_line_break_holder] -->      \"position\": 4,<!-- [et_pb_line_break_holder] -->      \"name\": \"Add scopes\",<!-- [et_pb_line_break_holder] -->      \"text\": \"In the consent screen configuration, click Add or Remove Scopes. Select the Gmail scopes your app requires. Sensitive scopes such as gmail.send and gmail.readonly require a security assessment. Restricted scopes such as mail.google.com additionally require a CASA Tier 2 audit. Plan scope selection carefully - adding a restricted scope later requires a full re-review.\",<!-- [et_pb_line_break_holder] -->      \"image\": \"https:\/\/files.readme.io\/4b725e1-22-Add_Scopes.png\"<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"HowToStep\",<!-- [et_pb_line_break_holder] -->      \"position\": 5,<!-- [et_pb_line_break_holder] -->      \"name\": \"Create an OAuth Client ID\",<!-- [et_pb_line_break_holder] -->      \"text\": \"Go to APIs and Services, then Credentials, then Create Credentials, then OAuth Client ID. Select your application type (Web application, Desktop app, or iOS\/Android). Register your redirect URIs. Download the JSON credentials file containing your client_id, client_secret, and redirect URIs. Store it securely and never commit it to source control.\",<!-- [et_pb_line_break_holder] -->      \"image\": \"https:\/\/files.readme.io\/3aa744c-4-Create_Credentials_OAuth_Client_ID.png\"<!-- [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] --><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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-cred,<!-- [et_pb_line_break_holder] -->#upl-goa-cred *,<!-- [et_pb_line_break_holder] -->#upl-goa-cred *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-cred *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 72px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-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] -->#upl-goa-cred .gcr-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.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] -->#upl-goa-cred .gcr-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred 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] -->#upl-goa-cred .gcr-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Quick-steps snippet list *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-snippet {<!-- [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: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-snippet-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] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 18px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-ol {<!-- [et_pb_line_break_holder] -->  counter-reset: gcr-counter !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-ol 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: 14px !important;<!-- [et_pb_line_break_holder] -->  counter-increment: gcr-counter !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-ol li::before {<!-- [et_pb_line_break_holder] -->  content: counter(gcr-counter) !important;<!-- [et_pb_line_break_holder] -->  min-width: 28px !important;<!-- [et_pb_line_break_holder] -->  height: 28px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !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] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !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] -->#upl-goa-cred .gcr-ol li span {<!-- [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.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-ol li strong {<!-- [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] -->\/* Accordion steps *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-accordion {<!-- [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: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-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: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: border-color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-item.gcr-open {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-header {<!-- [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] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  user-select: none !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-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] -->  background: rgba(59, 185, 139, 0.10) !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] -->  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: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.2s ease, color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-item.gcr-open .gcr-acc-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] -->#upl-goa-cred .gcr-acc-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-chevron {<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !important;<!-- [et_pb_line_break_holder] -->  min-width: 22px !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] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease, color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-chevron svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !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.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] -->#upl-goa-cred .gcr-acc-item.gcr-open .gcr-acc-chevron {<!-- [et_pb_line_break_holder] -->  transform: rotate(180deg) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-body {<!-- [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.38s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-item.gcr-open .gcr-acc-body {<!-- [et_pb_line_break_holder] -->  max-height: 3000px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content {<!-- [et_pb_line_break_holder] -->  padding: 0 24px 28px 80px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content p {<!-- [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: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content p:last-child {<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content 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] -->#upl-goa-cred .gcr-acc-content code {<!-- [et_pb_line_break_holder] -->  font-family: monospace !important;<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !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-size: 13px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content ul {<!-- [et_pb_line_break_holder] -->  margin-top: 8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content ul li {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  padding-left: 16px !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content ul li::before {<!-- [et_pb_line_break_holder] -->  content: '' !important;<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 0 !important;<!-- [et_pb_line_break_holder] -->  top: 9px !important;<!-- [et_pb_line_break_holder] -->  width: 5px !important;<!-- [et_pb_line_break_holder] -->  height: 5px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-acc-content strong {<!-- [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] -->\/* Tip callout *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-tip {<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.10) !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 10px 10px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 14px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-tip p {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-tip strong {<!-- [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] -->\/* Screenshot block *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-screenshot {<!-- [et_pb_line_break_holder] -->  margin-top: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 4px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-screenshot img {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  height: auto !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  max-width: 100% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-screenshot-caption {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->  padding: 8px 14px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CTA inline *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-cta-inline {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-cta-inline:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-cred .gcr-cta-inline svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Responsive *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cred h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-content { padding: 0 16px 24px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-title { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cred { padding: 48px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-snippet { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-header { padding: 14px 16px !important; gap: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-title { font-size: 15px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-num { width: 34px !important; height: 34px !important; min-width: 34px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-content { padding: 0 14px 20px 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-screenshot img { max-width: 100% !important; width: 100% !important; height: auto !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-tip { padding: 12px 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-cta-inline { white-space: normal !important; text-align: center !important; width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cred h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-header { padding: 12px !important; gap: 10px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-title { font-size: 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-num { width: 30px !important; height: 30px !important; min-width: 30px !important; font-size: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cred .gcr-acc-content { padding: 0 12px 16px 12px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"how-to-get-credentials\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-cred\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gcr-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gcr-eyebrow\"><span class=\"gcr-eyebrow-dot\"><\/span><span>Setting Up OAuth Credentials<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>How to get Gmail API credentials: step-by-step<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gcr-intro\">Getting Gmail API OAuth credentials requires six distinct steps in the Google Cloud Console. Here is the full sequence &#8211; from creating your project to holding a working <code style=\"font-family:monospace;background:rgba(0,0,0,0.06);padding:2px 6px;border-radius:4px;font-size:15px;\">client_id<\/code> and <code style=\"font-family:monospace;background:rgba(0,0,0,0.06);padding:2px 6px;border-radius:4px;font-size:15px;\">client_secret<\/code>.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Snippet list (numbered, for Google featured snippet) --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gcr-snippet\"><!-- [et_pb_line_break_holder] -->      <span class=\"gcr-snippet-title\">Quick overview: 6 steps to Gmail API OAuth credentials<\/span><!-- [et_pb_line_break_holder] -->      <\/p>\n<ol class=\"gcr-ol\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<li><span><strong>Create a Google Cloud project<\/strong> &#8211; your isolated billing and API container.<\/span><\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li><span><strong>Enable the Gmail API<\/strong> &#8211; activate the API in the API Library for your project.<\/span><\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li><span><strong>Configure the OAuth consent screen<\/strong> &#8211; choose app type (external vs internal), fill in app name, support email, and authorized domains.<\/span><\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li><span><strong>Add scopes<\/strong> &#8211; select the Gmail scopes your app needs; this determines whether a security review is required.<\/span><\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li><span><strong>Create an OAuth Client ID<\/strong> &#8211; choose application type (Web, Desktop, or iOS\/Android) and register your redirect URIs.<\/span><\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<li><span><strong>Submit for verification<\/strong> &#8211; if your app is external and uses sensitive scopes, submit via Google&#8217;s verification portal.<\/span><\/li>\n<p><!-- [et_pb_line_break_holder] -->      <\/ol>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Accordion step-by-step (detail with screenshots) --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gcr-accordion\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Step 1 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gcr-acc-item gcr-open\" id=\"gcr-step-1\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-header\" role=\"button\" aria-expanded=\"true\" aria-controls=\"gcr-body-1\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-num\"><span>01<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-title\"><span>Create a Google Cloud project<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-body\" id=\"gcr-body-1\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-content\"><!-- [et_pb_line_break_holder] -->            <pee>Go to <a href=\"https:\/\/console.cloud.google.com\/\" target=\"_blank\" rel=\"noopener\">console.cloud.google.com<\/a>, click the project picker in the top nav, and select &#8220;New Project&#8221;. Give it a name that reflects your product &#8211; it will appear on the OAuth consent screen users see.<\/pee><!-- [et_pb_line_break_holder] -->            <pee>Enable billing on the project even if you expect to stay within free quotas. Many APIs (Gmail included) require a billing account to be attached before they can be activated, even at $0 usage.<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/7120efa-1-Create_New_Project.png\" alt=\"Google Cloud Console - Create a new project interface\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">Google Cloud Console: create a new project via the project picker in the top navigation bar.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Step 2 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gcr-acc-item\" id=\"gcr-step-2\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"gcr-body-2\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-num\"><span>02<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-title\"><span>Enable the Gmail API<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-body\" id=\"gcr-body-2\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-content\"><!-- [et_pb_line_break_holder] -->            <pee>In the Google Cloud Console, navigate to &#8220;APIs &#038; Services&#8221; > &#8220;Library&#8221;. Search for &#8220;Gmail API&#8221; and click &#8220;Enable&#8221;. You will also likely want to enable the Google People API if you need contact data alongside email.<\/pee><!-- [et_pb_line_break_holder] -->            <pee>After enabling, the Gmail API appears in your &#8220;Enabled APIs&#8221; dashboard. API calls without valid credentials will return a <code>403 accessNotConfigured<\/code> error even at this stage &#8211; credentials come next.<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/94db434-9-Enable_Gmail_API.png\" alt=\"Google API Library - enabling the Gmail API for a Cloud project\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">Google API Library: search for &#8220;Gmail API&#8221; and click Enable to activate it for your project.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Step 3 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gcr-acc-item\" id=\"gcr-step-3\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"gcr-body-3\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-num\"><span>03<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-title\"><span>Configure the OAuth consent screen<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-body\" id=\"gcr-body-3\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-content\"><!-- [et_pb_line_break_holder] -->            <pee>Go to &#8220;APIs &#038; Services&#8221; > &#8220;OAuth consent screen&#8221;. Choose your user type:<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<ul><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><strong>Internal<\/strong> &#8211; only users within your Google Workspace organization. No verification required.<\/li>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><strong>External<\/strong> &#8211; any Google account. Verification required for sensitive\/restricted scopes beyond 100 test users.<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/ul>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/cd1e1b1-17-User_Type.png\" alt=\"OAuth consent screen - choosing user type: Internal or External\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">OAuth consent screen: choose Internal (Workspace-only) or External (any Google account) as your user type.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <pee style=\"margin-top:14px;\">Fill in the App name, User support email, and developer contact email. These fields appear on the consent screen users see when authorizing your app. Add your authorized domain (the domain of your homepage and privacy policy URL).<\/pee><!-- [et_pb_line_break_holder] -->            <pee style=\"margin-top:10px;\">For a focused walkthrough of every field, the 100-user cap, and the Internal vs External choice, see our <a href=\"https:\/\/www.unipile.com\/google-oauth-consent-screen\/\" style=\"color:#3BB98B;text-decoration:underline;font-weight:600;\">consent screen setup guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\" style=\"margin-top:14px;\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/fa91dbb-18-App_Information.png\" alt=\"OAuth consent screen - App Information fields: app name, logo, support email\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">App Information: fill in the app name, logo, and support email exactly as they should appear on the consent screen.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\" style=\"margin-top:12px;\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/d935ff7-19-App_Domain.png\" alt=\"OAuth consent screen - App Domain section: homepage, privacy policy, terms of service\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">App Domain: provide live URLs for your homepage, privacy policy, and terms of service. Google&#8217;s review team checks these.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\" style=\"margin-top:12px;\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/f0c910e-20-Authorized_Domains.png\" alt=\"OAuth consent screen - Authorized Domains configuration\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">Authorized Domains: add the root domain of your app. Only URIs from this domain can be used as redirect URIs.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\" style=\"margin-top:12px;\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/c57e4d6-21-Developer_contact.png\" alt=\"OAuth consent screen - Developer contact information fields\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">Developer contact information: Google uses this email to notify you about changes to your app&#8217;s verification status.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-tip\" style=\"margin-top:16px;\"><!-- [et_pb_line_break_holder] -->              <pee><strong>Tip:<\/strong> the &#8220;App domain&#8221; section accepts multiple links (Homepage, Privacy Policy, Terms of Service). Google&#8217;s verification team will check that these URLs are live and reflect the scopes you are requesting. A missing or broken privacy policy URL is one of the most common reasons verifications are rejected.<\/pee><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Step 4 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gcr-acc-item\" id=\"gcr-step-4\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"gcr-body-4\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-num\"><span>04<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-title\"><span>Add scopes<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-body\" id=\"gcr-body-4\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-content\"><!-- [et_pb_line_break_holder] -->            <pee>In the consent screen configuration, click &#8220;Add or Remove Scopes&#8221;. Use the filter to find Gmail scopes. The scope you choose has a direct impact on your verification path:<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<ul><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><code>gmail.send<\/code> or <code>gmail.readonly<\/code> &#8211; sensitive, requires security assessment.<\/li>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><code>gmail.modify<\/code> or <code>mail.google.com<\/code> &#8211; restricted, requires CASA Tier 2 in addition.<\/li>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><code>openid email profile<\/code> only &#8211; no verification needed (basic sign-in).<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/ul>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/4b725e1-22-Add_Scopes.png\" alt=\"OAuth consent screen - Add or Remove Scopes panel showing Gmail API permissions\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">Add or Remove Scopes: select the Gmail scopes your app requires. Scope selection directly determines your verification track.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <pee style=\"margin-top:14px;\">Plan scope selection carefully. Adding a restricted scope later means re-submitting the entire app for an additional CASA Tier 2 review. For the full scope reference and which APIs each scope unlocks, see our <a href=\"\/gmail-api-scopes-guide\/\">Gmail API Scopes Guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Step 5 --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gcr-acc-item\" id=\"gcr-step-5\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-header\" role=\"button\" aria-expanded=\"false\" aria-controls=\"gcr-body-5\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-num\"><span>05<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-title\"><span>Create an OAuth Client ID<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gcr-acc-body\" id=\"gcr-body-5\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gcr-acc-content\"><!-- [et_pb_line_break_holder] -->            <pee>Go to &#8220;APIs &#038; Services&#8221; > &#8220;Credentials&#8221; > &#8220;Create Credentials&#8221; > &#8220;OAuth Client ID&#8221;. Select your application type:<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<ul><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><strong>Web application<\/strong> &#8211; for server-side apps. Register your redirect URIs (e.g. <code>https:\/\/yourapp.com\/oauth\/callback<\/code>).<\/li>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><strong>Desktop app<\/strong> &#8211; for installed applications. Uses loopback redirect.<\/li>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<li><strong>iOS \/ Android<\/strong> &#8211; mobile apps, uses custom URI schemes.<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/ul>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-screenshot\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/files.readme.io\/3aa744c-4-Create_Credentials_OAuth_Client_ID.png\" alt=\"Google Cloud Console Credentials - creating an OAuth Client ID\" loading=\"lazy\"><!-- [et_pb_line_break_holder] -->              <span class=\"gcr-screenshot-caption\">Credentials panel: select &#8220;OAuth Client ID&#8221; to generate the client_id and client_secret your app needs.<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <pee style=\"margin-top:14px;\">After creation, download the JSON credentials file. It contains your <code>client_id<\/code>, <code>client_secret<\/code>, and registered redirect URIs. Store it securely &#8211; never commit it to source control.<\/pee><!-- [et_pb_line_break_holder] -->            <pee>For a deep-dive on the difference between this credential type and a simple API key, see our <a href=\"\/gmail-api-key-vs-oauth\/\">Gmail API Key vs OAuth credentials guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gcr-tip\"><!-- [et_pb_line_break_holder] -->              <pee><strong>Access tokens and refresh tokens:<\/strong> when a user completes the OAuth flow, you receive a short-lived <code>access_token<\/code> (valid ~1 hour) and a <code>refresh_token<\/code> (long-lived, stored server-side). Your server uses the refresh token to obtain new access tokens without re-prompting the user. Always request <code>access_type=offline<\/code> and <code>prompt=consent<\/code> on the first authorization to receive the refresh token. Store refresh tokens encrypted at rest.<\/pee><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- \/.gcr-accordion --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee style=\"font-size:15px;color:#383838;line-height:1.75;margin-bottom:24px;\">For a broader look at how OAuth fits into email API architecture &#8211; including sync strategies and provider differences &#8211; see our <a href=\"\/oauth-email-api\/\" style=\"color:#3BB98B;text-decoration:underline;\">OAuth Email API guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->    <a class=\"gcr-cta-inline\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Use Unipile&#8217;s key<\/span><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var wrapper = document.getElementById('upl-goa-cred');<!-- [et_pb_line_break_holder] -->  if (!wrapper) return;<!-- [et_pb_line_break_holder] -->  var items = wrapper.querySelectorAll('.gcr-acc-item');<!-- [et_pb_line_break_holder] -->  items.forEach(function(item){<!-- [et_pb_line_break_holder] -->    var header = item.querySelector('.gcr-acc-header');<!-- [et_pb_line_break_holder] -->    if (!header) return;<!-- [et_pb_line_break_holder] -->    header.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->      var isOpen = item.classList.contains('gcr-open');<!-- [et_pb_line_break_holder] -->      if (isOpen) {<!-- [et_pb_line_break_holder] -->        item.classList.remove('gcr-open');<!-- [et_pb_line_break_holder] -->        header.setAttribute('aria-expanded', 'false');<!-- [et_pb_line_break_holder] -->      } else {<!-- [et_pb_line_break_holder] -->        item.classList.add('gcr-open');<!-- [et_pb_line_break_holder] -->        header.setAttribute('aria-expanded', 'true');<!-- [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_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-warn,<!-- [et_pb_line_break_holder] -->#upl-goa-warn *,<!-- [et_pb_line_break_holder] -->#upl-goa-warn *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-warn *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn {<!-- [et_pb_line_break_holder] -->  padding: 72px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-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] -->#upl-goa-warn .gwn-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(234, 67, 53, 0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !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] -->#upl-goa-warn .gwn-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #EA4335 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn 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] -->#upl-goa-warn .gwn-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->#upl-goa-warn .gwn-alert {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.06) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.20) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px 28px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 18px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-alert-icon {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.12) !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] -->#upl-goa-warn .gwn-alert-icon svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: #c0392b !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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-alert-body strong {<!-- [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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-alert-body p {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn 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: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-cards {<!-- [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: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-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] -->#upl-goa-warn .gwn-card-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: 6px !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 12px !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] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-badge-green {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-badge-green-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-card h4 {<!-- [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: 10px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-card p {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-callout {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 12px 12px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-callout p {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-callout strong {<!-- [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] -->#upl-goa-warn .gwn-cta-inline {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-cta-inline:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-warn .gwn-cta-inline svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-warn h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn .gwn-cards { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-warn { padding: 48px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn .gwn-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn .gwn-alert { flex-direction: column !important; gap: 12px !important; padding: 18px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn .gwn-callout { padding: 16px 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn .gwn-cta-inline { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-warn h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-warn .gwn-alert-body strong { font-size: 14px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"unverified-warning\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-warn\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gwn-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwn-eyebrow\"><span class=\"gwn-eyebrow-dot\"><\/span><span>Gmail API Unverified App Warning<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>The &#8220;This app isn&#8217;t verified&#8221; warning, the 100-user cap &#038; exemptions<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gwn-intro\">Before your app passes Google OAuth app verification, every user who tries to authorize it sees a warning screen. Google also enforces a hard 100-user limit on unverified external apps. Here is exactly what this means and when it does not apply.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwn-alert\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwn-alert-icon\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwn-alert-body\"><!-- [et_pb_line_break_holder] -->        <strong>What users see before verification<\/strong><!-- [et_pb_line_break_holder] -->        <pee>The screen reads: &#8220;This app isn&#8217;t verified. This app has not been verified by Google. It may be requesting access to sensitive information. Learn about the risks.&#8221; Users must click &#8220;Advanced&#8221; then &#8220;Go to [App Name] (unsafe)&#8221; to proceed. Most non-technical users will stop here &#8211; this is the real cost of skipping or delaying verification.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3>When Google OAuth app verification is NOT required<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwn-cards\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwn-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gwn-card-badge gwn-badge-green\"><span class=\"gwn-badge-green-dot\"><\/span><span>Exempt<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h4>Internal use only<\/h4>\n<p><!-- [et_pb_line_break_holder] -->        <pee>If you set your OAuth consent screen to &#8220;Internal&#8221; and your app only serves users within your own Google Workspace organization, no verification is required &#8211; regardless of which scopes you request. This is the fastest path for internal tooling.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwn-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gwn-card-badge gwn-badge-green\"><span class=\"gwn-badge-green-dot\"><\/span><span>Exempt<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h4>Testing mode (under 100 users)<\/h4>\n<p><!-- [et_pb_line_break_holder] -->        <pee>An unverified external app can have up to 100 test users added via the Google Cloud Console. Those specific users can authorize the app without seeing a hard block &#8211; they see the warning but can proceed. Useful for development and private beta with a small team.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gwn-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gwn-card-badge gwn-badge-green\"><span class=\"gwn-badge-green-dot\"><\/span><span>Exempt<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h4>Basic scopes only<\/h4>\n<p><!-- [et_pb_line_break_holder] -->        <pee>If your app only requests non-sensitive scopes (openid, email, profile &#8211; basic Google Sign-In), no verification is needed even for external users at any scale. Verification is triggered specifically by sensitive and restricted scopes.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gwn-callout\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Important framing:<\/strong> the intent of the 100-user cap and the warning screen is to protect users while an app is being reviewed. The correct response to hitting the cap is to submit your app for Google OAuth app verification &#8211; not to create multiple Google Cloud projects to spread users across them. Google explicitly prohibits that approach and it can result in your developer account being suspended. The compliant path is either to verify your app or to use a platform that already provides a verified OAuth key, such as Unipile.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a class=\"gwn-cta-inline\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Skip the 100-user cap<\/span><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-time,<!-- [et_pb_line_break_holder] -->#upl-goa-time *,<!-- [et_pb_line_break_holder] -->#upl-goa-time *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-time *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 72px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-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] -->#upl-goa-time .gtm-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(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] -->#upl-goa-time .gtm-eyebrow-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time 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] -->#upl-goa-time .gtm-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->\/* Timeline cards *\/<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-tracks {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track {<!-- [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 28px !important;<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 200px 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track-meta {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track-label {<!-- [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] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track-time {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 10px !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] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-time-fast {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-time-medium {<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.20) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-time-slow {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track-body p {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track-body p + p {<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-track-body strong {<!-- [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] -->#upl-goa-time 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: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Cost table *\/<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-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] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time 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] -->#upl-goa-time thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time thead th {<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !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] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f2f5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time tbody tr:nth-child(even) {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time tbody td {<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !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] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time 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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-badge-free {<!-- [et_pb_line_break_holder] -->  display: inline-block !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 10px !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-badge-cost {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.08) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->  padding: 3px 10px !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-footnote {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #718096 !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-footnote 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] -->#upl-goa-time .gtm-cta-inline {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-cta-inline:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-time .gtm-cta-inline svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Mobile table \u2192 scroll with contained wrapper *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-time h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time .gtm-track { grid-template-columns: 1fr !important; gap: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time .gtm-table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time table { min-width: 560px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-time { padding: 48px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time .gtm-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time .gtm-track { padding: 18px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time .gtm-table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; max-width: 100% !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time table { min-width: 480px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time thead th { padding: 12px 14px !important; font-size: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time tbody td { padding: 12px 14px !important; font-size: 13px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time .gtm-cta-inline { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-time h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-time table { min-width: 420px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"timeline-cost\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-time\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gtm-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gtm-eyebrow\"><span class=\"gtm-eyebrow-dot\"><\/span><span>Google App Verification Time<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Google app verification: timeline &#038; cost in 2026<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gtm-intro\">Google app verification is not a single process &#8211; it has three distinct tracks depending on which scopes your app requests. Each track has its own timeline and cost. Here is what to expect in 2026.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gtm-tracks\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gtm-track\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gtm-track-meta\"><!-- [et_pb_line_break_holder] -->          <span class=\"gtm-track-label\">Brand verification<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gtm-track-time gtm-time-fast\"><span>2-3 business days<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gtm-track-body\"><!-- [et_pb_line_break_holder] -->          <pee>If your app only uses non-sensitive scopes (basic Google Sign-In), Google may still require brand verification to confirm your app&#8217;s identity and homepage domain. This is typically a 2-3 business day process with no cost beyond your time.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>You will need to verify domain ownership via Google Search Console and ensure your OAuth consent screen accurately describes your app.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gtm-track\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gtm-track-meta\"><!-- [et_pb_line_break_holder] -->          <span class=\"gtm-track-label\">Sensitive scopes (gmail.send, gmail.readonly, gmail.modify)<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gtm-track-time gtm-time-medium\"><span>2-4 weeks<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gtm-track-body\"><!-- [et_pb_line_break_holder] -->          <pee>Apps requesting sensitive Gmail scopes must go through Google&#8217;s full security assessment. Google&#8217;s team reviews your app&#8217;s data handling practices, privacy policy, and the justification for each scope you request.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>Typical turnaround is <strong>2-4 weeks<\/strong> when your submission is complete. Incomplete submissions (missing privacy policy, vague scope justifications, mismatched authorized domains) restart the clock. Google may request a demo or additional documentation during this period.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gtm-track\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gtm-track-meta\"><!-- [et_pb_line_break_holder] -->          <span class=\"gtm-track-label\">CASA Tier 2 &#8211; restricted scopes (mail.google.com)<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gtm-track-time gtm-time-slow\"><span>4-12+ weeks<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gtm-track-body\"><!-- [et_pb_line_break_holder] -->          <pee>Apps requesting restricted scopes &#8211; primarily <code style=\"font-family:monospace;background:rgba(0,0,0,0.08);padding:2px 6px;border-radius:4px;font-size:13px;\">https:\/\/mail.google.com\/<\/code> (full IMAP-level access) &#8211; must complete a <strong>CASA Tier 2 security assessment<\/strong> in addition to Google&#8217;s own review. CASA (Cloud Application Security Assessment) is an independent security audit conducted by a Google-approved lab.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>In 2026 Google offers a <strong>self-serve CASA Tier 2 path<\/strong> via approved labs, typically costing <strong>$540-$1,000<\/strong> (lab fees for automated scanning). This is a significant improvement over the legacy track. The older, manually-driven security assessment previously required by Google for the same scope class cost <strong>$15,000-$75,000<\/strong> and took months &#8211; that legacy track still applies to some grandfathered apps and enterprise edge cases. When budgeting, confirm with your chosen lab which track applies to your app.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>Total timeline including Google&#8217;s own review after CASA: <strong>4-12+ weeks<\/strong> from first submission to approval.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3>Cost summary: Google OAuth app verification in 2026<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gtm-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Verification track<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Scope tier<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Timeline<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Cost<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Brand verification<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Non-sensitive (openid, email, profile)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>2-3 business days<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"gtm-badge-free\">Free<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Security assessment<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Sensitive (gmail.send, gmail.readonly, gmail.modify)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>2-4 weeks<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"gtm-badge-free\">Free<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>CASA Tier 2 (self-serve, 2026)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Restricted (mail.google.com)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>4-8 weeks<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"gtm-badge-cost\">~$540-$1,000<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>CASA Tier 2 (legacy manual, pre-2025)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Restricted (mail.google.com)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>8-12+ weeks<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"gtm-badge-cost\">$15k-$75k<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee class=\"gtm-footnote\">Sources: <a href=\"https:\/\/developers.google.com\/identity\/protocols\/oauth2\/policies\" target=\"_blank\" rel=\"noopener\">Google OAuth 2.0 Policies<\/a> (developers.google.com) and <a href=\"https:\/\/support.google.com\/cloud\/answer\/13463073\" target=\"_blank\" rel=\"noopener\">Google Cloud &#8211; OAuth app verification overview<\/a> (support.google.com). CASA Tier 2 self-serve pricing is based on approved lab rates as of Q1 2026 and may vary by lab and app scope count. The legacy $15k-$75k track applied to apps that went through Google&#8217;s previous mandatory security assessment vendor program before the CASA self-serve option became available.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a class=\"gtm-cta-inline\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Skip the wait<\/span><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-errors,<!-- [et_pb_line_break_holder] -->#upl-goa-errors *,<!-- [et_pb_line_break_holder] -->#upl-goa-errors *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-errors *::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] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors {<!-- [et_pb_line_break_holder] --> <!-- [et_pb_line_break_holder] -->  padding: 70px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors 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] -->#upl-goa-errors .goe-intro {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-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: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-item {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !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: 16px 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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-item-icon {<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  min-width: 36px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.18) !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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-item-icon svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #8a8c2e !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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-item-body {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-code {<!-- [et_pb_line_break_holder] -->  display: inline-block !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] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  background: rgba(15, 39, 54, 0.07) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 7px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 4px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-desc {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-cta-row {<!-- [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] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 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] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-cta-text {<!-- [et_pb_line_break_holder] -->  flex: 1 !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.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-cta-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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-link {<!-- [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: transparent !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !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] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->  text-underline-offset: 3px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-link svg {<!-- [et_pb_line_break_holder] -->  width: 15px !important;<!-- [et_pb_line_break_holder] -->  height: 15px !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] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-unipile-note {<!-- [et_pb_line_break_holder] -->  margin-top: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  border-left: 3px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding-left: 14px !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] -->  #upl-goa-errors {<!-- [et_pb_line_break_holder] -->    padding: 50px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-errors h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-errors .goe-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] --><!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-errors {<!-- [et_pb_line_break_holder] -->    padding: 40px 16px !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-errors h2 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-errors .goe-cta-row {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-errors .goe-link {<!-- [et_pb_line_break_holder] -->    white-space: normal !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-errors h2 {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-errors .goe-code {<!-- [et_pb_line_break_holder] -->    font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-skip-cta {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  margin-top: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-skip-cta:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-skip-cta svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-errors .goe-skip-wrap {<!-- [et_pb_line_break_holder] -->  margin-top: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-errors .goe-skip-cta { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"goa-errors\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-errors\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"goe-inner\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goe-badge\"><span class=\"goe-badge-dot\"><\/span><span>Troubleshooting<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Common Google OAuth errors you will run into<\/h2>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee class=\"goe-intro\">When you manage your own Google Cloud project, a handful of errors come up repeatedly during development and after going live. Here is a quick reference for the six most common ones.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goe-grid\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goe-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-body\"><!-- [et_pb_line_break_holder] -->          <span class=\"goe-code\">redirect_uri_mismatch<\/span><!-- [et_pb_line_break_holder] -->          <pee class=\"goe-desc\">The redirect URI in your request does not exactly match one registered in Google Cloud Console (protocol, trailing slash, and port all matter).<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goe-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-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>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-body\"><!-- [et_pb_line_break_holder] -->          <span class=\"goe-code\">Error 400: admin_policy_enforced<\/span><!-- [et_pb_line_break_holder] -->          <pee class=\"goe-desc\">The user&#8217;s Google Workspace admin has blocked third-party OAuth apps or restricted the specific scopes your app is requesting.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goe-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-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>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-body\"><!-- [et_pb_line_break_holder] -->          <span class=\"goe-code\">access_denied \/ &#8220;This app is blocked&#8221;<\/span><!-- [et_pb_line_break_holder] -->          <pee class=\"goe-desc\">Your app uses sensitive or restricted scopes but has not completed Google&#8217;s verification process, so Google blocks consent for new users.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goe-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"23 4 23 10 17 10\"\/><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-body\"><!-- [et_pb_line_break_holder] -->          <span class=\"goe-code\">invalid_grant<\/span><!-- [et_pb_line_break_holder] -->          <pee class=\"goe-desc\">The refresh token has expired or been revoked (user changed password, revoked access, or the token has been idle for 6 months). The user must re-authenticate.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goe-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-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>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-body\"><!-- [et_pb_line_break_holder] -->          <span class=\"goe-code\">OAuth consent screen not showing<\/span><!-- [et_pb_line_break_holder] -->          <pee class=\"goe-desc\">The consent screen is misconfigured in Google Cloud Console: wrong user type (Internal vs External), missing test users, or the app is still in draft state.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goe-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goe-item-body\"><!-- [et_pb_line_break_holder] -->          <span class=\"goe-code\">invalid_scope<\/span><!-- [et_pb_line_break_holder] -->          <pee class=\"goe-desc\">A scope string contains a typo, or the corresponding API (e.g. Gmail API) has not been enabled in the Google Cloud Console for your project.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goe-cta-row\"><!-- [et_pb_line_break_holder] -->      <pee class=\"goe-cta-text\"><strong>Need the full diagnosis?<\/strong> Each of these errors has a specific fix. See our full guide to <a href=\"https:\/\/www.unipile.com\/google-oauth-gmail-api-errors\/\" class=\"goe-link\" target=\"_blank\"><span>common Google OAuth and Gmail API errors and how to fix each one<\/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>.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee class=\"goe-unipile-note\">When OAuth is handled by Unipile, an independent technical intermediary acting on behalf of each authenticated user, these errors are managed at the API layer. Unipile is already CASA Tier 2 certified, so the verification hurdles are handled once, not once per project.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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; max_width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#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@600;700;800&#038;family=JetBrains+Mono:wght@400;500;600&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip,<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip *,<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip *::before,<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip *::after { margin:0 !important; padding:0 !important; box-sizing:border-box !important; border:none !important; outline:none !important; font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif !important; line-height:normal !important; letter-spacing:normal !important; text-transform:none !important; text-decoration:none !important; list-style:none !important; background:transparent !important; float:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip { max-width:1100px !important; margin:40px auto !important; padding:0 24px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-strip { position:relative !important; background:linear-gradient(135deg,#0f2736 0%,#143447 50%,#0f2736 100%) !important; border-radius:18px !important; overflow:hidden !important; box-shadow:0 20px 55px rgba(15,39,54,0.22) !important; padding:32px 48px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-bg-grid { position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; background-image:linear-gradient(rgba(59,185,139,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(59,185,139,0.05) 1px,transparent 1px) !important; background-size:40px 40px !important; pointer-events:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-glow-1 { position:absolute !important; top:-140px !important; right:-100px !important; width:380px !important; height:380px !important; background:radial-gradient(circle,rgba(221,223,76,0.18) 0%,transparent 70%) !important; pointer-events:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-glow-2 { position:absolute !important; bottom:-180px !important; left:-120px !important; width:460px !important; height:460px !important; background:radial-gradient(circle,rgba(59,185,139,0.13) 0%,transparent 70%) !important; pointer-events:none !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-content { position:relative !important; z-index:2 !important; display:grid !important; grid-template-columns:1.1fr 1fr !important; gap:40px !important; align-items:center !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-text { display:flex !important; flex-direction:column !important; gap:14px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-h { font-family:'Poppins',sans-serif !important; font-size:34px !important; font-weight:700 !important; line-height:1.12 !important; color:#ffffff !important; letter-spacing:-0.7px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-h .h-yellow { color:#DDDF4C !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-h .h-strike { color:rgba(255,255,255,0.55) !important; text-decoration:line-through !important; text-decoration-color:rgba(234,67,53,0.75) !important; text-decoration-thickness:3px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-desc { font-size:15px !important; line-height:1.55 !important; color:rgba(255,255,255,0.75) !important; max-width:490px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-buttons { display:flex !important; align-items:center !important; gap:18px !important; flex-wrap:wrap !important; margin-top:4px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-btn-primary { display:inline-flex !important; align-items:center !important; gap:10px !important; padding:14px 24px !important; background:#DDDF4C !important; color:#0F2836 !important; border-radius:10px !important; text-decoration:none !important; font-weight:700 !important; font-size:15px !important; box-shadow:0 12px 28px rgba(15,39,54,0.25) !important; transition:transform 0.2s ease,box-shadow 0.2s ease !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-btn-primary:hover { transform:translateY(-3px) !important; box-shadow:0 16px 32px rgba(15,39,54,0.35) !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-btn-primary svg { width:16px !important; height:16px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-trust-line { display:flex !important; align-items:center !important; gap:8px !important; font-size:12px !important; color:rgba(255,255,255,0.5) !important; font-weight:600 !important; margin-top:2px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-trust-line svg { width:13px !important; height:13px !important; color:#3BB98B !important; flex-shrink:0 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-code-wrap { position:relative !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .casa-badge { position:absolute !important; top:-14px !important; right:-10px !important; z-index:3 !important; display:inline-flex !important; align-items:center !important; gap:6px !important; padding:6px 12px !important; background:#3BB98B !important; color:#ffffff !important; border-radius:20px !important; font-size:10.5px !important; font-weight:700 !important; text-transform:uppercase !important; letter-spacing:0.7px !important; box-shadow:0 8px 20px rgba(59,185,139,0.4) !important; border:2px solid #0f2736 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .casa-badge svg { width:12px !important; height:12px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .cta-code { background:#0d1117 !important; border:1px solid rgba(255,255,255,0.1) !important; border-radius:12px !important; overflow:hidden !important; box-shadow:0 20px 45px rgba(0,0,0,0.45) !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-head { background:rgba(255,255,255,0.04) !important; padding:10px 16px !important; display:flex !important; align-items:center !important; gap:10px !important; border-bottom:1px solid rgba(255,255,255,0.06) !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-dots { display:flex !important; gap:5px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-dot { width:9px !important; height:9px !important; border-radius:50% !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-dot-r { background:#ff5f56 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-dot-y { background:#ffbd2e !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-dot-g { background:#27c93f !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-filename { font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important; color:rgba(255,255,255,0.5) !important; margin-left:4px !important; display:flex !important; align-items:center !important; gap:8px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-lang { background:rgba(59,185,139,0.15) !important; border:1px solid rgba(59,185,139,0.3) !important; color:#3BB98B !important; font-size:8.5px !important; font-weight:700 !important; padding:2px 6px !important; border-radius:3px !important; text-transform:uppercase !important; letter-spacing:0.5px !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-body { padding:14px 18px 16px !important; font-family:'JetBrains Mono',monospace !important; font-size:11.5px !important; line-height:1.7 !important; color:#c9d1d9 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .code-line { display:block !important; white-space:pre !important; font-family:'JetBrains Mono',monospace !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .c-cmt { color:#8b949e !important; font-style:italic !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .c-kw { color:#ff7b72 !important; font-weight:600 !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .c-str { color:#a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-skip-oauth-2.upl-skip-oauth-strip .c-flag { color:#DDDF4C !important; }<!-- [et_pb_line_break_holder] -->@media (max-width:920px) {<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-strip { padding:30px 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-content { grid-template-columns:1fr !important; gap:26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-h { font-size:26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .casa-badge { top:-12px !important; right:8px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width:480px) {<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip { padding:0 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-strip { padding:24px 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-h { font-size:22px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-buttons { flex-direction:column !important; align-items:stretch !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .cta-btn-primary { justify-content:center !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .code-body { font-size:10.5px !important; }<!-- [et_pb_line_break_holder] -->  #upl-skip-oauth-2.upl-skip-oauth-strip .casa-badge { font-size:9.5px !important; padding:5px 10px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-skip-oauth-2\" class=\"upl-skip-oauth-strip\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"cta-strip\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-bg-grid\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-glow-1\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-glow-2\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cta-content\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cta-text\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h2 class=\"cta-h\"><span class=\"h-strike\">Weeks of verification.<\/span><!\u2013- [et_pb_br_holder] -\u2013>Use <span class=\"h-yellow\">Unipile&#8217;s key<\/span> and start now.<\/h2>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"cta-desc\">Don&#8217;t lose customers waiting on Google&#8217;s review. Connect Gmail accounts in 5 minutes with our pre-verified developer credentials.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cta-buttons\"><!-- [et_pb_line_break_holder] -->          <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\" class=\"cta-btn-primary\"><span>Use Unipile&#8217;s Google Key<\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cta-trust-line\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>SOC 2 &#8211; GDPR &#8211; No app review needed<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cta-code-wrap\"><!-- [et_pb_line_break_holder] -->        <span class=\"casa-badge\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><span>CASA Tier 2 Certified<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"cta-code\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"code-head\">\n<div class=\"code-dots\"><span class=\"code-dot code-dot-r\"><\/span><span class=\"code-dot code-dot-y\"><\/span><span class=\"code-dot code-dot-g\"><\/span><\/div>\n<p><span class=\"code-filename\"><span>connect-gmail.sh<\/span><span class=\"code-lang\">curl<\/span><\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"code-body\"><span class=\"code-line\"><span class=\"c-cmt\"># No Google Cloud Console. No review.<\/span><\/span><span class=\"code-line\"><span class=\"c-cmt\"># Connect any Gmail account in 5 min.<\/span><\/span><span class=\"code-line\"> <\/span><span class=\"code-line\"><span class=\"c-kw\">curl<\/span> -X POST <span class=\"c-str\">&#8220;https:\/\/api.unipile.com\/v1\/accounts&#8221;<\/span> \\<\/span><span class=\"code-line\">  -H <span class=\"c-str\">&#8220;X-API-KEY: $UNIPILE_KEY&#8221;<\/span> \\<\/span><span class=\"code-line\">  -d <span class=\"c-str\">&#8216;{<\/span><\/span><span class=\"code-line\">    <span class=\"c-str\">&#8220;provider&#8221;: &#8220;GOOGLE_OAUTH&#8221;,<\/span><\/span><span class=\"code-line\">    <span class=\"c-str\">&#8220;use_unipile_credentials&#8221;: <span class=\"c-flag\">true<\/span><\/span><\/span><span class=\"code-line\">  <span class=\"c-str\">}&#8217;<\/span><\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-cmp,<!-- [et_pb_line_break_holder] -->#upl-goa-cmp *,<!-- [et_pb_line_break_holder] -->#upl-goa-cmp *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-cmp *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp {<!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-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] -->\/* Header *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-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(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] -->#upl-goa-cmp .goac-eyebrow-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp 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] -->#upl-goa-cmp .goac-subtitle {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Two-column grid *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-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: 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Column cards *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 8px 32px rgba(15, 39, 54, 0.07) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Column header *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-head {<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !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: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-diy .goac-col-head {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.06) !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 2px solid rgba(234, 67, 53, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-uni .goac-col-head {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 2px solid rgba(59, 185, 139, 0.18) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-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] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-tag {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !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.5px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-tag-complex {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-tag-simple {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->\/* Steps list *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-steps {<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 0 !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  padding-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step:last-child {<!-- [et_pb_line_break_holder] -->  padding-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Vertical connector line between steps *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step-line {<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 11px !important;<!-- [et_pb_line_break_holder] -->  top: 24px !important;<!-- [et_pb_line_break_holder] -->  width: 2px !important;<!-- [et_pb_line_break_holder] -->  bottom: 0 !important;<!-- [et_pb_line_break_holder] -->  background: #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  z-index: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-diy .goac-step-line {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-uni .goac-step-line {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.20) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step:last-child .goac-step-line {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Step dot *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step-dot {<!-- [et_pb_line_break_holder] -->  width: 24px !important;<!-- [et_pb_line_break_holder] -->  height: 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !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] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  z-index: 1 !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-diy .goac-step-dot {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-uni .goac-step-dot {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Step content *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step-content {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  padding-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step-title {<!-- [et_pb_line_break_holder] -->  font-size: 14px !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.45 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-step-meta {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-diy .goac-step-meta {<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-uni .goac-step-meta {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Summary bar *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-summary {<!-- [et_pb_line_break_holder] -->  margin: 0 24px 24px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !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] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-diy .goac-summary {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(234, 67, 53, 0.15) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-uni .goac-summary {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.18) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-summary-icon {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-summary-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-diy .goac-summary-text {<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-col-uni .goac-summary-text {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CASA certification card (Unipile column) *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa {<!-- [et_pb_line_break_holder] -->  margin: 0 24px 24px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.10) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(221, 223, 76, 0.30) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-head {<!-- [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: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-shield {<!-- [et_pb_line_break_holder] -->  width: 32px !important;<!-- [et_pb_line_break_holder] -->  height: 32px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !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] -->#upl-goa-cmp .goac-casa-shield svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #DDDF4C !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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-title {<!-- [et_pb_line_break_holder] -->  font-size: 13px !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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-sub {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-benefits {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-benefit {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-benefit 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] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-casa-benefit-text {<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.55 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Strategic callout *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-callout {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.07) !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 12px 12px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-callout p {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-callout strong {<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Bottom white-label note *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-bottom {<!-- [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: 40px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-bottom-text {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 220px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-bottom-label {<!-- [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: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-bottom-desc {<!-- [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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Compliance disclaimer *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-compliance {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.06) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(59, 185, 139, 0.16) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-compliance p {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-compliance 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] -->\/* CTA primary *\/<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-cta {<!-- [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] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-cta:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-cmp .goac-cta svg {<!-- [et_pb_line_break_holder] -->  width: 15px !important;<!-- [et_pb_line_break_holder] -->  height: 15px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Responsive *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp { padding: 56px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-grid { grid-template-columns: 1fr !important; gap: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-bottom { flex-direction: column !important; gap: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp { padding: 44px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-subtitle { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-bottom { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-bottom-text { min-width: 0 !important; width: 100% !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-cta { width: 100% !important; justify-content: center !important; white-space: normal !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-compliance { padding: 14px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-callout { padding: 16px 18px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-steps { padding: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-summary { margin: 0 16px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-casa { margin: 0 16px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-col-head { flex-wrap: wrap !important; gap: 8px !important; padding: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-col-title { font-size: 15px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-step-title { font-size: 13px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-casa { padding: 14px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-casa-head { gap: 8px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 320px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp { padding: 36px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-steps { padding: 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-summary { margin: 0 12px 16px !important; padding: 12px 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-cmp .goac-casa { margin: 0 12px 16px !important; padding: 12px 14px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"diy-vs-managed\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-cmp\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"goac-inner\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goac-eyebrow\"><span class=\"goac-eyebrow-dot\"><\/span><span>Managed Gmail OAuth<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Google OAuth, Simplified: DIY vs managed &#8211; ship now or wait weeks?<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"goac-subtitle\">If your app needs Gmail access for external users, you face two paths: run your own Google Cloud project through the full google oauth app verification process (6-12 weeks), or build on a platform that already carries a CASA Tier 2 certified OAuth key (1-2 days). Here is how each path plays out &#8211; and why they are not mutually exclusive.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- 2-column comparison grid --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goac-grid\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- LEFT: DIY --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goac-col goac-col-diy\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-col-head\"><!-- [et_pb_line_break_holder] -->          <span class=\"goac-col-title\"><span>DIY Google OAuth<\/span><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goac-tag goac-tag-complex\"><span>Complex<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-steps\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>1<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Create Google Developer Console Project<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>2<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Configure OAuth Consent Screen<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>3<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Manage OAuth Scopes<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>4<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Build Token Refresh logic<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>5<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Record Demo Video<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>6<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Submit for Google Verification<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-meta\">2-8 weeks<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>7<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">CASA Security Assessment<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-meta\">~$540-$1k\/yr (self-serve lab) or $15k-$75k (legacy track)<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>8<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Yearly Re-certification<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-summary\"><!-- [et_pb_line_break_holder] -->          <svg class=\"goac-summary-icon\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span class=\"goac-summary-text\"><span>Total time to production: 6-12 weeks<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- RIGHT: Unipile --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goac-col goac-col-uni\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-col-head\"><!-- [et_pb_line_break_holder] -->          <span class=\"goac-col-title\"><span>With Unipile<\/span><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"goac-tag goac-tag-simple\"><span>Simple<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-steps\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>1<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Sign Up &#038; get API token<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-meta\">5 min<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>2<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Use Hosted Auth Link<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-meta\">Instant<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-step\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-dot\"><span>3<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-step-content\"><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-title\">Start sending &#038; receiving<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goac-step-meta\">1-2 days<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- CASA certification card --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-casa\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-casa-head\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-casa-shield\"><!-- [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>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div><!-- [et_pb_line_break_holder] -->              <span class=\"goac-casa-title\">CASA Tier 2 Certified<\/span><!-- [et_pb_line_break_holder] -->              <span class=\"goac-casa-sub\">Unipile&#8217;s OAuth key &#8211; independent technical intermediary<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"goac-casa-benefits\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-casa-benefit\"><!-- [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 class=\"goac-casa-benefit-text\">Unipile has already passed CASA Tier 2 &#8211; no assessment on your side for connections brokered through Unipile<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-casa-benefit\"><!-- [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 class=\"goac-casa-benefit-text\">Access restricted Gmail scopes via Unipile&#8217;s certified key while you run your own review in parallel<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-casa-benefit\"><!-- [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 class=\"goac-casa-benefit-text\">No yearly re-certification overhead on your side for Unipile-brokered connections<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"goac-casa-benefit\"><!-- [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 class=\"goac-casa-benefit-text\">Enterprise-ready compliance from day one &#8211; your own CASA review can proceed in parallel at your pace<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"goac-summary\"><!-- [et_pb_line_break_holder] -->          <svg class=\"goac-summary-icon\" viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span class=\"goac-summary-text\"><span>Total time to production: 1-2 days<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Strategic callout --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goac-callout\"><!-- [et_pb_line_break_holder] -->      <pee><strong>The strategic read:<\/strong> the DIY path makes sense long-term if you want full ownership of your OAuth brand and consent screen. The managed path (Unipile) makes sense when you need to ship now, avoid the 100-user cap, or defer the CASA Tier 2 cost. These paths are not mutually exclusive &#8211; you can build on Unipile today and run your own certification in parallel, then switch to your own credentials (Bring Your Own Credentials) when your app is verified.<\/pee><!-- [et_pb_line_break_holder] -->      <pee style=\"margin-top:10px;font-size:15px;color:#1e293b;\">If your use case is Workspace-only (internal tooling, HR automation, no per-user consent), the server-to-server alternative is a service account with Domain-Wide Delegation &#8211; see our <a href=\"https:\/\/www.unipile.com\/gmail-api-service-account-domain-wide-delegation\/\" style=\"color:#3BB98B;text-decoration:underline;font-weight:600;\">Gmail service account &#038; DWD guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- White-label \/ BYOC bottom --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goac-bottom\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"goac-bottom-text\"><!-- [et_pb_line_break_holder] -->        <span class=\"goac-bottom-label\">Want a full white-label experience?<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"goac-bottom-desc\">Once your own Google Cloud app passes verification, configure Unipile to use your own OAuth credentials. Your users see your consent screen, your brand, your Google project &#8211; Unipile continues acting as an <strong>independent technical intermediary<\/strong> processing requests <strong>on behalf of each authenticated user<\/strong>, now with your verified credentials instead of the shared key.<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <a class=\"goac-cta\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Build Now &#8211; free trial<\/span><\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Compliance disclaimer --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"goac-compliance\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Compliance note:<\/strong> Unipile is an independent technical intermediary, not affiliated with, endorsed by, or sponsored by Google. Unipile&#8217;s Google OAuth client is CASA Tier 2 certified, enabling your users to authorize Gmail access without seeing an &#8220;unverified app&#8221; warning. This is not a workaround for Google&#8217;s security review &#8211; the review still applies if you build your own Google Cloud app; Unipile has already passed it for the connections it brokers on your behalf. Users can revoke access at any time via their Google Account permissions page.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-ship,<!-- [et_pb_line_break_holder] -->#upl-goa-ship *,<!-- [et_pb_line_break_holder] -->#upl-goa-ship *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-ship *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 80px 44px !important;<!-- [et_pb_line_break_holder] -->border-radius:20px;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-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] -->#upl-goa-ship .gsh-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.18) !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] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship 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: #ffffff !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] -->#upl-goa-ship h2 .gsh-accent {<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.80) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* 3 steps *\/<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-steps {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-step {<!-- [et_pb_line_break_holder] -->  background: rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(255,255,255,0.12) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 64px 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 24px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-step-num {<!-- [et_pb_line_break_holder] -->  width: 64px !important;<!-- [et_pb_line_break_holder] -->  height: 64px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.15) !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid rgba(221, 223, 76, 0.35) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !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] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-step-body h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 19px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !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] -->#upl-goa-ship .gsh-step-body p {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.75) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-step-body p + p {<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-step-body a {<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-step-body 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] -->#upl-goa-ship .gsh-step-body code {<!-- [et_pb_line_break_holder] -->  font-family: monospace !important;<!-- [et_pb_line_break_holder] -->  background: rgba(255,255,255,0.10) !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-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #a5d6ff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Code block inside step 1 *\/<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-code-wrap {<!-- [et_pb_line_break_holder] -->  margin-top: 16px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-editor-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: 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] -->#upl-goa-ship .gsh-dot {<!-- [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] -->#upl-goa-ship .gsh-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-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] -->#upl-goa-ship .gsh-pre {<!-- [et_pb_line_break_holder] -->  padding: 18px 20px !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] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-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] -->#upl-goa-ship .sc { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .sk { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .sfn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .ss { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .sw { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !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: 10px 20px !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] -->#upl-goa-ship .gsh-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CTA strip *\/<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-cta-row {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-cta-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] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-cta-primary:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-cta-primary svg {<!-- [et_pb_line_break_holder] -->  width: 15px !important;<!-- [et_pb_line_break_holder] -->  height: 15px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-cta-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: rgba(255,255,255,0.85) !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid rgba(255,255,255,0.25) !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] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-ship .gsh-cta-secondary:hover {<!-- [et_pb_line_break_holder] -->  border-color: rgba(255,255,255,0.60) !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-ship h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-step { grid-template-columns: 1fr !important; gap: 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-step-num { width: 48px !important; height: 48px !important; font-size: 20px !important; border-radius: 12px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-ship { padding: 56px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-step { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-pre { padding: 14px 16px !important; font-size: 12px !important; overflow-x: auto !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-pre code { white-space: pre-wrap !important; word-break: break-all !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-code-wrap { overflow: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-cta-row { flex-direction: column !important; width: 100% !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-cta-primary,<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-cta-secondary { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-ship h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-step-num { width: 40px !important; height: 40px !important; font-size: 17px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-pre { padding: 12px !important; font-size: 11.5px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 320px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-ship { padding: 40px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-ship .gsh-step { padding: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"ship-today\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-ship\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gsh-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gsh-eyebrow\"><span class=\"gsh-eyebrow-dot\"><\/span><span>3-Step Journey<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Test now on Unipile&#8217;s <span class=\"gsh-accent\">certified key<\/span>, certify in parallel, switch when ready<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gsh-intro\">You do not have to choose between shipping fast and owning your Google credentials. Unipile acts as an independent technical intermediary &#8211; its Google OAuth client is already CASA Tier 2 certified &#8211; so your users never see the unverified app warning and there is no 100-user cap. Run your own Google app verification in parallel, then switch to your own credentials (Bring Your Own Credentials) at any time. Here is the 3-step journey.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gsh-steps\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gsh-step\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gsh-step-num\"><span>1<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gsh-step-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<h3>Test on the certified key &#8211; ship in minutes<\/h3>\n<p><!-- [et_pb_line_break_holder] -->          <pee>Create a free Unipile account and generate an API key. Use the hosted auth endpoint to generate a one-link URL for each user. Redirect your user to that URL &#8211; Unipile&#8217;s Google OAuth consent screen (already CASA Tier 2 certified) handles the authorization. Your user never sees an &#8220;unverified app&#8221; warning.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>When authorization completes, Unipile sends a webhook to your server with the linked account ID. From that point your app can read, send, and sync Gmail via Unipile&#8217;s unified API &#8211; <strong>without creating a single Google Cloud project<\/strong>.<\/pee><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gsh-code-wrap\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gsh-editor-bar\"><!-- [et_pb_line_break_holder] -->              <span class=\"gsh-dot gsh-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->              <span class=\"gsh-dot gsh-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->              <span class=\"gsh-dot gsh-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->              <span class=\"gsh-filename\">step1-hosted-auth.js<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gsh-pre\"><code><span class=\"sc\">\/\/ Step 1: generate a one-link auth URL for your user<\/span><!-- [et_pb_line_break_holder] --><span class=\"sk\">const<\/span> <span class=\"sw\">res<\/span> <span class=\"sw\">=<\/span> <span class=\"sk\">await<\/span> <span class=\"sfn\">fetch<\/span><span class=\"sw\">(<\/span><span class=\"ss\">'https:\/\/api.unipile.com\/api\/v1\/hosted\/accounts'<\/span><span class=\"sw\">, {<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"sw\">method:<\/span> <span class=\"ss\">'POST'<\/span><span class=\"sw\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"sw\">headers: {<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"ss\">'X-API-KEY'<\/span><span class=\"sw\">: process.env.UNIPILE_API_KEY,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"ss\">'Content-Type'<\/span><span class=\"sw\">:<\/span> <span class=\"ss\">'application\/json'<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"sw\">},<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"sw\">body:<\/span> <span class=\"sfn\">JSON.stringify<\/span><span class=\"sw\">({<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"sw\">type:<\/span> <span class=\"ss\">'GOOGLE'<\/span><span class=\"sw\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"sw\">name:<\/span> <span class=\"ss\">'user-456'<\/span><span class=\"sw\">,      <\/span><span class=\"sc\">\/\/ your internal user ID<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"sw\">expiresOn:<\/span> <span class=\"ss\">'2027-01-01'<\/span><span class=\"sw\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"sw\">notify_url:<\/span> <span class=\"ss\">'https:\/\/yourapp.com\/webhooks\/unipile'<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"sw\">})<\/span><!-- [et_pb_line_break_holder] --><span class=\"sw\">});<\/span><!-- [et_pb_line_break_holder] --><span class=\"sk\">const<\/span> <span class=\"sw\">{ url } =<\/span> <span class=\"sk\">await<\/span> <span class=\"sw\">res.<\/span><span class=\"sfn\">json<\/span><span class=\"sw\">();<\/span><!-- [et_pb_line_break_holder] --><span class=\"sc\">\/\/ Redirect the user to `url` - Unipile's certified consent screen handles the rest.<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"gsh-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>User linked &#8211; account_id returned via webhook<\/span><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gsh-step\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gsh-step-num\"><span>2<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gsh-step-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<h3>Run your own Google OAuth verification in parallel<\/h3>\n<p><!-- [et_pb_line_break_holder] -->          <pee>While your product is live and users are active, start your own Google Cloud project setup and submit your app for google oauth app verification. Follow the 5-step credential setup above. If your app uses restricted scopes, initiate your CASA Tier 2 self-serve assessment via a Google-approved lab.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>There is <strong>no urgency<\/strong> to this step while you are on Unipile&#8217;s certified key &#8211; your users are not blocked, they see no warning, and there is no user cap. Run the process at the pace that suits your team: typically 2-4 weeks for sensitive scopes, 4-12 weeks if CASA Tier 2 is needed.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>For scope selection guidance, see our <a href=\"\/gmail-api-scopes-guide\/\">Gmail API Scopes Guide<\/a> &#8211; choosing minimal scopes can move you from the restricted (CASA-required) track to the sensitive (free review) track, saving time and cost.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gsh-step\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gsh-step-num\"><span>3<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gsh-step-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<h3>Switch to your own credentials (BYOC) &#8211; one config change<\/h3>\n<p><!-- [et_pb_line_break_holder] -->          <pee>Once your Google Cloud app is verified and you have your own <code>client_id<\/code> and <code>client_secret<\/code>, configure Unipile to use your own OAuth credentials for new account connections. This is the Bring Your Own Credentials (BYOC) model: Unipile continues acting as an <strong>independent technical intermediary<\/strong> processing requests on behalf of each authenticated user, now using your verified credentials instead of the shared key.<\/pee><!-- [et_pb_line_break_holder] -->          <pee>Existing linked accounts remain active. The switch affects only new authorizations. Your users see your verified app name on the consent screen, replacing the Unipile-branded screen. You chose when to invest in verification &#8211; not on day one, when you needed to ship.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gsh-cta-row\"><!-- [et_pb_line_break_holder] -->      <a class=\"gsh-cta-primary\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Start building &#8211; free account<\/span><\/a><!-- [et_pb_line_break_holder] -->      <a class=\"gsh-cta-secondary\" href=\"https:\/\/developer.unipile.com\/docs\/hosted-auth\" target=\"_blank\" rel=\"noopener\"><span>Read the hosted auth docs<\/span><\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-msft,<!-- [et_pb_line_break_holder] -->#upl-goa-msft *,<!-- [et_pb_line_break_holder] -->#upl-goa-msft *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-msft *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft {<!-- [et_pb_line_break_holder] -->  padding: 72px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-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] -->#upl-goa-msft .gms-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(0, 120, 212, 0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #0078d4 !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] -->#upl-goa-msft .gms-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #0078d4 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft 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] -->#upl-goa-msft .gms-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->#upl-goa-msft .gms-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: 24px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-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] -->#upl-goa-msft .gms-card-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] -->#upl-goa-msft .gms-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] -->#upl-goa-msft .gms-logo-google {<!-- [et_pb_line_break_holder] -->  background: rgba(234, 67, 53, 0.10) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-logo-msft {<!-- [et_pb_line_break_holder] -->  background: rgba(0, 120, 212, 0.10) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-provider-logo img {<!-- [et_pb_line_break_holder] -->  width: 24px !important;<!-- [et_pb_line_break_holder] -->  height: 24px !important;<!-- [et_pb_line_break_holder] -->  object-fit: contain !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card-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] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card p {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card p + p {<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card ul {<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card ul li {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  padding-left: 16px !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card ul li::before {<!-- [et_pb_line_break_holder] -->  content: '' !important;<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 0 !important;<!-- [et_pb_line_break_holder] -->  top: 8px !important;<!-- [et_pb_line_break_holder] -->  width: 5px !important;<!-- [et_pb_line_break_holder] -->  height: 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card-google ul li::before {<!-- [et_pb_line_break_holder] -->  background: #EA4335 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card-msft ul li::before {<!-- [et_pb_line_break_holder] -->  background: #0078d4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-card strong {<!-- [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] -->#upl-goa-msft .gms-callout {<!-- [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] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-callout p {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-callout p + p {<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-callout strong {<!-- [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] -->#upl-goa-msft .gms-callout 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] -->#upl-goa-msft .gms-cta-inline {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-cta-inline:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-msft .gms-cta-inline svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-msft h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-msft .gms-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-msft { padding: 48px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-msft h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-msft .gms-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-msft .gms-callout { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-msft .gms-cta-inline { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-msft .gms-card { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-msft h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"microsoft-contrast\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-msft\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gms-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gms-eyebrow\"><span class=\"gms-eyebrow-dot\"><\/span><span>Microsoft OAuth<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Microsoft is different: why Azure doesn&#8217;t need a CASA-style review<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gms-intro\">If your application needs to access both Gmail and Outlook, the verification burden is asymmetric. Google OAuth app verification &#8211; including a potential CASA Tier 2 audit &#8211; applies only to Google. Microsoft Azure&#8217;s approach to app registration and OAuth consent is architecturally different and does not require an equivalent external security audit.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gms-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gms-card gms-card-google\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gms-card-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gms-provider-logo gms-logo-google\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail logo\" width=\"24\" height=\"24\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <span class=\"gms-card-title\">Google \/ Gmail &#8211; verification required<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Any app that requests sensitive or restricted Gmail scopes from external users must pass Google&#8217;s security assessment. Restricted scopes additionally require CASA Tier 2.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Unverified app warning shown to users<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Hard 100-user cap until verified<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>CASA Tier 2 required for restricted scopes (~$540-$1k self-serve)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Re-review required when adding new sensitive scopes<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Timeline: 2-12+ weeks depending on scope tier<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gms-card gms-card-msft\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gms-card-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"gms-provider-logo gms-logo-msft\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook logo\" width=\"24\" height=\"24\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <span class=\"gms-card-title\">Microsoft \/ Outlook &#8211; no CASA equivalent<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Azure Active Directory (now Microsoft Entra ID) uses an admin consent model for high-privilege scopes. There is no external CASA-style audit requirement for standard mail access scopes.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>No unverified app warning for standard flows<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>No user cap during development<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>No mandatory external security audit<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Admin consent required for tenant-wide permissions in enterprise tenants<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Microsoft 365 covers both personal Outlook and enterprise Exchange Online via the same OAuth flow<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gms-callout\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Practical implication for multi-provider apps:<\/strong> if you are building a product that reads email from both Gmail and Outlook accounts, your Google OAuth app verification timeline governs your launch date &#8211; not Microsoft&#8217;s. This is one of the strongest arguments for using Unipile&#8217;s unified API: both providers are handled through a single integration, and Unipile&#8217;s certified key covers Google&#8217;s CASA Tier 2 requirement out of the box, removing it from your critical path entirely.<\/pee><!-- [et_pb_line_break_holder] -->      <pee>For a deep-dive on the Microsoft side of this equation &#8211; including Azure app registration, consent flows, and Microsoft Graph API access &#8211; see our <a href=\"\/microsoft-graph-oauth-email\/\">Microsoft Graph OAuth guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a class=\"gms-cta-inline\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>One managed OAuth<\/span><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-comp,<!-- [et_pb_line_break_holder] -->#upl-goa-comp *,<!-- [et_pb_line_break_holder] -->#upl-goa-comp *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-comp *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 72px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-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] -->#upl-goa-comp .gco-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(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] -->#upl-goa-comp .gco-eyebrow-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp 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] -->#upl-goa-comp .gco-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->#upl-goa-comp .gco-blocks {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-block {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-block-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: 6px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !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.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-block h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-block p {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.78) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.78 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-block 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] -->#upl-goa-comp .gco-cta-inline {<!-- [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: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-cta-inline:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-goa-comp .gco-cta-inline svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-comp h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-comp { padding: 48px 16px !important; overflow-x: hidden !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-comp h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-comp .gco-intro { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-comp .gco-block { padding: 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-comp .gco-cta-inline { width: 100% !important; justify-content: center !important; white-space: normal !important; text-align: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-comp h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-comp .gco-block { padding: 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"compliance-google\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-comp\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"gco-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gco-eyebrow\"><span class=\"gco-eyebrow-dot\"><\/span><span>Data Handling &#038; Compliance<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>How Unipile handles your data<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"gco-intro\">Unipile is an independent technical intermediary. The following three notes explain exactly how data flows, what Unipile stores, and what your responsibilities are as a customer &#8211; in the context of Google OAuth and Gmail API access.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gco-blocks\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gco-block\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gco-block-eyebrow\"><span>Data Handling Note<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>What Unipile stores &#8211; and what it does not<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Unipile does not maintain a parallel archive or independent copy of your users&#8217; Gmail data. When your application requests email data via the Unipile API, Unipile retrieves it from Google&#8217;s servers <strong>on behalf of the authenticated user<\/strong> and returns it to your application. Data is scoped strictly to the session of the authenticated user and the permissions they granted during the OAuth flow. Unipile does not retain message content beyond what is necessary to fulfill the API response.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gco-block\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gco-block-eyebrow\"><span>How Unipile Operates<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Independent technical intermediary &#8211; not a Google partner<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Unipile operates as an <strong>independent technical intermediary<\/strong>, acting on behalf of each authenticated user who has granted access via the OAuth consent screen. Unipile is <strong>not affiliated with, endorsed by, or sponsored by Google<\/strong>. Unipile does not share credentials between users &#8211; each linked account uses its own OAuth tokens, scoped to that user&#8217;s authorization. Your application accesses Gmail data only for users who have explicitly completed the OAuth flow and granted the requested permissions.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gco-block\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gco-block-eyebrow\"><span>Platform Limits &#038; Responsible Use<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Google&#8217;s rate limits apply &#8211; usage decisions are yours<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Unipile relays Google&#8217;s Gmail API rate limits and quota constraints to your application. The Gmail API enforces per-user quotas (e.g. 250 quota units per second per user, 1,000,000,000 quota units per day per project). Unipile surfaces these limits but does not override them. Decisions about request cadence, data volume, and user consent scope remain a <strong>customer-side decision<\/strong>. You are responsible for ensuring your application&#8217;s use of Gmail data complies with Google&#8217;s API Terms of Service and your users&#8217; expectations as disclosed in your privacy policy.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee style=\"font-size:15px;color:#383838;line-height:1.75;margin-bottom:24px;\">For a complete overview of email API capabilities &#8211; including send, read, and sync across Gmail, Outlook, and IMAP &#8211; see our <a href=\"\/email-api\/\" style=\"color:#3BB98B;text-decoration:underline;\">Email API guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->    <a class=\"gco-cta-inline\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><span>Build with Unipile<\/span><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||80px||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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;1100px&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-related,<!-- [et_pb_line_break_holder] -->#upl-goa-related *,<!-- [et_pb_line_break_holder] -->#upl-goa-related *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-related *::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] -->  float: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  padding: 72px 24px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-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] -->#upl-goa-related .rel-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(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] -->#upl-goa-related .rel-eyebrow-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] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related 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: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-desc {<!-- [et_pb_line_break_holder] -->  font-size: 17px !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] -->#upl-goa-related .rel-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(6, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-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] -->  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] -->  transition: border-color 0.2s ease, transform 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card:nth-child(1),<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card:nth-child(2),<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card:nth-child(3) {<!-- [et_pb_line_break_holder] -->  grid-column: span 2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card:nth-child(4) {<!-- [et_pb_line_break_holder] -->  grid-column: 2 \/ 4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card:nth-child(5) {<!-- [et_pb_line_break_holder] -->  grid-column: 4 \/ 6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card:hover {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  transform: translateY(-4px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card-tag {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !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] -->  padding: 4px 10px !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.4px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card-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] -->  line-height: 1.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card-desc {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card-arrow {<!-- [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] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-related .rel-card-arrow svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !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] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-related h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(1),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(2),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(3),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(4),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(5) {<!-- [et_pb_line_break_holder] -->    grid-column: span 1 !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] -->  #upl-goa-related { padding: 48px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-desc { font-size: 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-grid { grid-template-columns: 1fr !important; gap: 14px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(1),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(2),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(3),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(4),<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card:nth-child(5) {<!-- [et_pb_line_break_holder] -->    grid-column: span 1 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 375px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-related { padding: 36px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related h2 { font-size: 24px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card { padding: 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-goa-related .rel-card-title { font-size: 15px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"related-guides\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-related\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"rel-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rel-eyebrow\"><span class=\"rel-eyebrow-dot\"><\/span><span>Email API cluster<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Continue building your email stack<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"rel-desc\">Explore the full Unipile email API cluster: from Gmail scopes and OAuth credentials to unified multi-provider sync.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"rel-grid\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <a class=\"rel-card\" href=\"\/gmail-api-scopes-guide\/\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-tag\"><span>Gmail<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-title\"><span>Gmail API Scopes Explained: Choose the Right Permissions<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-desc\"><span>Full reference for every Gmail scope &#8211; which triggers verification, which requires CASA Tier 2, and how to request least privilege.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-arrow\"><span>Read the guide<\/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><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <a class=\"rel-card\" href=\"\/gmail-api-key-vs-oauth\/\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-tag\"><span>Gmail<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-title\"><span>Gmail API Key vs OAuth: Why You Can&#8217;t Skip OAuth<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-desc\"><span>Understand the difference between a Gmail API key and OAuth credentials, and why every user-mailbox feature requires OAuth.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-arrow\"><span>Read the guide<\/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><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <a class=\"rel-card\" href=\"\/oauth-email-api\/\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-tag\"><span>Email API<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-title\"><span>OAuth Email API: Authenticate User Mailboxes the Right Way<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-desc\"><span>How OAuth fits into email API architecture &#8211; sync strategies, provider differences, and unified authentication across Gmail, Outlook, and IMAP.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-arrow\"><span>Read the guide<\/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><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <a class=\"rel-card\" href=\"\/gmail-api-send-email-a-comprehensive-guide-for-developers\/\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-tag\"><span>Gmail<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-title\"><span>Gmail API Send Email: Python and Node.js Examples<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-desc\"><span>Step-by-step code examples for sending email via the Gmail API using Python and Node.js, with full OAuth flow and attachment support.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-arrow\"><span>Read the guide<\/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><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <a class=\"rel-card\" href=\"\/email-api-guide\/\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-tag\"><span>Pillar<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-title\"><span>Email API Guide for Developers: Sync, OAuth and Code<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-desc\"><span>The complete developer guide to email API integration &#8211; covers unified email sync, OAuth flows, rate limits, and code examples for all providers.<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"rel-card-arrow\"><span>Read the guide<\/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><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/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.0&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px||80px||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.0&#8243; background_color=&#8221;transparent&#8221; max_width=&#8221;100%&#8221; custom_padding=&#8221;0px||0px||false|false&#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.0&#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;]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] --><meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] --><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] --><title>Unipile &#8211; Google OAuth for Developers FAQ<\/title><!-- [et_pb_line_break_holder] --><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\"><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body style=\"background:#ffffff;margin:0;\"><!-- [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\": \"How do I know if my app needs Google OAuth verification?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Your app needs Google OAuth app verification if it is set to External user type on the OAuth consent screen and requests any sensitive or restricted Gmail scopes from users outside your own Google Workspace organization. If your app only requests basic scopes (openid, email, profile) or is set to Internal, no verification is required. Any scope that grants access to the contents of a user's mailbox - such as gmail.readonly, gmail.send, gmail.modify, or mail.google.com - is considered sensitive or restricted and triggers the verification requirement.\"<!-- [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 long does Google app verification take?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Google app verification timeline depends on which scopes your app requests. Brand verification (non-sensitive scopes) takes 2-3 business days. Sensitive scope review (gmail.send, gmail.readonly, gmail.modify) typically takes 2-4 weeks when your submission is complete. If your app uses restricted scopes (mail.google.com), you also need a CASA Tier 2 security assessment, bringing the total timeline to 4-12+ weeks. Incomplete submissions - missing privacy policy, vague scope justifications, mismatched domains - restart the clock.\"<!-- [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 much does Google OAuth verification cost?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Google's own security assessment (for sensitive scopes like gmail.send and gmail.readonly) is free. Brand verification is also free. If your app uses restricted scopes (mail.google.com), you need a CASA Tier 2 audit conducted by a Google-approved lab. The 2026 self-serve CASA Tier 2 path costs approximately $540-$1,000 in lab fees. The legacy manually-driven security assessment previously required for the same scope class cost $15,000-$75,000 and took months - that legacy track still applies to some edge cases.\"<!-- [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 skip Google app verification?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"You cannot skip Google app verification for a production app serving external users with sensitive Gmail scopes - the 100-user cap and the unverified app warning screen apply until your app is verified. The compliant alternatives are: (1) set your app to Internal if it only serves your own Google Workspace users, (2) use Unipile's already CASA Tier 2 certified OAuth key while your own verification is in progress, or (3) request only non-sensitive scopes that do not trigger verification. Creating multiple Google Cloud projects to spread users across them is explicitly prohibited by Google's policies.\"<!-- [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 does my app show the 'This app isn't verified' warning?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"The 'This app isn't verified' warning appears when your OAuth consent screen is set to External user type and your app requests sensitive or restricted Gmail scopes but has not yet passed Google's verification process. The warning is shown to all users until your app is verified. To resolve it: submit your app for Google OAuth app verification via the Google Cloud Console, or build on a platform like Unipile that provides a pre-verified, CASA Tier 2 certified OAuth key so users never see the warning.\"<!-- [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 is CASA Tier 2 and do I need it?\",<!-- [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 an independent security audit required by Google for apps that request restricted scopes - primarily the mail.google.com scope, which grants full IMAP-level Gmail access. It is conducted by a Google-approved lab. In 2026 a self-serve path is available at approximately $540-$1,000 via approved labs. You need CASA Tier 2 only if your app requests the mail.google.com scope from external users. If you use only sensitive scopes (gmail.send, gmail.readonly, gmail.modify), CASA Tier 2 is not required - only Google's standard security assessment applies.\"<!-- [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 is the difference between a Gmail API key and OAuth credentials?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"A Gmail API key is used for public, non-user-specific data and does not grant access to any user's mailbox. Gmail OAuth credentials (a client_id and client_secret) are used to obtain permission from individual users to access their Gmail data on their behalf. For any feature that reads, sends, or modifies a user's email, you need OAuth credentials - not an API key. The Gmail API key is primarily used for read-only access to public Gmail data or certain metadata endpoints that do not require user authorization.\"<!-- [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] --><span id=\"faq-goa\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-goa-faq\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-goa-faq,<!-- [et_pb_line_break_holder] -->#upl-goa-faq *,<!-- [et_pb_line_break_holder] -->#upl-goa-faq *::before,<!-- [et_pb_line_break_holder] -->#upl-goa-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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', sans-serif !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->  max-width: 900px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-header {<!-- [et_pb_line_break_holder] -->  text-align: center !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-title {<!-- [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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-subtitle {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  max-width: 720px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-list {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-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: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item:hover {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 4px 20px rgba(59,185,139,0.08) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item.active {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 8px 30px rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-question {<!-- [et_pb_line_break_holder] -->  width: 100% !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] -->  padding: 22px 24px !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-question-content {<!-- [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: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-number {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 28px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.8rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !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] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item.active .upl-faq-number {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.2) !important;<!-- [et_pb_line_break_holder] -->  color: #2a9d6e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-question-text {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 1.05rem !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] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-icon {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 32px !important;<!-- [et_pb_line_break_holder] -->  height: 32px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !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] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item:hover .upl-faq-icon {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.1) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item:hover .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item.active .upl-faq-icon {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  transform: rotate(45deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item.active .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-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.4s ease !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-item.active .upl-faq-answer {<!-- [et_pb_line_break_holder] -->  max-height: 800px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-answer-content {<!-- [et_pb_line_break_holder] -->  padding: 4px 24px 24px 74px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-answer-content p {<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-answer-content strong {<!-- [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] -->#upl-goa-faq .upl-faq-answer-content 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] -->#upl-goa-faq .upl-faq-answer-content code {<!-- [et_pb_line_break_holder] -->  font-family: 'JetBrains Mono', 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->  background: #f1f5f9 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 3px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.85em !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-cta {<!-- [et_pb_line_break_holder] -->  margin-top: 40px !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: 20px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px 28px !important;<!-- [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: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-cta-text {<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-cta-button {<!-- [et_pb_line_break_holder] -->  display: inline-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: 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: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-cta-button:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-goa-faq .upl-faq-cta-button svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* === Tablet === *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* === Mobile === *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-faq {<!-- [et_pb_line_break_holder] -->    padding: 48px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-header {<!-- [et_pb_line_break_holder] -->    margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-subtitle {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-question {<!-- [et_pb_line_break_holder] -->    padding: 16px 16px !important;<!-- [et_pb_line_break_holder] -->    gap: 12px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-question-content {<!-- [et_pb_line_break_holder] -->    gap: 10px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-number {<!-- [et_pb_line_break_holder] -->    width: 30px !important;<!-- [et_pb_line_break_holder] -->    height: 24px !important;<!-- [et_pb_line_break_holder] -->    font-size: 0.72rem !important;<!-- [et_pb_line_break_holder] -->    margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-question-text {<!-- [et_pb_line_break_holder] -->    font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-icon {<!-- [et_pb_line_break_holder] -->    width: 28px !important;<!-- [et_pb_line_break_holder] -->    height: 28px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-icon svg {<!-- [et_pb_line_break_holder] -->    width: 14px !important;<!-- [et_pb_line_break_holder] -->    height: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* R\u00e9ponse align\u00e9e sur le texte de la question (16 + 30 + 10 = 56px) *\/<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-answer-content {<!-- [et_pb_line_break_holder] -->    padding: 2px 16px 18px 56px !important;<!-- [et_pb_line_break_holder] -->    font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-answer-content p {<!-- [et_pb_line_break_holder] -->    font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-cta {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: stretch !important;<!-- [et_pb_line_break_holder] -->    padding: 20px !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->    text-align: left !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-cta-button {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* === Small mobile === *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-goa-faq {<!-- [et_pb_line_break_holder] -->    padding: 40px 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-title {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-question {<!-- [et_pb_line_break_holder] -->    padding: 14px 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-answer-content {<!-- [et_pb_line_break_holder] -->    padding: 2px 14px 16px 52px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-goa-faq .upl-faq-cta {<!-- [et_pb_line_break_holder] -->    padding: 18px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-header\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"upl-faq-title\">Google OAuth for Developers FAQ<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"upl-faq-subtitle\">Answers to the most common questions about Google OAuth app verification, Gmail API credentials, and managed OAuth via Unipile.<\/pee><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item active\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"true\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">01<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How do I know if my app needs Google OAuth verification?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Your app needs Google OAuth app verification if it is set to <strong>External<\/strong> user type on the OAuth consent screen and requests any sensitive or restricted Gmail scopes from users outside your own Google Workspace organization. If your app only requests basic scopes (<code>openid<\/code>, <code>email<\/code>, <code>profile<\/code>) or is set to Internal, no verification is required. Any scope that grants access to a user&#8217;s mailbox, such as <code>gmail.readonly<\/code>, <code>gmail.send<\/code>, <code>gmail.modify<\/code>, or <code>mail.google.com<\/code>, is sensitive or restricted and triggers the requirement.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">02<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How long does Google app verification take?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Timeline depends on the scope tier your app uses. <strong>Brand verification<\/strong> (non-sensitive scopes): 2-3 business days. <strong>Sensitive scope review<\/strong> (<code>gmail.send<\/code>, <code>gmail.readonly<\/code>, <code>gmail.modify<\/code>): typically 2-4 weeks when your submission is complete. <strong>CASA Tier 2 + sensitive\/restricted scopes<\/strong> (<code>mail.google.com<\/code>): 4-12+ weeks total. Incomplete submissions, such as missing privacy policy, vague scope justifications, or mismatched authorized domains, restart the clock.<\/pee> Before production, see our <a href=\"\/google-oauth-playground-guide\/#gop-quickstart\" style=\"color:#2aaa7e;font-weight:600;text-decoration:underline;\">testing OAuth scopes in Google OAuth Playground<\/a>.<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">03<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How much does Google OAuth verification cost?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Google&#8217;s own security assessment (for sensitive scopes like <code>gmail.send<\/code> and <code>gmail.readonly<\/code>) is <strong>free<\/strong>. Brand verification is also free. If your app uses restricted scopes (<code>mail.google.com<\/code>), you need a CASA Tier 2 audit by a Google-approved lab. The 2026 self-serve CASA Tier 2 path costs approximately <strong>$540 to $1,000<\/strong> in lab fees. The legacy manually-driven assessment previously required for the same scope class cost <strong>$15,000 to $75,000<\/strong> and that legacy track still applies to some edge cases and grandfathered apps.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">04<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Can I skip Google app verification?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>You cannot skip Google app verification for a production app serving external users with sensitive Gmail scopes. The 100-user cap and unverified app warning apply until your app is verified. The compliant alternatives are: set your app to <strong>Internal<\/strong> (if it only serves your own Workspace users), use <strong>Unipile&#8217;s CASA Tier 2 certified OAuth key<\/strong> while your own verification runs in parallel, or request only non-sensitive scopes that do not trigger verification. Creating multiple Cloud projects to spread users across them is prohibited by Google&#8217;s policies and can result in account suspension.<\/pee> See <a href=\"\/communication-api\/email-api\/gmail-api\/\" style=\"color:#2aaa7e;font-weight:600;text-decoration:underline;\">Unipile&#8217;s managed Gmail API endpoint<\/a>.<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">05<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Why does my app show the &#8220;This app isn&#8217;t verified&#8221; warning?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>The Gmail API unverified app warning appears when your OAuth consent screen is set to External and your app requests sensitive or restricted Gmail scopes but has not yet completed Google&#8217;s verification process. It is shown to all users outside your 100 test users list. To resolve it: submit your app for <a href=\"https:\/\/support.google.com\/cloud\/answer\/13463073\" target=\"_blank\" rel=\"noopener\">Google OAuth app verification<\/a> via the Google Cloud Console, or build on Unipile&#8217;s pre-verified, CASA Tier 2 certified OAuth key. Users connecting via Unipile&#8217;s hosted auth flow never see this warning.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">06<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">What is CASA Tier 2 and do I need it?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee><strong>CASA Tier 2<\/strong> (Cloud Application Security Assessment) is an independent security audit required by Google for apps that request restricted scopes, primarily <code>https:\/\/mail.google.com\/<\/code>, which grants full IMAP-level Gmail access. It is conducted by a Google-approved lab. In 2026 a self-serve path is available at approximately <strong>$540 to $1,000<\/strong>. You only need CASA Tier 2 if your app requests the <code>mail.google.com<\/code> scope from external users. If you use only sensitive scopes (<code>gmail.send<\/code>, <code>gmail.readonly<\/code>, <code>gmail.modify<\/code>), CASA Tier 2 is not required. Google&#8217;s standard free security assessment applies instead.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">07<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">What is the difference between a Gmail API key and OAuth credentials?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>A <strong>Gmail API key<\/strong> is for public, non-user-specific requests and does not grant access to any user&#8217;s mailbox. <strong>Gmail API OAuth credentials<\/strong> (<code>client_id<\/code> + <code>client_secret<\/code>) are used to obtain per-user authorization to access their Gmail data on their behalf. For any feature that reads, sends, or modifies a user&#8217;s email, you need OAuth credentials, not an API key. For a detailed comparison, see our <a href=\"\/gmail-api-key-vs-oauth\/\">Gmail API Key vs OAuth guide<\/a>.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-cta\"><!-- [et_pb_line_break_holder] -->    <pee class=\"upl-faq-cta-text\">Still have questions about Google OAuth app verification or managed Gmail OAuth? Our team is here to help.<\/pee><!-- [et_pb_line_break_holder] -->    <a href=\"#\" class=\"upl-faq-cta-button\" data-upl-crisp=\"1\"><!-- [et_pb_line_break_holder] -->      Talk to an expert<!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><!-- [et_pb_line_break_holder] -->        <polyline points=\"9 18 15 12 9 6\"><\/polyline><!-- [et_pb_line_break_holder] -->      <\/svg><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function initFaq(){<!-- [et_pb_line_break_holder] -->    var faq=document.getElementById('upl-goa-faq');<!-- [et_pb_line_break_holder] -->    if(!faq)return;<!-- [et_pb_line_break_holder] -->    faq.querySelectorAll('.upl-faq-question').forEach(function(btn){<!-- [et_pb_line_break_holder] -->      btn.addEventListener('click',function(){<!-- [et_pb_line_break_holder] -->        var item=btn.closest('.upl-faq-item');<!-- [et_pb_line_break_holder] -->        var isActive=item.classList.contains('active');<!-- [et_pb_line_break_holder] -->        faq.querySelectorAll('.upl-faq-item').forEach(function(i){<!-- [et_pb_line_break_holder] -->          i.classList.remove('active');<!-- [et_pb_line_break_holder] -->          var q=i.querySelector('.upl-faq-question');<!-- [et_pb_line_break_holder] -->          if(q)q.setAttribute('aria-expanded','false');<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        if(!isActive){<!-- [et_pb_line_break_holder] -->          item.classList.add('active');<!-- [et_pb_line_break_holder] -->          btn.setAttribute('aria-expanded','true');<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    var cta=faq.querySelector('.upl-faq-cta-button');<!-- [et_pb_line_break_holder] -->    if(cta){<!-- [et_pb_line_break_holder] -->      cta.addEventListener('click',function(e){<!-- [et_pb_line_break_holder] -->        e.preventDefault();<!-- [et_pb_line_break_holder] -->        if(window.$crisp){<!-- [et_pb_line_break_holder] -->          window.$crisp.push(['do','chat:open']);<!-- [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',initFaq);<!-- [et_pb_line_break_holder] -->  }else{<!-- [et_pb_line_break_holder] -->    initFaq();<!-- [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] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gmail API Unverified App Warning The &#8220;This app isn&#8217;t verified&#8221; warning, the 100-user cap &#038; exemptions Before your app passes Google OAuth app verification, every user who tries to authorize it sees a warning screen. Google also enforces a hard 100-user limit on unverified external apps. Here is exactly what this means and when it [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":278613,"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,81],"tags":[],"post_folder":[],"class_list":["post-258436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-guidelines","category-google-oauth-2-0-integration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Google OAuth Verification &amp; Gmail API Credentials (2026) - Unipile<\/title>\n<meta name=\"description\" content=\"Learn how to integrate Google OAuth 2.0 user authentication into your app for secure login processes and enhanced user experiences.\" \/>\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\/google-oauth-2-0-gebruikersauthenticatie-integreren-in-je-app\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google OAuth Verification &amp; Gmail API Credentials (2026) - Unipile\" \/>\n<meta property=\"og:description\" content=\"Learn how to integrate Google OAuth 2.0 user authentication into your app for secure login processes and enhanced user experiences.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unipile.com\/nl\/google-oauth-2-0-gebruikersauthenticatie-integreren-in-je-app\/\" \/>\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=\"2024-04-17T10:06:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T09:33:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/04\/gm-06-oauth.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=\"24 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/\"},\"author\":{\"name\":\"Damien Girardeau\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\"},\"headline\":\"Google OAuth Verification &#038; Gmail API Credentials (2026)\",\"datePublished\":\"2024-04-17T10:06:50+00:00\",\"dateModified\":\"2026-06-03T09:33:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/\"},\"wordCount\":7444,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/gm-06-oauth.png\",\"articleSection\":[\"API Guidelines\",\"GOOGLE OAUTH 2.0 INTEGRATION\"],\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/\",\"name\":\"Google OAuth Verification & Gmail API Credentials (2026) - Unipile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/gm-06-oauth.png\",\"datePublished\":\"2024-04-17T10:06:50+00:00\",\"dateModified\":\"2026-06-03T09:33:02+00:00\",\"description\":\"Learn how to integrate Google OAuth 2.0 user authentication into your app for secure login processes and enhanced user experiences.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/gm-06-oauth.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/gm-06-oauth.png\",\"width\":2400,\"height\":1600,\"caption\":\"Integrate Google OAuth 2.0 into your app via Unipile. Handle token refresh, scope management and multi-account auth flows.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/integrating-google-oauth-2-0-user-authentication-into-your-app\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.unipile.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google OAuth Verification &#038; Gmail API Credentials (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":"Google OAuth Verificatie &amp; Gmail API-gegevens (2026) - Unipile","description":"Leer hoe u Google OAuth 2.0-gebruikersauthenticatie integreert in uw app voor veilige inlogprocessen en verbeterde gebruikerservaringen.","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\/google-oauth-2-0-gebruikersauthenticatie-integreren-in-je-app\/","og_locale":"nl_NL","og_type":"article","og_title":"Google OAuth Verification & Gmail API Credentials (2026) - Unipile","og_description":"Learn how to integrate Google OAuth 2.0 user authentication into your app for secure login processes and enhanced user experiences.","og_url":"https:\/\/www.unipile.com\/nl\/google-oauth-2-0-gebruikersauthenticatie-integreren-in-je-app\/","og_site_name":"Unipile","article_publisher":"https:\/\/www.facebook.com\/unipilefr","article_published_time":"2024-04-17T10:06:50+00:00","article_modified_time":"2026-06-03T09:33:02+00:00","og_image":[{"width":2400,"height":1600,"url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/04\/gm-06-oauth.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":"24 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#article","isPartOf":{"@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/"},"author":{"name":"Damien Girardeau","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e"},"headline":"Google OAuth Verification &#038; Gmail API Credentials (2026)","datePublished":"2024-04-17T10:06:50+00:00","dateModified":"2026-06-03T09:33:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/"},"wordCount":7444,"publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"image":{"@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/04\/gm-06-oauth.png","articleSection":["API Guidelines","GOOGLE OAUTH 2.0 INTEGRATION"],"inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/","url":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/","name":"Google OAuth Verificatie &amp; Gmail API-gegevens (2026) - Unipile","isPartOf":{"@id":"https:\/\/www.unipile.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#primaryimage"},"image":{"@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/04\/gm-06-oauth.png","datePublished":"2024-04-17T10:06:50+00:00","dateModified":"2026-06-03T09:33:02+00:00","description":"Leer hoe u Google OAuth 2.0-gebruikersauthenticatie integreert in uw app voor veilige inlogprocessen en verbeterde gebruikerservaringen.","breadcrumb":{"@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#primaryimage","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/04\/gm-06-oauth.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/04\/gm-06-oauth.png","width":2400,"height":1600,"caption":"Integrate Google OAuth 2.0 into your app via Unipile. Handle token refresh, scope management and multi-account auth flows."},{"@type":"BreadcrumbList","@id":"https:\/\/www.unipile.com\/integrating-google-oauth-2-0-user-authentication-into-your-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.unipile.com\/"},{"@type":"ListItem","position":2,"name":"Google OAuth Verification &#038; Gmail API Credentials (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\/258436","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=258436"}],"version-history":[{"count":37,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/258436\/revisions"}],"predecessor-version":[{"id":279128,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/posts\/258436\/revisions\/279128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/media\/278613"}],"wp:attachment":[{"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/media?parent=258436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/categories?post=258436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/tags?post=258436"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.unipile.com\/nl\/wp-json\/wp\/v2\/post_folder?post=258436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}