{"id":278929,"date":"2026-05-25T11:49:40","date_gmt":"2026-05-25T09:49:40","guid":{"rendered":"https:\/\/www.unipile.com\/?p=278929"},"modified":"2026-05-25T11:50:32","modified_gmt":"2026-05-25T09:50:32","slug":"gmail-api-anahtari-vs-oauth","status":"publish","type":"post","link":"https:\/\/www.unipile.com\/tr\/gmail-api-key-vs-oauth\/","title":{"rendered":"Gmail API Anahtar\u0131 vs OAuth: Neden OAuth'u Atlayamazs\u0131n\u0131z (ve Bunun Yerine Ne Kullanmal\u0131s\u0131n\u0131z)"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!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; Table of Contents<\/title><!-- [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] --><style><!-- [et_pb_line_break_holder] -->body { background: #f4f5f7; margin: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-toc.utc-wrapper {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  float: none !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] -->}<!-- [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.utc-collapsed .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] -->    max-height: 2000px !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, border-top-color 0.3s ease !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] -->  \/* Etat ferme par defaut sur mobile (CSS-first, evite le flash) *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-mobile-init .utc-grid,<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-collapsed .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-color: transparent !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-mobile-init .utc-toggle svg,<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-collapsed .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-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><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"unipile-toc\" class=\"utc-wrapper utc-mobile-init\"><!-- [et_pb_line_break_holder] -->  <div class=\"utc-card\"><!-- [et_pb_line_break_holder] -->    <div class=\"utc-header\"><!-- [et_pb_line_break_holder] -->      <div class=\"utc-header-left\"><!-- [et_pb_line_break_holder] -->        <div class=\"utc-icon-box\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <span class=\"utc-title\">Table of Contents<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"utc-toggle\" aria-label=\"Toggle table of contents\" aria-expanded=\"false\"><!-- [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><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"utc-grid\"><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 1 - The Basics --><!-- [et_pb_line_break_holder] -->      <div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">The Basics<\/span><!-- [et_pb_line_break_holder] -->        <div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#short-answer\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">01<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">API Key Verdict<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#api-key-does\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">02<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">What API Keys Do<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#why-oauth\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">03<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Why Gmail Needs OAuth<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 2 - Auth Paths --><!-- [et_pb_line_break_holder] -->      <div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Auth Paths<\/span><!-- [et_pb_line_break_holder] -->        <div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#three-paths\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">04<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">3 Auth Paths Compared<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#path-oauth-client\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">05<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Path 1: OAuth Client<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#path-service-account\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">06<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Path 2: Service Account<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 3 - Practical Guide --><!-- [et_pb_line_break_holder] -->      <div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Practical Guide<\/span><!-- [et_pb_line_break_holder] -->        <div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#path-unified-api\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">07<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Path 3: Unified API<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#common-errors\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">08<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Common Errors<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#gmail-scopes\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">09<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Gmail API Scopes<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 4 - Decision + FAQ --><!-- [et_pb_line_break_holder] -->      <div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Decision<\/span><!-- [et_pb_line_break_holder] -->        <div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#decision-tree\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">10<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\"><span>Decision Tree<\/span><span class=\"utc-tag-best\">Best<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#gmail-api-key-vs-oauth-faq\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num utc-num-faq\">FAQ<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">FAQ<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [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] -->  \/\/ Synchronise l'etat (collapsed + label + aria) selon la largeur.<!-- [et_pb_line_break_holder] -->  \/\/ Sur mobile on ferme d'office ; sur desktop l'accordeon n'a pas lieu d'etre.<!-- [et_pb_line_break_holder] -->  function syncToWidth(){<!-- [et_pb_line_break_holder] -->    var isMobile = window.innerWidth <= MOBILE_BP;<!-- [et_pb_line_break_holder] -->    \/\/ On retire la classe d'init CSS des que le JS prend le relais<!-- [et_pb_line_break_holder] -->    toc.classList.remove('utc-mobile-init');<!-- [et_pb_line_break_holder] -->    if (isMobile) {<!-- [et_pb_line_break_holder] -->      toc.classList.add('utc-collapsed');<!-- [et_pb_line_break_holder] -->    } else {<!-- [et_pb_line_break_holder] -->      toc.classList.remove('utc-collapsed');<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    refreshUI();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function refreshUI(){<!-- [et_pb_line_break_holder] -->    var collapsed = toc.classList.contains('utc-collapsed');<!-- [et_pb_line_break_holder] -->    if (toggleLabel) toggleLabel.textContent = collapsed ? 'Show' : 'Hide';<!-- [et_pb_line_break_holder] -->    if (toggleBtn) toggleBtn.setAttribute('aria-expanded', collapsed ? 'false' : 'true');<!-- [et_pb_line_break_holder] -->  }<!-- [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] -->      toc.classList.remove('utc-mobile-init');<!-- [et_pb_line_break_holder] -->      toc.classList.toggle('utc-collapsed');<!-- [et_pb_line_break_holder] -->      refreshUI();<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Init + suivi du resize \/ rotation (sur desktop -> mobile et inverse)<!-- [et_pb_line_break_holder] -->  var lastMobile = null;<!-- [et_pb_line_break_holder] -->  function onResize(){<!-- [et_pb_line_break_holder] -->    var isMobile = window.innerWidth <= MOBILE_BP;<!-- [et_pb_line_break_holder] -->    if (isMobile !== lastMobile) {<!-- [et_pb_line_break_holder] -->      lastMobile = isMobile;<!-- [et_pb_line_break_holder] -->      syncToWidth();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/\/ Etat initial : ferme d'office si mobile au chargement<!-- [et_pb_line_break_holder] -->  if (window.innerWidth <= MOBILE_BP) {<!-- [et_pb_line_break_holder] -->    toc.classList.remove('utc-mobile-init');<!-- [et_pb_line_break_holder] -->    toc.classList.add('utc-collapsed');<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    toc.classList.remove('utc-mobile-init');<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  lastMobile = window.innerWidth <= MOBILE_BP;<!-- [et_pb_line_break_holder] -->  refreshUI();<!-- [et_pb_line_break_holder] -->  window.addEventListener('resize', onResize, { passive: true });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Smooth scroll<!-- [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] -->  \/\/ Scroll-spy<!-- [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_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][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; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!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; Gmail API Hero<\/title><!-- [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] --><style><!-- [et_pb_line_break_holder] -->body { background: #f4f5f7; margin: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-gako-hero,<!-- [et_pb_line_break_holder] -->#upl-gako-hero *,<!-- [et_pb_line_break_holder] -->#upl-gako-hero *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-hero *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero {<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px 50px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !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: 60px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-badge .gako-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-h1 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 44px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.18 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-accent {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-cta-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-cta-primary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #0f2736 !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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-gako-hero .gako-cta-secondary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Code editor *\/<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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] -->  box-shadow: 0 24px 60px rgba(15,39,54,0.18) !important;<!-- [et_pb_line_break_holder] -->  max-width: 100% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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-gako-hero .gako-dot-r { width: 12px !important; height: 12px !important; border-radius: 50% !important; background: #ff5f57 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-dot-y { width: 12px !important; height: 12px !important; border-radius: 50% !important; background: #febc2e !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-dot-g { width: 12px !important; height: 12px !important; border-radius: 50% !important; background: #28c840 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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-gako-hero .gako-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] -->  -webkit-overflow-scrolling: touch !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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-gako-hero .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-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] -->#upl-gako-hero .gako-providers {<!-- [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] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid #e8ecf0 !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-hero .gako-providers-label {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !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] -->#upl-gako-hero .gako-providers img {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-container {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->    gap: 44px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-h1 {<!-- [et_pb_line_break_holder] -->    font-size: 34px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero {<!-- [et_pb_line_break_holder] -->    padding: 50px 20px !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-gako-hero {<!-- [et_pb_line_break_holder] -->    padding: 44px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-h1 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-desc {<!-- [et_pb_line_break_holder] -->    font-size: 15.5px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-actions {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    gap: 10px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-cta-primary,<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-cta-secondary {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-code-wrapper {<!-- [et_pb_line_break_holder] -->    box-shadow: 0 12px 30px rgba(15,39,54,0.16) !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-pre {<!-- [et_pb_line_break_holder] -->    padding: 18px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 11.5px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-editor-ok {<!-- [et_pb_line_break_holder] -->    font-size: 11px !important;<!-- [et_pb_line_break_holder] -->    padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-editor-ok svg {<!-- [et_pb_line_break_holder] -->    margin-top: 2px !important;<!-- [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-gako-hero .gako-h1 {<!-- [et_pb_line_break_holder] -->    font-size: 23px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-hero .gako-pre {<!-- [et_pb_line_break_holder] -->    font-size: 10.5px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-hero\"><!-- [et_pb_line_break_holder] -->  <div class=\"gako-container\"><!-- [et_pb_line_break_holder] -->    <!-- Left: content --><!-- [et_pb_line_break_holder] -->    <div><!-- [et_pb_line_break_holder] -->      <div class=\"gako-badge\"><span class=\"gako-dot\"><\/span><span>Gmail API Authentication<\/span><\/div><!-- [et_pb_line_break_holder] -->      <h2 class=\"gako-h1\">Gmail API Key vs <span class=\"gako-accent\">OAuth<\/span>: Why You Can&#8217;t Skip OAuth<\/h2><!-- [et_pb_line_break_holder] -->      <pee class=\"gako-desc\">Can you use a Google API key to access Gmail? Short answer: no. Gmail API accesses private user data, which means every request needs explicit user consent through OAuth 2.0. This guide covers the exact error you&#8217;ll see if you try an API key, the 3 real authentication paths available today, and how to connect a Gmail mailbox in 3 lines of code using a <a href=\"https:\/\/www.unipile.com\/email-api\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">unified email API<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <div class=\"gako-actions\"><!-- [et_pb_line_break_holder] -->        <span class=\"gako-cta-primary\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\" data-upl-target=\"_blank\"><span>Start building<\/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><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"gako-cta-secondary\" data-upl-link=\"https:\/\/www.unipile.com\/communication-api\/email-api\/duplicate-enhance-your-email-software-with-gmail-api-integration\/\" data-upl-target=\"_self\"><span>Gmail API guide<\/span><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->    <!-- Right: code mockup --><!-- [et_pb_line_break_holder] -->    <div><!-- [et_pb_line_break_holder] -->      <div class=\"gako-code-wrapper\"><!-- [et_pb_line_break_holder] -->        <div class=\"gako-editor-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"gako-dot-r\"><\/span><span class=\"gako-dot-y\"><\/span><span class=\"gako-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"gako-filename\">gmail-auth.js<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"gako-pre\"><code><span class=\"c\">\/\/ Gmail API Key vs OAuth - the verdict<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ ----------------------------------------<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ WRONG: API key does NOT work with Gmail<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">res <\/span><span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"fn\">fetch<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"s\">`https:\/\/gmail.googleapis.com\/gmail\/v1\/<\/span><!-- [et_pb_line_break_holder] --><span class=\"s\">   users\/me\/messages?key=<\/span><span class=\"n\">YOUR_API_KEY<\/span><span class=\"s\">`<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Returns: 401 Login Required<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ CORRECT: OAuth 2.0 access token<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">res <\/span><span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"fn\">fetch<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"s\">'https:\/\/gmail.googleapis.com\/gmail\/v1\/users\/me\/messages'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">{<\/span> <span class=\"w\">headers:<\/span> <span class=\"w\">{<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">'Authorization'<\/span><span class=\"w\">:<\/span> <span class=\"s\">`Bearer <\/span><span class=\"n\">${accessToken}<\/span><span class=\"s\">`<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">}<\/span> <span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ OR skip OAuth entirely - use Unipile<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">mails <\/span><span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"fn\">unipile<\/span><span class=\"w\">.<\/span><span class=\"fn\">email<\/span><span class=\"w\">.<\/span><span class=\"fn\">list<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">{ accountId:<\/span> <span class=\"s\">'linked-account-id'<\/span> <span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">);<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"gako-editor-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>No OAuth boilerplate &#8211; Unipile handles tokens for you<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"gako-providers\"><!-- [et_pb_line_break_holder] -->          <span class=\"gako-providers-label\">Works with<\/span><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail\" width=\"20\" height=\"20\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook\" width=\"20\" height=\"20\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP\" width=\"20\" height=\"20\"><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var el = document.getElementById('upl-gako-hero');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var t = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->      if (!t) return;<!-- [et_pb_line_break_holder] -->      var url = t.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = t.getAttribute('data-upl-target') || '_self';<!-- [et_pb_line_break_holder] -->      if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_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][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; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s1,<!-- [et_pb_line_break_holder] -->#upl-gako-s1 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s1 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s1 *::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] -->#upl-gako-s1 {<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-container {<!-- [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-gako-s1 .s1-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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-badge .s1-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-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-gako-s1 .s1-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-verdict-box {<!-- [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] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-verdict-icon {<!-- [et_pb_line_break_holder] -->  width: 44px !important;<!-- [et_pb_line_break_holder] -->  height: 44px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.15) !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-gako-s1 .s1-verdict-icon svg {<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.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-gako-s1 .s1-verdict-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: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-verdict-text {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.88) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-verdict-text strong {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Error box *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-error-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-error-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] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-error-header {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-dot-r { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #ff5f57 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-dot-y { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #febc2e !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-dot-g { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #28c840 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-file { color: #8b949e !important; font-size: 12px !important; font-family: 'Courier New', monospace !important; margin-left: 4px !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-error-body {<!-- [et_pb_line_break_holder] -->  padding: 18px 20px !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .er { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .em { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .ec { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .ev { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .en { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-error-note {<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.06) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(239,68,68,0.15) !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Definition cards *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-def-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-def-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-gako-s1 .s1-def-card-icon {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  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: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-def-card-icon svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !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-gako-s1 .s1-def-card 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: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-def-card p {<!-- [et_pb_line_break_holder] -->  font-size: 15px !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-gako-s1 .s1-def-card.red-card {<!-- [et_pb_line_break_holder] -->  border-color: rgba(239,68,68,0.25) !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.03) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .s1-def-card.green-card {<!-- [et_pb_line_break_holder] -->  border-color: rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.03) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .icon-red { background: rgba(239,68,68,0.10) !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .icon-red svg { stroke: #ef4444 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .icon-green { background: rgba(59,185,139,0.12) !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s1 .icon-green svg { stroke: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s1 .s1-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s1 .s1-error-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s1 .s1-def-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s1 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s1 .s1-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s1\"><!-- [et_pb_line_break_holder] -->  <div class=\"s1-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"short-answer\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s1-badge\"><span class=\"s1-dot\"><\/span><span>The Short Answer<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s1-h2\">Can You Use an API Key with the Gmail API?<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s1-intro\">If you&#8217;ve built on Google Cloud before, you know API keys work fine for Maps or Translate. So it&#8217;s natural to try the same approach with Gmail. It won&#8217;t work. Here&#8217;s exactly what happens and why &#8211; plus the two-sentence verdict before we go deep.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s1-verdict-box\"><!-- [et_pb_line_break_holder] -->      <div class=\"s1-verdict-icon\"><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><\/div><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <span class=\"s1-verdict-label\">Verdict<\/span><!-- [et_pb_line_break_holder] -->        <pee class=\"s1-verdict-text\"><strong>No. Google API keys cannot authenticate against the Gmail API.<\/strong> Gmail accesses private user data, which requires explicit user consent via OAuth 2.0. There is no flag, no header, no workaround that lets you substitute an API key for an OAuth access token on any Gmail endpoint. The Gmail API will return a <strong>401 Login Required<\/strong> or <strong>403 Daily Limit for Unauthenticated Use Exceeded<\/strong> error every single time.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- The exact errors --><!-- [et_pb_line_break_holder] -->    <div class=\"s1-error-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"s1-error-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"s1-error-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"s1-dot-r\"><\/span><span class=\"s1-dot-y\"><\/span><span class=\"s1-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s1-file\">terminal &#8211; API key attempt<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s1-error-body\"><span class=\"ec\"># Request with API key<\/span><!-- [et_pb_line_break_holder] --><span class=\"em\">GET \/gmail\/v1\/users\/me\/messages<\/span><!-- [et_pb_line_break_holder] --><span class=\"em\">    ?key=AIzaSy&#8230;<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"ec\"># Response<\/span><!-- [et_pb_line_break_holder] --><span class=\"er\">HTTP\/1.1 401 Unauthorized<\/span><!-- [et_pb_line_break_holder] --><span class=\"ev\">{<!-- [et_pb_line_break_holder] -->  &#8220;error&#8221;: {<!-- [et_pb_line_break_holder] -->    &#8220;code&#8221;: <\/span><span class=\"en\">401<\/span><span class=\"ev\">,<!-- [et_pb_line_break_holder] -->    &#8220;message&#8221;: &#8220;Login Required&#8221;,<!-- [et_pb_line_break_holder] -->    &#8220;status&#8221;: &#8220;UNAUTHENTICATED&#8221;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s1-error-note\">401 Login Required &#8211; API key rejected<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s1-error-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"s1-error-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"s1-dot-r\"><\/span><span class=\"s1-dot-y\"><\/span><span class=\"s1-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s1-file\">terminal &#8211; unauthenticated quota hit<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s1-error-body\"><span class=\"ec\"># After repeated unauthenticated calls<\/span><!-- [et_pb_line_break_holder] --><span class=\"em\">GET \/gmail\/v1\/users\/me\/messages<\/span><!-- [et_pb_line_break_holder] --><span class=\"em\">    ?key=AIzaSy&#8230;<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"ec\"># Response<\/span><!-- [et_pb_line_break_holder] --><span class=\"er\">HTTP\/1.1 403 Forbidden<\/span><!-- [et_pb_line_break_holder] --><span class=\"ev\">{<!-- [et_pb_line_break_holder] -->  &#8220;error&#8221;: {<!-- [et_pb_line_break_holder] -->    &#8220;code&#8221;: <\/span><span class=\"en\">403<\/span><span class=\"ev\">,<!-- [et_pb_line_break_holder] -->    &#8220;message&#8221;: &#8220;Daily Limit for Unauthenticated<!-- [et_pb_line_break_holder] -->               Use Exceeded&#8221;,<!-- [et_pb_line_break_holder] -->    &#8220;status&#8221;: &#8220;RESOURCE_EXHAUSTED&#8221;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s1-error-note\">403 Unauthenticated Quota Exceeded<\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Definition cards --><!-- [et_pb_line_break_holder] -->    <div class=\"s1-def-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"s1-def-card red-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"s1-def-card-icon icon-red\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"\/><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <h3>API Key &#8211; Works for public data only<\/h3><!-- [et_pb_line_break_holder] -->        <pee>An API key identifies your Google Cloud project for billing and quota. It works with public APIs (Maps, Translate, YouTube public data) that don&#8217;t touch user accounts. Gmail is never public data.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s1-def-card green-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"s1-def-card-icon icon-green\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <h3>OAuth 2.0 &#8211; Required for Gmail API<\/h3><!-- [et_pb_line_break_holder] -->        <pee>OAuth 2.0 generates a user-specific access token after the user explicitly grants consent. Gmail API reads that token on every request to verify both the user&#8217;s identity and the scope of access approved. No valid access token = no response.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_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; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s2,<!-- [et_pb_line_break_holder] -->#upl-gako-s2 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s2 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s2 *::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] -->#upl-gako-s2 {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-container {<!-- [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-gako-s2 .s2-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-badge .s2-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-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-gako-s2 .s2-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Two-col split *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-split {<!-- [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: 28px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-col-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] -->  margin-bottom: 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: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-col-title svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .col-yes .s2-col-title { color: #2aaa7e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .col-no .s2-col-title { color: #ef4444 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-list-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: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 14px !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-list-item-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] -->  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: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-list-item-icon svg {<!-- [et_pb_line_break_holder] -->  width: 11px !important;<!-- [et_pb_line_break_holder] -->  height: 11px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 3 !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-gako-s2 .icon-ok { background: rgba(59,185,139,0.12) !important; color: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .icon-no { background: rgba(239,68,68,0.10) !important; color: #ef4444 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-list-item 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.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-list-item p 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] -->\/* Callout *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-callout {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-callout svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-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.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s2 .s2-callout p 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] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s2 .s2-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s2 .s2-split { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s2 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s2 .s2-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s2\"><!-- [et_pb_line_break_holder] -->  <div class=\"s2-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"api-key-does\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s2-badge\"><span class=\"s2-dot\"><\/span><span>Concepts<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s2-h2\">What an API Key Actually Does on Google Cloud (and Doesn&#8217;t)<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s2-intro\">API keys and OAuth tokens are two distinct mechanisms that solve two different problems. Confusing them is one of the most common mistakes when starting with Google APIs. Here&#8217;s the clean separation.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s2-split\"><!-- [et_pb_line_break_holder] -->      <div class=\"col-yes\"><!-- [et_pb_line_break_holder] -->        <div class=\"s2-col-title\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>What API keys DO work with<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Google Maps Platform<\/strong> &#8211; Geocoding, Directions, Places (no user account needed)<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Cloud Translation API<\/strong> &#8211; Translating text, detecting languages<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>YouTube Data API<\/strong> &#8211; Reading public video metadata, channels, playlists<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Cloud Vision \/ Natural Language<\/strong> &#8211; ML APIs that process content you upload<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Billing + Quota tracking<\/strong> &#8211; All API key usage is metered against your project<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"col-no\"><!-- [et_pb_line_break_holder] -->        <div class=\"s2-col-title\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"\/><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"\/><\/svg><span>What API keys CANNOT do<\/span><\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-no\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Gmail API<\/strong> &#8211; Reading, sending, or managing any user&#8217;s mailbox<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-no\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Google Calendar API<\/strong> &#8211; Reading or writing any user&#8217;s calendar events<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-no\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Google Drive API<\/strong> &#8211; Accessing, uploading, or listing a user&#8217;s files<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-no\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>Google Workspace Admin SDK<\/strong> &#8211; Any admin-scoped operation on a domain<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s2-list-item\"><!-- [et_pb_line_break_holder] -->          <span class=\"s2-list-item-icon icon-no\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <pee><strong>People API (user data)<\/strong> &#8211; Any endpoint that touches a user&#8217;s contacts or profile<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s2-callout\"><!-- [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] -->      <pee>The rule is simple: <strong>if an API touches a user&#8217;s account data, Google requires that user to authenticate via OAuth 2.0.<\/strong> API keys are project credentials, not user credentials. Gmail API is always user data. No exceptions. This rule applies regardless of whether your app is public or internal to your company.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s3,<!-- [et_pb_line_break_holder] -->#upl-gako-s3 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s3 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s3 *::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] -->#upl-gako-s3 {<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-container {<!-- [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-gako-s3 .s3-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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-badge .s3-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-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-gako-s3 .s3-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-reason-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(3, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-reason-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-reason-num {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 36px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 800 !important;<!-- [et_pb_line_break_holder] -->  color: rgba(59,185,139,0.20) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-reason-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-gako-s3 .s3-reason-card p {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !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] -->\/* Deprecation callout *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-depr-box {<!-- [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: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 22px 26px !important;<!-- [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] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-depr-box svg {<!-- [et_pb_line_break_holder] -->  width: 22px !important;<!-- [et_pb_line_break_holder] -->  height: 22px !important;<!-- [et_pb_line_break_holder] -->  stroke: #ea4335 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-depr-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: #ea4335 !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: 6px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-depr-box 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.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-depr-box p 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] -->\/* Inline CTA *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-cta-strip {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px 28px !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] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-cta-strip p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.88) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-cta-strip p strong {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 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] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !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-gako-s3 .s3-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s3 .s3-cta-btn 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-gako-s3 .s3-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s3 .s3-reason-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s3 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s3 .s3-cta-strip { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s3 .s3-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s3 .s3-cta-btn { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s3\"><!-- [et_pb_line_break_holder] -->  <div class=\"s3-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"why-oauth\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s3-badge\"><span class=\"s3-dot\"><\/span><span>Architecture<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s3-h2\">Why Gmail Requires OAuth 2.0<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s3-intro\">OAuth 2.0 isn&#8217;t a bureaucratic hurdle Google invented to slow you down. It&#8217;s the only technically sound way to grant scoped, revocable, auditable access to private user data. Gmail&#8217;s three core requirements explain why an API key can never substitute.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s3-reason-grid\"><!-- [et_pb_line_break_holder] -->      <div class=\"s3-reason-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"s3-reason-num\">01<\/span><!-- [et_pb_line_break_holder] -->        <h3>User consent is non-negotiable<\/h3><!-- [et_pb_line_break_holder] -->        <pee>Gmail data belongs to the user, not your application. OAuth 2.0 is the mechanism by which a user explicitly says &#8220;yes, this application can read my inbox.&#8221; No consent flow = no access. This is a legal requirement under GDPR and a Google platform policy, not just a technical restriction.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s3-reason-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"s3-reason-num\">02<\/span><!-- [et_pb_line_break_holder] -->        <h3>Scoped, revocable access<\/h3><!-- [et_pb_line_break_holder] -->        <pee>OAuth tokens carry scopes &#8211; precise declarations of what the app can and cannot do (read-only, send, full access). Users can see exactly what access they granted and revoke it at any time from their Google Account settings. An API key grants nothing and can revoke nothing at the user level.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s3-reason-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"s3-reason-num\">03<\/span><!-- [et_pb_line_break_holder] -->        <h3>Token expiry protects users<\/h3><!-- [et_pb_line_break_holder] -->        <pee>Gmail API access tokens expire (typically 1 hour). This means a stolen token is useless after a short window. Your app must silently refresh tokens using a refresh token &#8211; which itself can be revoked. API keys, by contrast, are long-lived project credentials with no user-level revocation mechanism.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s3-depr-box\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <span class=\"s3-depr-label\">Important: Basic Auth deprecated September 2024<\/span><!-- [et_pb_line_break_holder] -->        <pee>Google deprecated username\/password authentication (&#8220;Basic Auth&#8221;) for Gmail in <strong>September 2024<\/strong>. If you have any legacy integration using stored credentials directly, it has stopped working. OAuth 2.0 is the only remaining authentication mechanism for Gmail API &#8211; both for new integrations and migrated ones. <a href=\"https:\/\/support.google.com\/a\/answer\/162106\" target=\"_blank\" rel=\"noopener\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">See Google&#8217;s official announcement<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s3-cta-strip\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Need to handle OAuth for multiple Gmail accounts in your SaaS?<\/strong> Unipile manages the consent screen, token exchange, and silent refresh for every linked account &#8211; so your code never touches a token.<\/pee><!-- [et_pb_line_break_holder] -->      <span class=\"s3-cta-btn\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\" data-upl-target=\"_blank\"><span>Build it with Unipile<\/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><\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var el = document.getElementById('upl-gako-s3');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var t = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->      if (!t) return;<!-- [et_pb_line_break_holder] -->      var url = t.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = t.getAttribute('data-upl-target') || '_self';<!-- [et_pb_line_break_holder] -->      if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!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; Gmail Auth Comparison<\/title><!-- [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] --><style><!-- [et_pb_line_break_holder] -->body { background: #f4f5f7; margin: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-gako-s4,<!-- [et_pb_line_break_holder] -->#upl-gako-s4 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s4 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s4 *::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] -->#upl-gako-s4 {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-container {<!-- [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-gako-s4 .s4-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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-badge .s4-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-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-gako-s4 .s4-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Comparison table *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-table-wrap {<!-- [et_pb_line_break_holder] -->  overflow-x: auto !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] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 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-gako-s4 thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 thead th {<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !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] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 thead th:first-child {<!-- [et_pb_line_break_holder] -->  border-radius: 15px 0 0 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 thead th:last-child {<!-- [et_pb_line_break_holder] -->  border-radius: 0 15px 0 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 thead th.col-highlight {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody tr:nth-child(even) td {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody tr:nth-child(even) td.col-highlight {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody td {<!-- [et_pb_line_break_holder] -->  padding: 14px 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody td.col-highlight {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.04) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 tbody td.row-label {<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .ok-icon {<!-- [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] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .ok-icon 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] -->#upl-gako-s4 .no-icon {<!-- [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] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .no-icon svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.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] -->#upl-gako-s4 .partial-icon {<!-- [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] -->  color: #f59e0b !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .partial-icon svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #f59e0b !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] -->#upl-gako-s4 .s4-note {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 4px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ===== MOBILE CARDS (hidden on desktop) ===== *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-cards {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-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] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card:last-child {<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-head {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 18px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card.is-highlight .s4-card-head {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-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: #ffffff !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-tag {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  margin-top: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 10px !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] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  background: rgba(255,255,255,0.18) !important;<!-- [et_pb_line_break_holder] -->  padding: 3px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 5px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-row {<!-- [et_pb_line_break_holder] -->  padding: 13px 18px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card.is-highlight .s4-card-row {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.04) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-row:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-label {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !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.3px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 5px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s4 .s4-card-value {<!-- [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.55 !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-gako-s4 .s4-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 .s4-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 .s4-intro { font-size: 15.5px !important; }<!-- [et_pb_line_break_holder] -->  \/* Switch table -> cards *\/<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 .s4-table-wrap { display: none !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 .s4-cards { display: block !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s4 .s4-h2 { font-size: 22px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s4\"><!-- [et_pb_line_break_holder] -->  <div class=\"s4-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"three-paths\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s4-badge\"><span class=\"s4-dot\"><\/span><span>Comparison<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s4-h2\">The 3 Real Authentication Paths for Gmail API<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s4-intro\">Once you&#8217;ve accepted that OAuth is unavoidable, the question becomes: which OAuth path fits your use case? There are three architecturally distinct options &#8211; each with different tradeoffs on complexity, user scope, and maintenance overhead.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- ===== DESKTOP \/ TABLET: TABLE ===== --><!-- [et_pb_line_break_holder] -->    <div class=\"s4-table-wrap\"><!-- [et_pb_line_break_holder] -->      <table><!-- [et_pb_line_break_holder] -->        <thead><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <th>Criterion<\/th><!-- [et_pb_line_break_holder] -->            <th>OAuth 2.0 Client ID (3-legged)<\/th><!-- [et_pb_line_break_holder] -->            <th>Service Account + DWD<\/th><!-- [et_pb_line_break_holder] -->            <th class=\"col-highlight\">Unified API (Unipile)<\/th><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->        <\/thead><!-- [et_pb_line_break_holder] -->        <tbody><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">User consent required?<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes &#8211; per user<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>No (admin delegates)<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes &#8211; via Unipile UI<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Works with personal Gmail?<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>No (Workspace only)<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Multi-tenant SaaS?<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Same Workspace only<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes, built for it<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Token management<\/td><!-- [et_pb_line_break_holder] -->            <td>Your code stores + refreshes tokens<div class=\"s4-note\">High maintenance<\/div><\/td><!-- [et_pb_line_break_holder] -->            <td>Service account JSON key<div class=\"s4-note\">Admin-managed<\/div><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\">Unipile handles all tokens<div class=\"s4-note\">Zero maintenance<\/div><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Google consent screen review?<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Required (sensitive scopes)<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"partial-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"22\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg><span>Admin config only<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Not required<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Also supports Outlook + IMAP?<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Gmail only<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Gmail\/Workspace only<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Gmail, Outlook, IMAP<\/span><\/span><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Time to first email read<\/td><!-- [et_pb_line_break_holder] -->            <td>2-4 hours setup<div class=\"s4-note\">OAuth app + scopes + consent screen<\/div><\/td><!-- [et_pb_line_break_holder] -->            <td>1-2 hours setup<div class=\"s4-note\">Workspace admin required<\/div><\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\">Under 15 minutes<div class=\"s4-note\">API key + linked account<\/div><\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"row-label\">Best for<\/td><!-- [et_pb_line_break_holder] -->            <td>SaaS apps connecting external users&#8217; Gmail<\/td><!-- [et_pb_line_break_holder] -->            <td>Internal Workspace tooling for your org<\/td><!-- [et_pb_line_break_holder] -->            <td class=\"col-highlight\">Any email API use case &#8211; no OAuth ops<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->        <\/tbody><!-- [et_pb_line_break_holder] -->      <\/table><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- ===== MOBILE: CARDS ===== --><!-- [et_pb_line_break_holder] -->    <div class=\"s4-cards\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Card 1: OAuth Client ID --><!-- [et_pb_line_break_holder] -->      <div class=\"s4-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-head\"><!-- [et_pb_line_break_holder] -->          <div class=\"s4-card-title\">OAuth 2.0 Client ID (3-legged)<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">User consent required?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes &#8211; per user<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Works with personal Gmail?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Multi-tenant SaaS?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Token management<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">Your code stores + refreshes tokens<div class=\"s4-note\">High maintenance<\/div><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Google consent screen review?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Required (sensitive scopes)<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Also supports Outlook + IMAP?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Gmail only<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Time to first email read<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">2-4 hours setup<div class=\"s4-note\">OAuth app + scopes + consent screen<\/div><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Best for<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">SaaS apps connecting external users&#8217; Gmail<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Card 2: Service Account + DWD --><!-- [et_pb_line_break_holder] -->      <div class=\"s4-card\"><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-head\"><!-- [et_pb_line_break_holder] -->          <div class=\"s4-card-title\">Service Account + DWD<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">User consent required?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>No (admin delegates)<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Works with personal Gmail?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>No (Workspace only)<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Multi-tenant SaaS?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Same Workspace only<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Token management<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">Service account JSON key<div class=\"s4-note\">Admin-managed<\/div><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Google consent screen review?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"partial-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"22\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg><span>Admin config only<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Also supports Outlook + IMAP?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Gmail\/Workspace only<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Time to first email read<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">1-2 hours setup<div class=\"s4-note\">Workspace admin required<\/div><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Best for<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">Internal Workspace tooling for your org<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Card 3: Unified API (Unipile) - highlight --><!-- [et_pb_line_break_holder] -->      <div class=\"s4-card is-highlight\"><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-head\"><!-- [et_pb_line_break_holder] -->          <div class=\"s4-card-title\">Unified API (Unipile)<\/div><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-tag\">Recommended<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">User consent required?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes &#8211; via Unipile UI<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Works with personal Gmail?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Multi-tenant SaaS?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Yes, built for it<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Token management<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">Unipile handles all tokens<div class=\"s4-note\">Zero maintenance<\/div><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Google consent screen review?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"no-icon\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><span>Not required<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Also supports Outlook + IMAP?<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\"><span class=\"ok-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Gmail, Outlook, IMAP<\/span><\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Time to first email read<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">Under 15 minutes<div class=\"s4-note\">API key + linked account<\/div><\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s4-card-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-label\">Best for<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s4-card-value\">Any email API use case &#8211; no OAuth ops<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [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][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; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s5,<!-- [et_pb_line_break_holder] -->#upl-gako-s5 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s5 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s5 *::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] -->#upl-gako-s5 {<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-container {<!-- [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-gako-s5 .s5-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-badge .s5-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-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-gako-s5 .s5-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Steps *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-steps {<!-- [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: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-step {<!-- [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: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-step-num {<!-- [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] -->  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] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 800 !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-step h3 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-step p {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-step p a {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Code block *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-code-wrap {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-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-gako-s5 .s5-dot-r { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #ff5f57 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-dot-y { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #febc2e !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-dot-g { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #28c840 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-file { color: #8b949e !important; font-size: 12px !important; font-family: 'Courier New', monospace !important; margin-left: 4px !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-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-gako-s5 .s5-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-gako-s5 .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->\/* inline CTA *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-inline-cta {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.08) !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: 18px 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: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-inline-cta 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.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-inline-cta p strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-inline-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 20px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.88rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !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-gako-s5 .s5-inline-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s5 .s5-inline-cta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 13px !important;<!-- [et_pb_line_break_holder] -->  height: 13px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s5 .s5-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s5 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s5 .s5-inline-cta { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s5 .s5-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s5 .s5-inline-cta-btn { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s5\"><!-- [et_pb_line_break_holder] -->  <div class=\"s5-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"path-oauth-client\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s5-badge\"><span class=\"s5-dot\"><\/span><span>Path 1 of 3<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s5-h2\">Path 1 &#8211; OAuth 2.0 Client ID (Multi-Tenant SaaS)<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s5-intro\">If you&#8217;re building a SaaS product where your customers connect their own Gmail accounts, the OAuth 2.0 authorization code flow is the standard path. This is the 3-legged flow: your app, Google, and the end user. It requires setting up a Google Cloud project and going through the consent screen verification process for sensitive scopes. For a deep dive into the <a href=\"https:\/\/www.unipile.com\/oauth-email-api\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">OAuth flow for email APIs in detail<\/a>, see our dedicated guide.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s5-steps\"><!-- [et_pb_line_break_holder] -->      <div class=\"s5-step\"><!-- [et_pb_line_break_holder] -->        <div class=\"s5-step-num\">01<\/div><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <h3>Create OAuth 2.0 credentials in Google Cloud Console<\/h3><!-- [et_pb_line_break_holder] -->          <pee>Go to APIs &#038; Services > Credentials > Create Credentials > OAuth client ID. Choose &#8220;Web application&#8221;. Configure the authorized redirect URIs for your app. This generates your <code>client_id<\/code> and <code>client_secret<\/code>.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s5-step\"><!-- [et_pb_line_break_holder] -->        <div class=\"s5-step-num\">02<\/div><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <h3>Enable the Gmail API and declare your scopes<\/h3><!-- [et_pb_line_break_holder] -->          <pee>Go to APIs &#038; Services > OAuth consent screen. Add the Gmail scopes you need (e.g. <code>gmail.readonly<\/code>, <code>gmail.send<\/code>). Sensitive and restricted scopes require Google verification &#8211; a process that takes days to weeks.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s5-step\"><!-- [et_pb_line_break_holder] -->        <div class=\"s5-step-num\">03<\/div><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <h3>Redirect users to Google&#8217;s authorization URL<\/h3><!-- [et_pb_line_break_holder] -->          <pee>When a user clicks &#8220;Connect Gmail&#8221; in your app, redirect them to Google with your <code>client_id<\/code>, scopes, and <code>redirect_uri<\/code>. After they approve, Google sends back an authorization code to your redirect URI.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s5-step\"><!-- [et_pb_line_break_holder] -->        <div class=\"s5-step-num\">04<\/div><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <h3>Exchange the code for tokens and store the refresh token<\/h3><!-- [et_pb_line_break_holder] -->          <pee>POST the authorization code to Google&#8217;s token endpoint. You receive an <code>access_token<\/code> (expires ~1h) and a <code>refresh_token<\/code> (long-lived). Store the refresh token securely &#8211; it&#8217;s how you get new access tokens without re-prompting the user.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s5-code-wrap\"><!-- [et_pb_line_break_holder] -->      <div class=\"s5-editor-bar\"><!-- [et_pb_line_break_holder] -->        <span class=\"s5-dot-r\"><\/span><span class=\"s5-dot-y\"><\/span><span class=\"s5-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"s5-file\">gmail-oauth-flow.js<\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s5-pre\"><code><span class=\"k\">const<\/span> <span class=\"w\">{ google } <\/span><span class=\"k\">=<\/span> <span class=\"fn\">require<\/span><span class=\"w\">(<\/span><span class=\"s\">'googleapis'<\/span><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">oauth2Client <\/span><span class=\"k\">=<\/span> <span class=\"k\">new<\/span> <span class=\"w\">google.auth.<\/span><span class=\"fn\">OAuth2<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">process.env.GMAIL_CLIENT_ID,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">process.env.GMAIL_CLIENT_SECRET,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">process.env.GMAIL_REDIRECT_URI<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Step 1: Build the authorization URL<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">authUrl <\/span><span class=\"k\">=<\/span> <span class=\"w\">oauth2Client.<\/span><span class=\"fn\">generateAuthUrl<\/span><span class=\"w\">({<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">access_type:<\/span> <span class=\"s\">'offline'<\/span><span class=\"w\">,<\/span>  <span class=\"c\">\/\/ get refresh token<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">scope: [<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">'https:\/\/www.googleapis.com\/auth\/gmail.readonly'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"s\">'https:\/\/www.googleapis.com\/auth\/gmail.send'<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">]<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">});<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Step 2: Exchange code for tokens (in your callback handler)<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">async function<\/span> <span class=\"fn\">handleCallback<\/span><span class=\"w\">(code) {<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"k\">const<\/span> <span class=\"w\">{ tokens } <\/span><span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"w\">oauth2Client.<\/span><span class=\"fn\">getToken<\/span><span class=\"w\">(code);<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">oauth2Client.<\/span><span class=\"fn\">setCredentials<\/span><span class=\"w\">(tokens);<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"c\">\/\/ Store tokens.refresh_token securely in your DB<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"k\">return<\/span> <span class=\"w\">tokens;<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Step 3: Use the access token to call Gmail API<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">async function<\/span> <span class=\"fn\">listMessages<\/span><span class=\"w\">(accessToken) {<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"k\">const<\/span> <span class=\"w\">gmail <\/span><span class=\"k\">=<\/span> <span class=\"w\">google.<\/span><span class=\"fn\">gmail<\/span><span class=\"w\">({ version:<\/span> <span class=\"s\">'v1'<\/span><span class=\"w\">, auth: oauth2Client });<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"k\">const<\/span> <span class=\"w\">res <\/span><span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"w\">gmail.users.messages.<\/span><span class=\"fn\">list<\/span><span class=\"w\">({ userId:<\/span> <span class=\"s\">'me'<\/span> <span class=\"w\">});<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"k\">return<\/span> <span class=\"w\">res.data.messages;<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">}<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s5-inline-cta\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Maintaining refresh tokens at scale is the #1 pain point<\/strong> in self-managed Gmail OAuth. Token rotation, database migrations, silent failures on expired tokens &#8211; all of this is handled automatically when you use a <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">unified email API provider<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <span class=\"s5-inline-cta-btn\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\" data-upl-target=\"_blank\"><span>Build your Gmail integration<\/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><\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var el = document.getElementById('upl-gako-s5');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var t = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->      if (!t) return;<!-- [et_pb_line_break_holder] -->      var url = t.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = t.getAttribute('data-upl-target') || '_self';<!-- [et_pb_line_break_holder] -->      if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!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; Path 2 Service Account<\/title><!-- [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] --><style><!-- [et_pb_line_break_holder] -->body { background: #f4f5f7; margin: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-gako-s6,<!-- [et_pb_line_break_holder] -->#upl-gako-s6 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s6 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s6 *::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] -->#upl-gako-s6 {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-badge .s6-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-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-gako-s6 .s6-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-layout {<!-- [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: 28px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  align-items: start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Empeche les colonnes Grid de deborder a cause du contenu non-cassable (code en white-space: pre) *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-layout > div {<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-warning-box {<!-- [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: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 22px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-warning-label {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ea4335 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-warning-label svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #ea4335 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-warning-box p {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-warning-box p 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] -->#upl-gako-s6 .s6-limit-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] -->#upl-gako-s6 .s6-limit-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: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 16px !important;<!-- [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: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-limit-item svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #f59e0b !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-limit-item p {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-limit-item p 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] -->\/* Code block *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-code-wrap {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  max-width: 100% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-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-gako-s6 .s6-dot-r { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #ff5f57 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-dot-y { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #febc2e !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-dot-g { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #28c840 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-file { color: #8b949e !important; font-size: 12px !important; font-family: 'Courier New', monospace !important; margin-left: 4px !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-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] -->  -webkit-overflow-scrolling: touch !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-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-gako-s6 .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s6 .s6-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-gako-s6 .s6-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-layout { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-intro { font-size: 15.5px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-warning-box { padding: 16px 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-warning-box p { font-size: 13.5px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-limit-item p { font-size: 13.5px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-pre {<!-- [et_pb_line_break_holder] -->    padding: 18px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 11.5px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-editor-ok {<!-- [et_pb_line_break_holder] -->    font-size: 11px !important;<!-- [et_pb_line_break_holder] -->    padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-editor-ok svg { margin-top: 2px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-h2 { font-size: 22px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s6 .s6-pre { font-size: 10.5px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s6\"><!-- [et_pb_line_break_holder] -->  <div class=\"s6-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"path-service-account\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s6-badge\"><span class=\"s6-dot\"><\/span><span>Path 2 of 3<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s6-h2\">Path 2 &#8211; Service Account + Domain-Wide Delegation (Workspace Internal)<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s6-intro\">If your use case is internal to a Google Workspace organization &#8211; think internal tooling, HR automation, or a company-wide email analytics dashboard &#8211; service accounts with Domain-Wide Delegation (DWD) let you access mailboxes without per-user consent flows. A Workspace admin grants the delegation once. The critical caveat: this path does not work for personal Gmail addresses.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s6-layout\"><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <div class=\"s6-warning-box\"><!-- [et_pb_line_break_holder] -->          <div class=\"s6-warning-label\"><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><span>Hard limit &#8211; read before starting<\/span><\/div><!-- [et_pb_line_break_holder] -->          <pee><strong>Service accounts cannot access personal Gmail accounts (@gmail.com).<\/strong> DWD only works within a Google Workspace domain. If your users sign up with personal Gmail addresses, you must use Path 1 (OAuth Client ID) or Path 3 (Unified API). Attempting DWD on a personal account returns a 403 error.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s6-limit-list\"><!-- [et_pb_line_break_holder] -->          <div class=\"s6-limit-item\"><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><pee><strong>Workspace admin required:<\/strong> DWD must be configured by a Google Workspace admin at admin.google.com. You cannot do this as a developer without admin access.<\/pee><\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s6-limit-item\"><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><pee><strong>JSON key security:<\/strong> The service account JSON key is a long-lived credential. Treat it like a private key &#8211; rotate it regularly and never commit it to source control.<\/pee><\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s6-limit-item\"><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><pee><strong>Scope declaration required:<\/strong> The admin must explicitly approve each Gmail scope during DWD setup. You cannot request scopes at runtime. See <a href=\"https:\/\/support.google.com\/a\/answer\/162106\" target=\"_blank\" rel=\"noopener\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">Google&#8217;s DWD guide<\/a>.<\/pee><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <div class=\"s6-code-wrap\"><!-- [et_pb_line_break_holder] -->          <div class=\"s6-editor-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"s6-dot-r\"><\/span><span class=\"s6-dot-y\"><\/span><span class=\"s6-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"s6-file\">gmail-service-account.py<\/span><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s6-pre\"><code><span class=\"k\">from<\/span> <span class=\"w\">google.oauth2 <\/span><span class=\"k\">import<\/span> <span class=\"w\">service_account<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">from<\/span> <span class=\"w\">googleapiclient.discovery <\/span><span class=\"k\">import<\/span> <span class=\"fn\">build<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Path to your service account JSON key<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">SERVICE_ACCOUNT_FILE <\/span><span class=\"k\">=<\/span> <span class=\"s\">'service-account.json'<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">SCOPES <\/span><span class=\"k\">=<\/span> <span class=\"w\">[<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"s\">'https:\/\/www.googleapis.com\/auth\/gmail.readonly'<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">]<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># Impersonate a user in your Workspace domain<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># (Domain-Wide Delegation must be enabled by admin)<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">def<\/span> <span class=\"fn\">get_gmail_service<\/span><span class=\"w\">(user_email):<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">creds <\/span><span class=\"k\">=<\/span> <span class=\"w\">service_account.Credentials.<\/span><span class=\"fn\">from_service_account_file<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">SERVICE_ACCOUNT_FILE,<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"w\">scopes<\/span><span class=\"k\">=<\/span><span class=\"w\">SCOPES<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"c\"># This is Domain-Wide Delegation: impersonate user<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">delegated_creds <\/span><span class=\"k\">=<\/span> <span class=\"w\">creds.<\/span><span class=\"fn\">with_subject<\/span><span class=\"w\">(user_email)<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"k\">return<\/span> <span class=\"fn\">build<\/span><span class=\"w\">(<\/span><span class=\"s\">'gmail'<\/span><span class=\"w\">,<\/span> <span class=\"s\">'v1'<\/span><span class=\"w\">, credentials<\/span><span class=\"k\">=<\/span><span class=\"w\">delegated_creds)<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\"># List messages for a Workspace user<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">service <\/span><span class=\"k\">=<\/span> <span class=\"fn\">get_gmail_service<\/span><span class=\"w\">(<\/span><span class=\"s\">'alice@yourcompany.com'<\/span><span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">results <\/span><span class=\"k\">=<\/span> <span class=\"w\">service.users().messages().<\/span><span class=\"fn\">list<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">userId<\/span><span class=\"k\">=<\/span><span class=\"s\">'me'<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">).<\/span><span class=\"fn\">execute<\/span><span class=\"w\">()<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s6-editor-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Works only for Workspace users &#8211; never personal @gmail.com<\/span><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [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][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; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; sticky_enabled=&#8221;0&#8243;]<!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; Path 3 Unified API<\/title><!-- [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] --><style><!-- [et_pb_line_break_holder] -->body { background: #f4f5f7; margin: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-gako-s7,<!-- [et_pb_line_break_holder] -->#upl-gako-s7 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s7 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s7 *::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] -->#upl-gako-s7 {<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-badge .s7-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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-gako-s7 .s7-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-layout {<!-- [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: 40px !important;<!-- [et_pb_line_break_holder] -->  align-items: start !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Empeche les colonnes Grid de deborder a cause du contenu non-cassable (code en white-space: pre) *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-layout > div {<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-benefits {<!-- [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] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-benefit-icon {<!-- [et_pb_line_break_holder] -->  width: 34px !important;<!-- [et_pb_line_break_holder] -->  height: 34px !important;<!-- [et_pb_line_break_holder] -->  min-width: 34px !important;<!-- [et_pb_line_break_holder] -->  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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-benefit-icon svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !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] -->#upl-gako-s7 .s7-benefit > div {<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-benefit h3 {<!-- [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: 4px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-benefit 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.65 !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: break-word !important;<!-- [et_pb_line_break_holder] -->  word-wrap: break-word !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-providers-row {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [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] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-providers-row img {<!-- [et_pb_line_break_holder] -->  width: 28px !important;<!-- [et_pb_line_break_holder] -->  height: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-providers-label {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Code block *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-code-wrap {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  max-width: 100% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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-gako-s7 .s7-dot-r { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #ff5f57 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-dot-y { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #febc2e !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-dot-g { width: 10px !important; height: 10px !important; border-radius: 50% !important; background: #28c840 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-file { color: #8b949e !important; font-size: 12px !important; font-family: 'Courier New', monospace !important; margin-left: 4px !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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] -->  -webkit-overflow-scrolling: touch !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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-gako-s7 .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.10) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-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] -->\/* CTA strip *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-cta-strip {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !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: 24px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-cta-text {<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-cta-text 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: #ffffff !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-cta-text 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.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-cta-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-btn-primary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 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] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-btn-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-btn-primary 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] -->#upl-gako-s7 .s7-btn-secondary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !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] -->  border: 2px solid rgba(255,255,255,0.30) !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-btn-secondary:hover {<!-- [et_pb_line_break_holder] -->  border-color: rgba(255,255,255,0.70) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s7 .s7-btn-secondary 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 !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-gako-s7 .s7-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-layout { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-cta-strip { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-intro { font-size: 15.5px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-cta-strip { padding: 22px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-cta-text h3 { font-size: 18px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-btn-primary, #upl-gako-s7 .s7-btn-secondary { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-cta-actions { width: 100% !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-pre {<!-- [et_pb_line_break_holder] -->    padding: 18px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 11.5px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-editor-ok {<!-- [et_pb_line_break_holder] -->    font-size: 11px !important;<!-- [et_pb_line_break_holder] -->    padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-editor-ok svg { margin-top: 2px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-h2 { font-size: 22px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s7 .s7-pre { font-size: 10.5px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s7\"><!-- [et_pb_line_break_holder] -->  <div class=\"s7-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"path-unified-api\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s7-badge\"><span class=\"s7-dot\"><\/span><span>Path 3 of 3 &#8211; Recommended<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s7-h2\">Path 3 &#8211; Unified Email API (Skip the OAuth Boilerplate)<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s7-intro\">If your goal is to read, send, or sync email in a production SaaS application &#8211; and you&#8217;d rather not spend engineering cycles managing OAuth infrastructure &#8211; a unified email API like Unipile abstracts the entire authentication layer. Understand <a href=\"https:\/\/www.unipile.com\/email-sync-api\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">how email sync works under the hood<\/a>, or go straight to the code. This approach also gives you Gmail, Outlook, and IMAP under one API &#8211; no separate integration for each provider.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s7-layout\"><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <div class=\"s7-benefits\"><!-- [et_pb_line_break_holder] -->          <div class=\"s7-benefit\"><!-- [et_pb_line_break_holder] -->            <div class=\"s7-benefit-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->              <h3>No Google Cloud setup required<\/h3><!-- [et_pb_line_break_holder] -->              <pee>No OAuth client ID, no consent screen, no scope review with Google. Unipile&#8217;s own verified OAuth app handles user authorization.<\/pee><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s7-benefit\"><!-- [et_pb_line_break_holder] -->            <div class=\"s7-benefit-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->              <h3>Automatic token rotation<\/h3><!-- [et_pb_line_break_holder] -->              <pee>Access tokens and refresh tokens are managed entirely by Unipile. Your database never stores a Google OAuth token.<\/pee><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s7-benefit\"><!-- [et_pb_line_break_holder] -->            <div class=\"s7-benefit-icon\"><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><\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->              <h3>Works for personal Gmail + Outlook + IMAP<\/h3><!-- [et_pb_line_break_holder] -->              <pee>One API, three provider universes. When you <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">compare email sync API providers<\/a>, cross-provider support is a major differentiator.<\/pee><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s7-benefit\"><!-- [et_pb_line_break_holder] -->            <div class=\"s7-benefit-icon\"><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><\/div><!-- [et_pb_line_break_holder] -->            <div><!-- [et_pb_line_break_holder] -->              <h3>Webhook delivery on new messages<\/h3><!-- [et_pb_line_break_holder] -->              <pee>Instead of polling Gmail&#8217;s API, Unipile pushes new email events to your webhook endpoint in real-time, per linked account.<\/pee><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s7-providers-row\"><!-- [et_pb_line_break_holder] -->          <span class=\"s7-providers-label\">Supported providers:<\/span><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail\" width=\"28\" height=\"28\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook\" width=\"28\" height=\"28\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP\" width=\"28\" height=\"28\"><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <div class=\"s7-code-wrap\"><!-- [et_pb_line_break_holder] -->          <div class=\"s7-editor-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"s7-dot-r\"><\/span><span class=\"s7-dot-y\"><\/span><span class=\"s7-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"s7-file\">unipile-gmail.js<\/span><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s7-pre\"><code><span class=\"c\">\/\/ 3 lines to read a Gmail mailbox via Unipile<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ No OAuth setup, no token management<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">{ UnipileClient } <\/span><span class=\"k\">=<\/span> <span class=\"fn\">require<\/span><span class=\"w\">(<\/span><span class=\"s\">'unipile-node-sdk'<\/span><span class=\"w\">);<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">client <\/span><span class=\"k\">=<\/span> <span class=\"k\">new<\/span> <span class=\"fn\">UnipileClient<\/span><span class=\"w\">({<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">token: process.env.UNIPILE_API_KEY<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">});<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ List emails from a linked Gmail account<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ accountId = the Unipile linked account ID<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">const<\/span> <span class=\"w\">emails <\/span><span class=\"k\">=<\/span> <span class=\"k\">await<\/span> <span class=\"w\">client.email.<\/span><span class=\"fn\">listMessages<\/span><span class=\"w\">({<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">account_id:<\/span> <span class=\"s\">'linked-account-id'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">limit:<\/span> <span class=\"n\">20<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">});<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Send an email on behalf of the linked account<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">await<\/span> <span class=\"w\">client.email.<\/span><span class=\"fn\">send<\/span><span class=\"w\">({<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">account_id:<\/span> <span class=\"s\">'linked-account-id'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">to:<\/span> <span class=\"s\">'recipient@example.com'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">subject:<\/span> <span class=\"s\">'Hello from Unipile'<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"w\">body:<\/span> <span class=\"s\">'No OAuth token in sight.'<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">});<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Works identically for Outlook and IMAP<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">\/\/ Just swap the account_id<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->          <div class=\"s7-editor-ok\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Same code for Gmail, Outlook, and IMAP linked accounts<\/span><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s7-cta-strip\"><!-- [et_pb_line_break_holder] -->      <div class=\"s7-cta-text\"><!-- [et_pb_line_break_holder] -->        <h3>Build your Gmail integration without OAuth ops<\/h3><!-- [et_pb_line_break_holder] -->        <pee>Start with the <a href=\"https:\/\/www.unipile.com\/communication-api\/email-api\/duplicate-enhance-your-email-software-with-gmail-api-integration\/\" style=\"color:#DDDF4C!important;text-decoration:underline!important;\">complete Gmail API integration guide<\/a>, then deploy with Unipile as your auth and sync layer.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s7-cta-actions\"><!-- [et_pb_line_break_holder] -->        <span class=\"s7-btn-primary\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\" data-upl-target=\"_blank\"><span>Start building<\/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><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"s7-btn-secondary\" data-upl-link=\"https:\/\/developer.unipile.com\/docs\/getting-started\" data-upl-target=\"_blank\"><span>View docs<\/span><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var el = document.getElementById('upl-gako-s7');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var t = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->      if (!t) return;<!-- [et_pb_line_break_holder] -->      var url = t.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = t.getAttribute('data-upl-target') || '_self';<!-- [et_pb_line_break_holder] -->      if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_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][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; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s8,<!-- [et_pb_line_break_holder] -->#upl-gako-s8 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s8 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s8 *::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] -->#upl-gako-s8 {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-container {<!-- [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-gako-s8 .s8-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-badge .s8-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-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-gako-s8 .s8-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-error-list {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-error-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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-error-item-header {<!-- [et_pb_line_break_holder] -->  padding: 18px 24px !important;<!-- [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] -->  border-bottom: 1px solid #f0f1f3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-error-code {<!-- [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(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 10px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-error-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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-error-body {<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !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: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-cause-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: 8px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-cause-text {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-cause-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] -->\/* Code block inline *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-code-wrap {<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-code-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 8px 14px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .sd-r { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #ff5f57 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .sd-y { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #febc2e !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .sd-g { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #28c840 !important; flex-shrink: 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .s8-code-pre {<!-- [et_pb_line_break_holder] -->  padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !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-gako-s8 .s8-code-pre code {<!-- [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-gako-s8 .er { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .em { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .ec { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .ev { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s8 .en { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s8 .s8-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s8 .s8-error-body { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s8 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s8 .s8-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s8 .s8-error-item-header { flex-wrap: wrap !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s8\"><!-- [et_pb_line_break_holder] -->  <div class=\"s8-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"common-errors\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s8-badge\"><span class=\"s8-dot\"><\/span><span>Troubleshooting<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s8-h2\">Common Errors When You Try to Use an API Key with Gmail<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s8-intro\">If you&#8217;ve landed on this article because your Gmail API call is failing, here are the two errors you&#8217;ll encounter and exactly what each one means &#8211; with the raw response body so you can recognize them instantly.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s8-error-list\"><!-- [et_pb_line_break_holder] -->      <!-- Error 1: 401 --><!-- [et_pb_line_break_holder] -->      <div class=\"s8-error-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"s8-error-item-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"s8-error-code\">HTTP 401<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s8-error-title\">Login Required \/ UNAUTHENTICATED<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s8-error-body\"><!-- [et_pb_line_break_holder] -->          <div><!-- [et_pb_line_break_holder] -->            <span class=\"s8-cause-label\">What causes it<\/span><!-- [et_pb_line_break_holder] -->            <pee class=\"s8-cause-text\">You sent a request to the Gmail API with either an API key (<code>?key=AIza...<\/code>) or with no authorization at all. Gmail API requires a valid OAuth 2.0 access token in the <code>Authorization: Bearer<\/code> header. <strong>This is the first error you&#8217;ll see<\/strong> when experimenting with an API key for the first time.<\/pee><!-- [et_pb_line_break_holder] -->            <pee class=\"s8-cause-text\" style=\"margin-top:10px!important;\"><strong>Fix:<\/strong> Implement one of the 3 auth paths above. The API key is not the solution &#8211; you need an OAuth access token.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div><!-- [et_pb_line_break_holder] -->            <div class=\"s8-code-wrap\"><!-- [et_pb_line_break_holder] -->              <div class=\"s8-code-bar\"><span class=\"sd-r\"><\/span><span class=\"sd-y\"><\/span><span class=\"sd-g\"><\/span><\/div><!-- [et_pb_line_break_holder] -->              <div class=\"s8-code-pre\"><code><span class=\"er\">HTTP\/1.1 401 Unauthorized<\/span><!-- [et_pb_line_break_holder] --><span class=\"em\">Content-Type: application\/json<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"ev\">{<!-- [et_pb_line_break_holder] -->  \"error\": {<!-- [et_pb_line_break_holder] -->    \"code\": <\/span><span class=\"en\">401<\/span><span class=\"ev\">,<!-- [et_pb_line_break_holder] -->    \"message\": \"Request is missing<!-- [et_pb_line_break_holder] -->      required authentication<!-- [et_pb_line_break_holder] -->      credential. Expected OAuth 2<!-- [et_pb_line_break_holder] -->      access token, login cookie<!-- [et_pb_line_break_holder] -->      or other valid authentication<!-- [et_pb_line_break_holder] -->      credential. See https:\/\/<!-- [et_pb_line_break_holder] -->      developers.google.com\/<!-- [et_pb_line_break_holder] -->      identity\/sign-in\/web\/...\",<!-- [et_pb_line_break_holder] -->    \"status\": \"UNAUTHENTICATED\",<!-- [et_pb_line_break_holder] -->    \"errors\": [{<!-- [et_pb_line_break_holder] -->      \"message\": \"Login Required\",<!-- [et_pb_line_break_holder] -->      \"domain\": \"googleapis.com\",<!-- [et_pb_line_break_holder] -->      \"reason\": \"required\",<!-- [et_pb_line_break_holder] -->      \"location\": \"Authorization\",<!-- [et_pb_line_break_holder] -->      \"locationType\": \"header\"<!-- [et_pb_line_break_holder] -->    }]<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Error 2: 403 --><!-- [et_pb_line_break_holder] -->      <div class=\"s8-error-item\"><!-- [et_pb_line_break_holder] -->        <div class=\"s8-error-item-header\"><!-- [et_pb_line_break_holder] -->          <span class=\"s8-error-code\">HTTP 403<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s8-error-title\">Daily Limit for Unauthenticated Use Exceeded<\/span><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s8-error-body\"><!-- [et_pb_line_break_holder] -->          <div><!-- [et_pb_line_break_holder] -->            <span class=\"s8-cause-label\">What causes it<\/span><!-- [et_pb_line_break_holder] -->            <pee class=\"s8-cause-text\">After repeated unauthenticated requests (even with an API key), Google&#8217;s quota system blocks further unauthenticated calls from your IP or project. This is not a rate limit for authenticated users &#8211; it specifically means <strong>your requests were never authenticated<\/strong> and you&#8217;ve exhausted the tiny free quota for anonymous calls.<\/pee><!-- [et_pb_line_break_holder] -->            <pee class=\"s8-cause-text\" style=\"margin-top:10px!important;\"><strong>Fix:<\/strong> Same as above &#8211; your API key approach will never work. Use OAuth 2.0 access tokens. This error will disappear once your requests carry a valid Bearer token.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->          <div><!-- [et_pb_line_break_holder] -->            <div class=\"s8-code-wrap\"><!-- [et_pb_line_break_holder] -->              <div class=\"s8-code-bar\"><span class=\"sd-r\"><\/span><span class=\"sd-y\"><\/span><span class=\"sd-g\"><\/span><\/div><!-- [et_pb_line_break_holder] -->              <div class=\"s8-code-pre\"><code><span class=\"er\">HTTP\/1.1 403 Forbidden<\/span><!-- [et_pb_line_break_holder] --><span class=\"em\">Content-Type: application\/json<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"ev\">{<!-- [et_pb_line_break_holder] -->  \"error\": {<!-- [et_pb_line_break_holder] -->    \"code\": <\/span><span class=\"en\">403<\/span><span class=\"ev\">,<!-- [et_pb_line_break_holder] -->    \"message\": \"Daily Limit for<!-- [et_pb_line_break_holder] -->      Unauthenticated Use Exceeded.<!-- [et_pb_line_break_holder] -->      Continued use requires<!-- [et_pb_line_break_holder] -->      signup.\",<!-- [et_pb_line_break_holder] -->    \"status\": \"RESOURCE_EXHAUSTED\",<!-- [et_pb_line_break_holder] -->    \"errors\": [{<!-- [et_pb_line_break_holder] -->      \"message\": \"Daily Limit for<!-- [et_pb_line_break_holder] -->        Unauthenticated Use<!-- [et_pb_line_break_holder] -->        Exceeded.\",<!-- [et_pb_line_break_holder] -->      \"domain\": \"usageLimits\",<!-- [et_pb_line_break_holder] -->      \"reason\":<!-- [et_pb_line_break_holder] -->        \"dailyLimitExceededUnreg\"<!-- [et_pb_line_break_holder] -->    }]<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<\/span><\/code><\/div><!-- [et_pb_line_break_holder] -->            <\/div><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s9,<!-- [et_pb_line_break_holder] -->#upl-gako-s9 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s9 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s9 *::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] -->#upl-gako-s9 {<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-container {<!-- [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-gako-s9 .s9-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.18) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-badge .s9-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-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-gako-s9 .s9-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-table-wrap {<!-- [et_pb_line_break_holder] -->  overflow-x: auto !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] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 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-gako-s9 thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 thead th {<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 thead th:first-child { border-radius: 15px 0 0 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s9 thead th:last-child { border-radius: 0 15px 0 0 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s9 tbody tr { border-bottom: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s9 tbody tr:last-child { border-bottom: none !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s9 tbody tr:nth-child(even) td { background: #f8fafc !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s9 tbody td {<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 tbody td.scope-col {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-pill {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 4px !important;<!-- [et_pb_line_break_holder] -->  padding: 3px 9px !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] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .pill-sensitive {<!-- [et_pb_line_break_holder] -->  background: rgba(245,158,11,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #b45309 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .pill-restricted {<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #dc2626 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .pill-basic {<!-- [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] -->\/* Verification callout *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-verification-box {<!-- [et_pb_line_break_holder] -->  background: rgba(245,158,11,0.06) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(245,158,11,0.25) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-verification-box svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: #f59e0b !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-vbox-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: #f59e0b !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: 6px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-verification-box p {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-verification-box p 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] -->\/* inline CTA *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-inline-cta {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.08) !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: 18px 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: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-inline-cta 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.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-inline-cta p strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-icta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 20px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.88rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !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-gako-s9 .s9-icta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s9 .s9-icta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 13px !important;<!-- [et_pb_line_break_holder] -->  height: 13px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 .s9-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 .s9-inline-cta { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 .s9-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 .s9-icta-btn { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 thead th { font-size: 11px !important; padding: 10px 12px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s9 tbody td { font-size: 12px !important; padding: 10px 12px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s9\"><!-- [et_pb_line_break_holder] -->  <div class=\"s9-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"gmail-scopes\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s9-badge\"><span class=\"s9-dot\"><\/span><span>Reference<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s9-h2\">Gmail API Scopes You&#8217;ll Actually Need<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s9-intro\">Once you accept that OAuth is required, scope selection is the next critical decision. Google classifies Gmail scopes into three tiers based on the sensitivity of the data they expose. Requesting more than you need triggers a longer verification process &#8211; and in some cases, a full security assessment by Google.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s9-verification-box\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <div><!-- [et_pb_line_break_holder] -->        <span class=\"s9-vbox-label\">Scope verification tiers<\/span><!-- [et_pb_line_break_holder] -->        <pee><strong>Sensitive scopes<\/strong> (yellow) require Google to review your OAuth consent screen and verify your app&#8217;s privacy policy. <strong>Restricted scopes<\/strong> (red) require a formal security assessment, a video demonstration, and sometimes a third-party security audit. Plan 2-6 weeks minimum for restricted scope approval. If you use Unipile as your auth layer, this verification process falls on Unipile &#8211; not your app.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s9-table-wrap\"><!-- [et_pb_line_break_holder] -->      <table><!-- [et_pb_line_break_holder] -->        <thead><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <th>Scope<\/th><!-- [et_pb_line_break_holder] -->            <th>Access Level<\/th><!-- [et_pb_line_break_holder] -->            <th>Tier<\/th><!-- [et_pb_line_break_holder] -->            <th>Use Case<\/th><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->        <\/thead><!-- [et_pb_line_break_holder] -->        <tbody><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"scope-col\">gmail.readonly<\/td><!-- [et_pb_line_break_holder] -->            <td>Read all messages, threads, labels, settings<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"s9-pill pill-sensitive\">Sensitive<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td>Email analytics, inbox audit tools, CRM sync (read-only)<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"scope-col\">gmail.send<\/td><!-- [et_pb_line_break_holder] -->            <td>Send email on behalf of the user<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"s9-pill pill-sensitive\">Sensitive<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td>Transactional user-side emails, CRM follow-ups, outreach tools<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"scope-col\">gmail.compose<\/td><!-- [et_pb_line_break_holder] -->            <td>Create, read, update, delete drafts; send messages<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"s9-pill pill-sensitive\">Sensitive<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td>Email composer integrations, draft management<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"scope-col\">gmail.modify<\/td><!-- [et_pb_line_break_holder] -->            <td>Read, send, modify (labels, archive) &#8211; no delete<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"s9-pill pill-restricted\">Restricted<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td>Full inbox management, CRM sync with write, archival workflows<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"scope-col\">mail.google.com<\/td><!-- [et_pb_line_break_holder] -->            <td>Full access &#8211; read, write, delete, settings<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"s9-pill pill-restricted\">Restricted<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td>Full-featured email clients, backup tools, admin migration<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->          <tr><!-- [et_pb_line_break_holder] -->            <td class=\"scope-col\">gmail.metadata<\/td><!-- [et_pb_line_break_holder] -->            <td>Message metadata only (no body)<\/td><!-- [et_pb_line_break_holder] -->            <td><span class=\"s9-pill pill-basic\">Non-sensitive<\/span><\/td><!-- [et_pb_line_break_holder] -->            <td>Analytics on email volume, sender\/recipient patterns (no content)<\/td><!-- [et_pb_line_break_holder] -->          <\/tr><!-- [et_pb_line_break_holder] -->        <\/tbody><!-- [et_pb_line_break_holder] -->      <\/table><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s9-inline-cta\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Building a multi-tenant SaaS that needs gmail.modify or mail.google.com?<\/strong> The restricted scope review adds weeks to your launch timeline. With Unipile, you skip the consent screen review entirely &#8211; Unipile&#8217;s verified OAuth app covers the scopes your integration needs.<\/pee><!-- [et_pb_line_break_holder] -->      <span class=\"s9-icta-btn\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\" data-upl-target=\"_blank\"><span>Build with Unipile<\/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><\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var el = document.getElementById('upl-gako-s9');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var t = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->      if (!t) return;<!-- [et_pb_line_break_holder] -->      var url = t.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = t.getAttribute('data-upl-target') || '_self';<!-- [et_pb_line_break_holder] -->      if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-s10,<!-- [et_pb_line_break_holder] -->#upl-gako-s10 *,<!-- [et_pb_line_break_holder] -->#upl-gako-s10 *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-s10 *::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] -->#upl-gako-s10 {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-container {<!-- [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-gako-s10 .s10-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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-badge .s10-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-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-gako-s10 .s10-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.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-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-gako-s10 .s10-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 26px !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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card.card-highlight {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.04) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card-eyebrow {<!-- [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: 10px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card.card-highlight .s10-card-eyebrow {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-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: 12px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.35 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card-q {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card-a {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card-verdict {<!-- [et_pb_line_break_holder] -->  margin-top: auto !important;<!-- [et_pb_line_break_holder] -->  padding-top: 16px !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card.card-highlight .s10-card-verdict {<!-- [et_pb_line_break_holder] -->  border-top-color: rgba(59,185,139,0.30) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-card-verdict-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.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-verdict-pill {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-verdict-pill svg {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !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] -->#upl-gako-s10 .pill-path1 { background: rgba(59,130,246,0.10) !important; color: #2563eb !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .pill-path2 { background: rgba(168,85,247,0.10) !important; color: #7c3aed !important; }<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .pill-path3 { background: rgba(59,185,139,0.12) !important; color: #2aaa7e !important; }<!-- [et_pb_line_break_holder] -->\/* CTA final strip *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-cta {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 40px 40px !important;<!-- [et_pb_line_break_holder] -->  text-align: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-cta h3 {<!-- [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: #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-gako-s10 .s10-final-cta p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.75) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-cta p 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-gako-s10 .s10-final-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-btn-primary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 1rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-btn-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-btn-primary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-btn-secondary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  color: #ffffff !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: 1rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid rgba(255,255,255,0.30) !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-btn-secondary:hover {<!-- [et_pb_line_break_holder] -->  border-color: rgba(255,255,255,0.70) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-final-btn-secondary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Cross-links *\/<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-crosslinks {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(2, 1fr) !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-crosslink {<!-- [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: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 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: 10px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-crosslink:hover {<!-- [et_pb_line_break_holder] -->  background: rgba(255,255,255,0.10) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-crosslink svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !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] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-crosslink-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: rgba(255,255,255,0.80) !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-s10 .s10-crosslink-text strong {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  display: block !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-bottom: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-cards { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-crosslinks { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 { padding: 50px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-final-cta { padding: 32px 24px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-final-btn-primary,<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-final-btn-secondary { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-s10 .s10-final-cta h3 { font-size: 22px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-s10\"><!-- [et_pb_line_break_holder] -->  <div class=\"s10-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"decision-tree\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"s10-badge\"><span class=\"s10-dot\"><\/span><span>Decision Guide<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"s10-h2\">Decision Tree: Which Auth Method for Your Use Case?<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"s10-intro\">Answer three questions and you&#8217;ll know exactly which Gmail API authentication path applies to your project. There&#8217;s no universal answer &#8211; each path solves a different problem. For the full <a href=\"https:\/\/www.unipile.com\/communication-api\/email-api\/duplicate-enhance-your-email-software-with-gmail-api-integration\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">complete Gmail API integration guide<\/a>, continue to the Gmail hub. For <a href=\"https:\/\/www.unipile.com\/microsoft-graph-api-email\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">the equivalent for Outlook \/ Microsoft 365<\/a>, see our Microsoft Graph OAuth guide.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"s10-cards\"><!-- [et_pb_line_break_holder] -->      <!-- SaaS multi-tenant --><!-- [et_pb_line_break_holder] -->      <div class=\"s10-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"s10-card-eyebrow\">Use case A<\/span><!-- [et_pb_line_break_holder] -->        <h3>SaaS app where customers connect their own Gmail<\/h3><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-q\">Are your users external (not your employees)?<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-a\">Yes &#8211; they&#8217;re your customers with personal Gmail or Google Workspace accounts.<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-q\">Do you need to support many different Google domains?<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-a\">Yes &#8211; multi-tenant. Each user connects their own account.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s10-card-verdict\"><!-- [et_pb_line_break_holder] -->          <span class=\"s10-card-verdict-label\">Recommended path<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s10-verdict-pill pill-path1\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Path 1 &#8211; OAuth Client ID<\/span><\/span><!-- [et_pb_line_break_holder] -->          <pee style=\"font-size:13px!important;color:#64748b!important;margin-top:8px!important;line-height:1.5!important;\">Or Path 3 (Unified API) to skip the OAuth infrastructure entirely.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Internal Workspace --><!-- [et_pb_line_break_holder] -->      <div class=\"s10-card\"><!-- [et_pb_line_break_holder] -->        <span class=\"s10-card-eyebrow\">Use case B<\/span><!-- [et_pb_line_break_holder] -->        <h3>Internal tool for your own Google Workspace org<\/h3><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-q\">Are all users on the same Workspace domain (your employees)?<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-a\">Yes &#8211; company.com accounts only. No external Gmail users.<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-q\">Do you have a Workspace admin who can configure DWD?<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-a\">Yes &#8211; admin access available in admin.google.com.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s10-card-verdict\"><!-- [et_pb_line_break_holder] -->          <span class=\"s10-card-verdict-label\">Recommended path<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s10-verdict-pill pill-path2\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Path 2 &#8211; Service Account + DWD<\/span><\/span><!-- [et_pb_line_break_holder] -->          <pee style=\"font-size:13px!important;color:#64748b!important;margin-top:8px!important;line-height:1.5!important;\">No per-user consent flows. Admin delegates once.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Multi-provider SaaS --><!-- [et_pb_line_break_holder] -->      <div class=\"s10-card card-highlight\"><!-- [et_pb_line_break_holder] -->        <span class=\"s10-card-eyebrow\">Use case C &#8211; Most common<\/span><!-- [et_pb_line_break_holder] -->        <h3>SaaS app that needs Gmail + Outlook + IMAP under one API<\/h3><!-- [et_pb_line_break_holder] -->        <div><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-q\">Do your users have a mix of Gmail, Outlook, and IMAP accounts?<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-a\">Yes &#8211; you can&#8217;t predict which provider each user will connect.<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-q\">Do you want to avoid running separate OAuth integrations per provider?<\/pee><!-- [et_pb_line_break_holder] -->          <pee class=\"s10-card-a\">Yes &#8211; managing Google OAuth + Microsoft OAuth + IMAP is too much complexity.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s10-card-verdict\"><!-- [et_pb_line_break_holder] -->          <span class=\"s10-card-verdict-label\">Recommended path<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"s10-verdict-pill pill-path3\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Path 3 &#8211; Unified API (Unipile)<\/span><\/span><!-- [et_pb_line_break_holder] -->          <pee style=\"font-size:13px!important;color:#2aaa7e!important;margin-top:8px!important;line-height:1.5!important;\">One API key. Gmail, Outlook, IMAP. No OAuth ops.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Final CTA --><!-- [et_pb_line_break_holder] -->    <div class=\"s10-final-cta\"><!-- [et_pb_line_break_holder] -->      <h3>Start building your Gmail integration today<\/h3><!-- [et_pb_line_break_holder] -->      <pee>No matter which path you choose, Unipile gives you a <a href=\"https:\/\/www.unipile.com\/email-api\/\" style=\"color:#DDDF4C!important;text-decoration:underline!important;\">unified email API overview<\/a> to understand the architecture before you commit to an approach. Or skip straight to the dashboard and link your first account in minutes.<\/pee><!-- [et_pb_line_break_holder] -->      <div class=\"s10-final-actions\"><!-- [et_pb_line_break_holder] -->        <span class=\"s10-final-btn-primary\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\" data-upl-target=\"_blank\"><span>Build it with Unipile<\/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><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"s10-final-btn-secondary\" data-upl-link=\"https:\/\/developer.unipile.com\/docs\/getting-started\" data-upl-target=\"_blank\"><span>Read the docs<\/span><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->      <div class=\"s10-crosslinks\"><!-- [et_pb_line_break_holder] -->        <div class=\"s10-crosslink\" data-upl-link=\"https:\/\/www.unipile.com\/communication-api\/email-api\/duplicate-enhance-your-email-software-with-gmail-api-integration\/\" data-upl-target=\"_self\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <div class=\"s10-crosslink-text\"><strong>Gmail API integration guide<\/strong>Complete setup, endpoints, and code examples<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s10-crosslink\" data-upl-link=\"https:\/\/www.unipile.com\/oauth-email-api\/\" data-upl-target=\"_self\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <div class=\"s10-crosslink-text\"><strong>OAuth flow for email APIs in detail<\/strong>Deep dive into the authorization code flow<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s10-crosslink\" data-upl-link=\"https:\/\/www.unipile.com\/email-sync-api\/\" data-upl-target=\"_self\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <div class=\"s10-crosslink-text\"><strong>How email sync works under the hood<\/strong>Webhooks, polling, and delta sync explained<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"s10-crosslink\" data-upl-link=\"https:\/\/www.unipile.com\/email-api-providers\/\" data-upl-target=\"_self\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <div class=\"s10-crosslink-text\"><strong>Compare email sync API providers<\/strong>Unipile vs. building OAuth yourself<\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var el = document.getElementById('upl-gako-s10');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', function(e){<!-- [et_pb_line_break_holder] -->      var t = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->      if (!t) return;<!-- [et_pb_line_break_holder] -->      var url = t.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->      var target = t.getAttribute('data-upl-target') || '_self';<!-- [et_pb_line_break_holder] -->      if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (document.readyState === 'loading') {<!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; 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; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<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\": \"Can I use a Google API key to access Gmail?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"No. Google API keys only work for public, non-user-specific APIs like Maps, Translate, or YouTube Data (public content). Gmail API accesses private user mailbox data, which requires explicit user consent via OAuth 2.0. Sending a request to the Gmail API with only an API key returns a 401 Login Required or 403 Daily Limit for Unauthenticated Use Exceeded error.\"<!-- [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\": \"Does the Gmail API require OAuth 2.0?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Yes, always. Gmail API access is user-data access, which means every request must be tied to an authenticated user who has granted consent via an OAuth 2.0 flow. There is no workaround: no API key, no basic auth (deprecated September 2024), no magic header. The three supported authentication paths are: OAuth 2.0 Client ID (multi-tenant), Service Account with Domain-Wide Delegation (Workspace only), and a unified email API like Unipile that handles the OAuth layer for you.\"<!-- [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's the difference between an API key and an OAuth client ID on Google Cloud?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"An API key identifies your Google Cloud project for billing and quota purposes. It works only for APIs that serve public data (Maps, Translate, etc.). An OAuth client ID is used to initiate a consent flow where a real user approves your app's access to their account. The OAuth client ID is what generates the access token and refresh token that Gmail API actually accepts. These are two entirely different mechanisms: one identifies a project, the other authenticates a user.\"<!-- [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 a service account read Gmail without user consent?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Only if Domain-Wide Delegation (DWD) is enabled by a Google Workspace admin. A service account by itself cannot access any Gmail inbox. With DWD configured, the service account can impersonate any user in the organization and access their mailbox without interactive consent. Important: this only works for Google Workspace (business) accounts. It does not work for personal Gmail addresses (@gmail.com).\"<!-- [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 Gmail API return 'Login Required' with my API key?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Because Gmail API does not accept API keys. The 401 Login Required error means the request lacks a valid OAuth 2.0 access token in the Authorization header. Gmail API expects: Authorization: Bearer {access_token} - where the access token was obtained via an OAuth 2.0 flow (authorization code, service account JWT, or a unified API token). Simply appending ?key=YOUR_API_KEY to the Gmail API URL will not work and will either return 401 or 403.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Is there a way to use Gmail API without managing OAuth myself?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Yes. A unified email API like Unipile handles the entire OAuth layer: the consent screen, the token exchange, and the silent refresh token rotation. Your application never stores or manages access tokens or refresh tokens. You simply call the Unipile API with your own API key, and Unipile handles all OAuth communication with Google on behalf of your linked accounts. This removes the Google consent screen approval process and the token management complexity from your codebase.\"<!-- [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] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><style><!-- [et_pb_line_break_holder] -->#upl-gako-faq,<!-- [et_pb_line_break_holder] -->#upl-gako-faq *,<!-- [et_pb_line_break_holder] -->#upl-gako-faq *::before,<!-- [et_pb_line_break_holder] -->#upl-gako-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: 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] -->#upl-gako-faq {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  padding: 70px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-container {<!-- [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-gako-faq .faq-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] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-badge .faq-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-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-gako-faq .faq-intro {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .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] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .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: border-color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-item.active {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-item-header {<!-- [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] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  user-select: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-num {<!-- [et_pb_line_break_holder] -->  width: 38px !important;<!-- [et_pb_line_break_holder] -->  height: 38px !important;<!-- [et_pb_line_break_holder] -->  min-width: 38px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !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] -->  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: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  transition: background 0.2s 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-gako-faq .faq-item.active .faq-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-gako-faq .faq-question {<!-- [et_pb_line_break_holder] -->  font-size: 16px !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] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-toggle {<!-- [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] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.08) !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: background 0.2s ease, transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-item.active .faq-toggle {<!-- [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-gako-faq .faq-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: stroke 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-item.active .faq-toggle svg {<!-- [et_pb_line_break_holder] -->  stroke: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-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.35s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-body.open {<!-- [et_pb_line_break_holder] -->  max-height: 800px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-answer {<!-- [et_pb_line_break_holder] -->  padding: 0 28px 28px 76px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.78 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-answer a {<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-answer 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] -->#upl-gako-faq .faq-answer code {<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CTA bar *\/<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-cta-bar {<!-- [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: 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] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-cta-text {<!-- [et_pb_line_break_holder] -->  font-size: 15.5px !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] -->#upl-gako-faq .faq-cta-text strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-cta-btn {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !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] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-3px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-gako-faq .faq-cta-btn 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-gako-faq .faq-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-faq { padding: 50px 16px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-faq .faq-answer { padding: 0 16px 20px 16px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-gako-faq .faq-h2 { font-size: 26px !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-faq .faq-cta-bar { flex-direction: column !important; align-items: flex-start !important; }<!-- [et_pb_line_break_holder] -->  #upl-gako-faq .faq-cta-btn { width: 100% !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><div id=\"upl-gako-faq\"><!-- [et_pb_line_break_holder] -->  <div class=\"faq-container\"><!-- [et_pb_line_break_holder] -->    <span id=\"gmail-api-key-vs-oauth-faq\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->    <div class=\"faq-badge\"><span class=\"faq-dot\"><\/span><span>FAQ<\/span><\/div><!-- [et_pb_line_break_holder] -->    <h2 class=\"faq-h2\">Frequently Asked Questions<\/h2><!-- [et_pb_line_break_holder] -->    <pee class=\"faq-intro\">The most common questions about Gmail API authentication, API keys vs OAuth tokens, and how to access Gmail programmatically without managing OAuth yourself.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <div class=\"faq-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <div class=\"faq-item\" data-faq-idx=\"0\"><!-- [et_pb_line_break_holder] -->        <div class=\"faq-item-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-num\">01<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"faq-question\">Can I use a Google API key to access Gmail?<\/pee><!-- [et_pb_line_break_holder] -->          <div class=\"faq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"faq-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-answer\"><!-- [et_pb_line_break_holder] -->            <pee>No. Google API keys only work for public, non-user-specific APIs like Maps, Translate, or YouTube Data (public content). Gmail API accesses <strong>private user mailbox data<\/strong>, which requires explicit user consent via OAuth 2.0. Sending a request to the Gmail API with only an API key returns a <code>401 Login Required<\/code> or <code>403 Daily Limit for Unauthenticated Use Exceeded<\/code> error &#8211; every time, with no exception.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <div class=\"faq-item\" data-faq-idx=\"1\"><!-- [et_pb_line_break_holder] -->        <div class=\"faq-item-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-num\">02<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"faq-question\">Does the Gmail API require OAuth 2.0?<\/pee><!-- [et_pb_line_break_holder] -->          <div class=\"faq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"faq-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-answer\"><!-- [et_pb_line_break_holder] -->            <pee>Yes, always. Gmail API access is user-data access, which means every request must be tied to an authenticated user who has granted consent via an OAuth 2.0 flow. There is no workaround: no API key, no basic auth (<strong>deprecated September 2024<\/strong>), no magic header. The three supported authentication paths are: OAuth 2.0 Client ID (multi-tenant), Service Account with Domain-Wide Delegation (Workspace only), and a unified email API like Unipile that handles the OAuth layer for you.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <div class=\"faq-item\" data-faq-idx=\"2\"><!-- [et_pb_line_break_holder] -->        <div class=\"faq-item-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-num\">03<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"faq-question\">What&#8217;s the difference between an API key and an OAuth client ID on Google Cloud?<\/pee><!-- [et_pb_line_break_holder] -->          <div class=\"faq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"faq-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-answer\"><!-- [et_pb_line_break_holder] -->            <pee>An <strong>API key<\/strong> identifies your Google Cloud project for billing and quota purposes. It works only for APIs that serve public data (Maps, Translate, etc.). An <strong>OAuth client ID<\/strong> is used to initiate a consent flow where a real user approves your app&#8217;s access to their account. The OAuth client ID generates the access token and refresh token that Gmail API actually accepts. These are two entirely different mechanisms: one identifies a project, the other authenticates a user.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <div class=\"faq-item\" data-faq-idx=\"3\"><!-- [et_pb_line_break_holder] -->        <div class=\"faq-item-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-num\">04<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"faq-question\">Can a service account read Gmail without user consent?<\/pee><!-- [et_pb_line_break_holder] -->          <div class=\"faq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"faq-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-answer\"><!-- [et_pb_line_break_holder] -->            <pee>Only if <strong>Domain-Wide Delegation (DWD)<\/strong> is enabled by a Google Workspace admin. A service account by itself cannot access any Gmail inbox. With DWD configured, the service account can impersonate any user in the organization and access their mailbox without interactive consent. Critical limitation: this only works for Google Workspace (business) accounts. It does not work for personal Gmail addresses (<code>@gmail.com<\/code>). See <a href=\"https:\/\/support.google.com\/a\/answer\/162106\" target=\"_blank\" rel=\"noopener\">Google&#8217;s official DWD documentation<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <div class=\"faq-item\" data-faq-idx=\"4\"><!-- [et_pb_line_break_holder] -->        <div class=\"faq-item-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-num\">05<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"faq-question\">Why does Gmail API return &#8220;Login Required&#8221; with my API key?<\/pee><!-- [et_pb_line_break_holder] -->          <div class=\"faq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"faq-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-answer\"><!-- [et_pb_line_break_holder] -->            <pee>Because <strong>Gmail API does not accept API keys<\/strong>. The <code>401 Login Required<\/code> error means the request lacks a valid OAuth 2.0 access token in the <code>Authorization<\/code> header. Gmail API expects: <code>Authorization: Bearer {access_token}<\/code> &#8211; where the access token was obtained via an OAuth 2.0 flow (authorization code, service account JWT, or a unified API token). Simply appending <code>?key=YOUR_API_KEY<\/code> to the Gmail API URL will not work and will return 401 or 403.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <div class=\"faq-item\" data-faq-idx=\"5\"><!-- [et_pb_line_break_holder] -->        <div class=\"faq-item-header\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-num\">06<\/div><!-- [et_pb_line_break_holder] -->          <pee class=\"faq-question\">Is there a way to use Gmail API without managing OAuth myself?<\/pee><!-- [et_pb_line_break_holder] -->          <div class=\"faq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->        <div class=\"faq-body\"><!-- [et_pb_line_break_holder] -->          <div class=\"faq-answer\"><!-- [et_pb_line_break_holder] -->            <pee>Yes. A unified email API like <a href=\"https:\/\/www.unipile.com\/email-api\/\">Unipile<\/a> handles the entire OAuth layer: the consent screen, the token exchange, and the silent refresh token rotation. Your application never stores or manages access tokens or refresh tokens. You call the Unipile API with your own API key, and Unipile handles all OAuth communication with Google on behalf of your <strong>linked accounts<\/strong>. This removes the Google consent screen approval process and the token management complexity from your codebase &#8211; and gives you Gmail, Outlook, and IMAP under one unified interface.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div><!-- [et_pb_line_break_holder] -->        <\/div><!-- [et_pb_line_break_holder] -->      <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- CTA bar --><!-- [et_pb_line_break_holder] -->    <div class=\"faq-cta-bar\"><!-- [et_pb_line_break_holder] -->      <pee class=\"faq-cta-text\"><strong>Still have questions about Gmail API authentication?<\/strong> Our team can walk you through the right setup for your use case.<\/pee><!-- [et_pb_line_break_holder] -->      <span class=\"faq-cta-btn\" onclick=\"if(window.$crisp){$crisp.push(['do','chat:open'])}\"><span>Talk to an expert<\/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><\/span><!-- [et_pb_line_break_holder] -->    <\/div><!-- [et_pb_line_break_holder] -->  <\/div><!-- [et_pb_line_break_holder] --><\/div><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function init(){<!-- [et_pb_line_break_holder] -->    var faq = document.getElementById('upl-gako-faq');<!-- [et_pb_line_break_holder] -->    if (!faq) return;<!-- [et_pb_line_break_holder] -->    var items = faq.querySelectorAll('.faq-item');<!-- [et_pb_line_break_holder] -->    items.forEach(function(item){<!-- [et_pb_line_break_holder] -->      var header = item.querySelector('.faq-item-header');<!-- [et_pb_line_break_holder] -->      var body = item.querySelector('.faq-body');<!-- [et_pb_line_break_holder] -->      if (!header || !body) return;<!-- [et_pb_line_break_holder] -->      header.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->        var isOpen = item.classList.contains('active');<!-- [et_pb_line_break_holder] -->        items.forEach(function(i){<!-- [et_pb_line_break_holder] -->          i.classList.remove('active');<!-- [et_pb_line_break_holder] -->          var b = i.querySelector('.faq-body');<!-- [et_pb_line_break_holder] -->          if (b) b.classList.remove('open');<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->        if (!isOpen) {<!-- [et_pb_line_break_holder] -->          item.classList.add('active');<!-- [et_pb_line_break_holder] -->          body.classList.add('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', init);<!-- [et_pb_line_break_holder] -->  } else { init(); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>Path 1 of 3 Path 1 &#8211; OAuth 2.0 Client ID (Multi-Tenant SaaS) If you&#8217;re building a SaaS product where your customers connect their own Gmail accounts, the OAuth 2.0 authorization code flow is the standard path. This is the 3-legged flow: your app, Google, and the end user. It requires setting up a Google [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":278949,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[69,73],"tags":[],"post_folder":[],"class_list":["post-278929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-guidelines","category-email-api-integration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gmail API Key vs OAuth: Why You Can&#039;t Skip OAuth (and What to Use Instead) - Unipile<\/title>\n<meta name=\"description\" content=\"Learn when to use Gmail API keys vs OAuth. Compare security, ease of setup, and real-world scenarios. See OAuth best practices for production apps. Start building.\" \/>\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\/tr\/gmail-api-anahtari-vs-oauth\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gmail API Key vs OAuth: Why You Can&#039;t Skip OAuth (and What to Use Instead) - Unipile\" \/>\n<meta property=\"og:description\" content=\"Learn when to use Gmail API keys vs OAuth. Compare security, ease of setup, and real-world scenarios. See OAuth best practices for production apps. Start building.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unipile.com\/tr\/gmail-api-anahtari-vs-oauth\/\" \/>\n<meta property=\"og:site_name\" content=\"Unipile\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unipilefr\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-25T09:49:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-25T09:50:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/gmail-api-key-vs-oauth.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\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=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Damien Girardeau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/\"},\"author\":{\"name\":\"Damien Girardeau\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\"},\"headline\":\"Gmail API Key vs OAuth: Why You Can&#8217;t Skip OAuth (and What to Use Instead)\",\"datePublished\":\"2026-05-25T09:49:40+00:00\",\"dateModified\":\"2026-05-25T09:50:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/\"},\"wordCount\":5025,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/gmail-api-key-vs-oauth.png\",\"articleSection\":[\"API Guidelines\",\"Email API Integration\"],\"inLanguage\":\"tr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/\",\"name\":\"Gmail API Key vs OAuth: Why You Can't Skip OAuth (and What to Use Instead) - Unipile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/gmail-api-key-vs-oauth.png\",\"datePublished\":\"2026-05-25T09:49:40+00:00\",\"dateModified\":\"2026-05-25T09:50:32+00:00\",\"description\":\"Learn when to use Gmail API keys vs OAuth. Compare security, ease of setup, and real-world scenarios. See OAuth best practices for production apps. Start building.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/gmail-api-key-vs-oauth.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/gmail-api-key-vs-oauth.png\",\"width\":2400,\"height\":1260,\"caption\":\"Gmail API Key vs OAuth: why OAuth is required and how to implement it\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/gmail-api-key-vs-oauth\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.unipile.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gmail API Key vs OAuth: Why You Can&#8217;t Skip OAuth (and What to Use Instead)\"}]},{\"@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\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\",\"name\":\"Unipile\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@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\":\"tr\",\"@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":"Gmail API Anahtar\u0131 vs OAuth: Neden OAuth'u Atlayamazs\u0131n\u0131z (ve Yerine Ne Kullanmal\u0131s\u0131n\u0131z) - Unipile","description":"Gmail API anahtarlar\u0131n\u0131n ne zaman ve OAuth'un ne zaman kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenin. G\u00fcvenlik, kurulum kolayl\u0131\u011f\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n. \u00dcretim uygulamalar\u0131 i\u00e7in OAuth en iyi uygulamalar\u0131n\u0131 g\u00f6r\u00fcn. Olu\u015fturmaya ba\u015flay\u0131n.","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\/tr\/gmail-api-anahtari-vs-oauth\/","og_locale":"tr_TR","og_type":"article","og_title":"Gmail API Key vs OAuth: Why You Can't Skip OAuth (and What to Use Instead) - Unipile","og_description":"Learn when to use Gmail API keys vs OAuth. Compare security, ease of setup, and real-world scenarios. See OAuth best practices for production apps. Start building.","og_url":"https:\/\/www.unipile.com\/tr\/gmail-api-anahtari-vs-oauth\/","og_site_name":"Unipile","article_publisher":"https:\/\/www.facebook.com\/unipilefr","article_published_time":"2026-05-25T09:49:40+00:00","article_modified_time":"2026-05-25T09:50:32+00:00","og_image":[{"width":2400,"height":1260,"url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/gmail-api-key-vs-oauth.png","type":"image\/png"}],"author":"Damien Girardeau","twitter_card":"summary_large_image","twitter_creator":"@UnipileAPI","twitter_site":"@UnipileAPI","twitter_misc":{"Yazan:":"Damien Girardeau","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#article","isPartOf":{"@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/"},"author":{"name":"Damien Girardeau","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e"},"headline":"Gmail API Key vs OAuth: Why You Can&#8217;t Skip OAuth (and What to Use Instead)","datePublished":"2026-05-25T09:49:40+00:00","dateModified":"2026-05-25T09:50:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/"},"wordCount":5025,"publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"image":{"@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/gmail-api-key-vs-oauth.png","articleSection":["API Guidelines","Email API Integration"],"inLanguage":"tr"},{"@type":"WebPage","@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/","url":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/","name":"Gmail API Anahtar\u0131 vs OAuth: Neden OAuth'u Atlayamazs\u0131n\u0131z (ve Yerine Ne Kullanmal\u0131s\u0131n\u0131z) - Unipile","isPartOf":{"@id":"https:\/\/www.unipile.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#primaryimage"},"image":{"@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/gmail-api-key-vs-oauth.png","datePublished":"2026-05-25T09:49:40+00:00","dateModified":"2026-05-25T09:50:32+00:00","description":"Gmail API anahtarlar\u0131n\u0131n ne zaman ve OAuth'un ne zaman kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenin. G\u00fcvenlik, kurulum kolayl\u0131\u011f\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n. \u00dcretim uygulamalar\u0131 i\u00e7in OAuth en iyi uygulamalar\u0131n\u0131 g\u00f6r\u00fcn. Olu\u015fturmaya ba\u015flay\u0131n.","breadcrumb":{"@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#primaryimage","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/gmail-api-key-vs-oauth.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/05\/gmail-api-key-vs-oauth.png","width":2400,"height":1260,"caption":"Gmail API Key vs OAuth: why OAuth is required and how to implement it"},{"@type":"BreadcrumbList","@id":"https:\/\/www.unipile.com\/gmail-api-key-vs-oauth\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.unipile.com\/"},{"@type":"ListItem","position":2,"name":"Gmail API Key vs OAuth: Why You Can&#8217;t Skip OAuth (and What to Use Instead)"}]},{"@type":"WebSite","@id":"https:\/\/www.unipile.com\/#website","url":"https:\/\/www.unipile.com\/","name":"Unipile","description":"Mesajla\u015fma ve E-postay\u0131 Entegre Edin, API ile Kolayca Ba\u011flan\u0131n","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":"tr"},{"@type":"Organization","@id":"https:\/\/www.unipile.com\/#organization","name":"Unipile","url":"https:\/\/www.unipile.com\/","logo":{"@type":"ImageObject","inLanguage":"tr","@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":"tr","@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\/tr\/wp-json\/wp\/v2\/posts\/278929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/comments?post=278929"}],"version-history":[{"count":4,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/posts\/278929\/revisions"}],"predecessor-version":[{"id":278948,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/posts\/278929\/revisions\/278948"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/media\/278949"}],"wp:attachment":[{"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/media?parent=278929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/categories?post=278929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/tags?post=278929"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.unipile.com\/tr\/wp-json\/wp\/v2\/post_folder?post=278929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}