{"id":278991,"date":"2026-05-27T17:43:31","date_gmt":"2026-05-27T15:43:31","guid":{"rendered":"https:\/\/www.unipile.com\/?p=278991"},"modified":"2026-06-01T14:49:46","modified_gmt":"2026-06-01T12:49:46","slug":"outlook-rest-api-microsoft-graph-migration-2","status":"publish","type":"post","link":"https:\/\/www.unipile.com\/fr\/outlook-rest-api-microsoft-graph-migration-2\/","title":{"rendered":"De l'API REST Outlook et EWS \u00e0 Microsoft Graph : Le guide de migration 2026 pour les d\u00e9veloppeurs"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   RESET SCOP\u00c9 \u2014 pas de all:initial (instable sur front Divi)<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->#unipile-toc,<!-- [et_pb_line_break_holder] -->#unipile-toc *,<!-- [et_pb_line_break_holder] -->#unipile-toc *::before,<!-- [et_pb_line_break_holder] -->#unipile-toc *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: 0 !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  float: none !important;<!-- [et_pb_line_break_holder] -->  box-shadow: none !important;<!-- [et_pb_line_break_holder] -->  text-shadow: none !important;<!-- [et_pb_line_break_holder] -->  font-style: normal !important;<!-- [et_pb_line_break_holder] -->  vertical-align: baseline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-toc {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  -webkit-font-smoothing: antialiased !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-toc .utc-card {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [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] --><!-- [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] --><!-- [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] --><!-- [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] -->  min-width: 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] --><!-- [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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] -->  -webkit-appearance: none !important;<!-- [et_pb_line_break_holder] -->  appearance: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  transform: rotate(-90deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-toc.utc-open .utc-toggle svg {<!-- [et_pb_line_break_holder] -->  transform: rotate(0deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] --><!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [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] --><!-- [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: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] --><!-- [et_pb_line_break_holder] -->#unipile-toc .utc-col-label {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [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] -->}<!-- [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] --><!-- [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] --><!-- [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] -->  min-width: 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] -->  line-height: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [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] --><!-- [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] --><!-- [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] --><!-- [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] --><!-- [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] --><!-- [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] --><!-- [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] --><!-- [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] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   RESPONSIVE<!-- [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: 0 !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] --><!-- [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: 0 !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] -->  \/* MOBILE : ferm\u00e9 par d\u00e9faut (sans d\u00e9pendre du JS) *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->    gap: 22px !important;<!-- [et_pb_line_break_holder] -->    overflow: hidden !important;<!-- [et_pb_line_break_holder] -->    transition: max-height 0.4s ease, margin-top 0.3s ease, padding-top 0.3s ease !important;<!-- [et_pb_line_break_holder] -->    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: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* L'ouverture est l'exception : ajout\u00e9e par le toggle utilisateur *\/<!-- [et_pb_line_break_holder] -->  #unipile-toc.utc-open .utc-grid {<!-- [et_pb_line_break_holder] -->    max-height: 2000px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 22px !important;<!-- [et_pb_line_break_holder] -->    padding-top: 22px !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col {<!-- [et_pb_line_break_holder] -->    padding: 0 !important;<!-- [et_pb_line_break_holder] -->    border-left: 0 !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: 0 !important;<!-- [et_pb_line_break_holder] -->    padding-top: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-toc .utc-col:nth-child(2n+1) {<!-- [et_pb_line_break_holder] -->    border-left: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-toc\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"utc-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-header-left\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-icon-box\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><!-- [et_pb_line_break_holder] -->            <line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><!-- [et_pb_line_break_holder] -->          <\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <span class=\"utc-title\">Table of Contents<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"utc-toggle\" aria-label=\"Toggle table of contents\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-toggle-label\">Show<\/span><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-grid\"><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 1 \u2014 Context & History --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Context &#038; History<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-what\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">01<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Outlook REST API in 2026<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-history\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">02<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">From v2.0 to Microsoft Graph<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-ews\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">03<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">EWS End-of-Life October 2026<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 2 \u2014 Endpoints & Auth --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Endpoints &#038; Auth<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-endpoints\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">04<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Outlook REST API Endpoints<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-oauth\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">05<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">OAuth 2.0 Authentication<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-checklist\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">06<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Migration Checklist (10 Steps)<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 3 \u2014 Code & Pitfalls --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Code &#038; Pitfalls<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-code\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">07<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">EWS vs Microsoft Graph Code<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-pitfalls\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">08<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Permissions &#038; Rate Limits<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- COLUMN 4 \u2014 Solution & FAQ --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->        <span class=\"utc-col-label\">Solution &#038; FAQ<\/span><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-link-list\"><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-unipile\"><!-- [et_pb_line_break_holder] -->            <span class=\"utc-num\">09<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"utc-link-text\">Skip the Migration Headache<span class=\"utc-tag-best\">Best<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->          <a class=\"utc-link\" href=\"#orm-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\">Frequently Asked Questions<\/span><!-- [et_pb_line_break_holder] -->          <\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function initUnipileToc(){<!-- [et_pb_line_break_holder] -->    var toc = document.getElementById('unipile-toc');<!-- [et_pb_line_break_holder] -->    if (!toc || toc.getAttribute('data-utc-init') === '1') return;<!-- [et_pb_line_break_holder] -->    toc.setAttribute('data-utc-init', '1');<!-- [et_pb_line_break_holder] --><!-- [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] -->    \/* L'\u00e9tat initial (ferm\u00e9 sur mobile, ouvert sur desktop) est g\u00e9r\u00e9<!-- [et_pb_line_break_holder] -->       enti\u00e8rement par le CSS. Le JS ne sert qu'au toggle utilisateur. *\/<!-- [et_pb_line_break_holder] -->    if (toggleBtn) {<!-- [et_pb_line_break_holder] -->      toggleBtn.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->        var isOpen = toc.classList.toggle('utc-open');<!-- [et_pb_line_break_holder] -->        if (toggleLabel) toggleLabel.textContent = isOpen ? 'Hide' : 'Show';<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    var links = toc.querySelectorAll('.utc-link');<!-- [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] -->      link.addEventListener('click', function(e){<!-- [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] -->    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) { activeId = id; readIds.push(id); }<!-- [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) link.classList.add('utc-active');<!-- [et_pb_line_break_holder] -->        else if (readIds.indexOf(id) !== -1) 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] -->    window.addEventListener('scroll', updateActive, { passive: true });<!-- [et_pb_line_break_holder] -->    updateActive();<!-- [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', initUnipileToc);<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    initUnipileToc();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  window.addEventListener('load', initUnipileToc);<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [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; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-hero,<!-- [et_pb_line_break_holder] -->#unipile-orm-hero *,<!-- [et_pb_line_break_holder] -->#unipile-orm-hero *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-hero *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 64px 20px 60px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-hero-inner {<!-- [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] -->#unipile-orm-hero .orm-hero-left {}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 7px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(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: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero h1 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 40px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.18 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero h1 .orm-accent {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-hero-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: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-meta {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-meta-item {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #718096 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-meta-item svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-meta-sep {<!-- [et_pb_line_break_holder] -->  width: 4px !important;<!-- [et_pb_line_break_holder] -->  height: 4px !important;<!-- [et_pb_line_break_holder] -->  background: #cbd5e0 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-tags {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-tag {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-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] -->#unipile-orm-hero .orm-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: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s 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] -->#unipile-orm-hero .orm-cta-primary:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-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] -->#unipile-orm-hero .orm-cta-secondary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.2s 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] -->#unipile-orm-hero .orm-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] -->\/* Code mockup *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-code-wrap {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 20px 60px rgba(15, 39, 54, 0.18) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-editor-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-dot {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-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] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-editor-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.10) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-editor-ok svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-alert-strip {<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.12) !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid rgba(221, 223, 76, 0.4) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  margin-top: 16px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-alert-strip svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  margin-top: 1px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-alert-text {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #5a5c1e !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-hero .orm-alert-text strong {<!-- [et_pb_line_break_holder] -->  color: #3a3c0e !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero {<!-- [et_pb_line_break_holder] -->    padding: 48px 20px 44px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero .orm-hero-inner {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->    gap: 40px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero h1 {<!-- [et_pb_line_break_holder] -->    font-size: 30px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero {<!-- [et_pb_line_break_holder] -->    padding: 36px 16px 36px !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero h1 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero .orm-hero-desc {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero .orm-actions {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: stretch !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero .orm-cta-primary,<!-- [et_pb_line_break_holder] -->  #unipile-orm-hero .orm-cta-secondary {<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-hero\"><!-- [et_pb_line_break_holder] -->  <span id=\"orm-what\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-hero-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-hero-left\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-badge\"><span class=\"orm-badge-dot\"><\/span><span>2026 Migration Guide<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<h1>From <span class=\"orm-accent\">Outlook REST API<\/span> &#038; EWS to Microsoft Graph<\/h1>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"orm-hero-desc\">The Outlook REST API v2.0 is gone (March 2024). Exchange Web Services (EWS) hits its hard end-of-life on October 1, 2026. This guide covers every endpoint, OAuth flow, and migration step you need to ship before the deadline.<\/pee><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-actions\"><!-- [et_pb_line_break_holder] -->        <a class=\"orm-cta-primary\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>Start Building for Free<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a class=\"orm-cta-secondary\" href=\"https:\/\/developer.unipile.com\/docs\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <span>Read the Docs<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-alert-strip\"><!-- [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] -->        <pee class=\"orm-alert-text\"><strong>EWS hard deadline: October 1, 2026.<\/strong> Microsoft confirmed no grace period for Exchange Online. Start your migration now.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-hero-right\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-code-wrap\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-editor-bar\"><!-- [et_pb_line_break_holder] -->          <span class=\"orm-dot orm-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"orm-dot orm-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"orm-dot orm-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"orm-filename\">graph-mail.js<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-pre\"><code><span class=\"c\">\/\/ Outlook REST API via Microsoft Graph<!-- [et_pb_line_break_holder] --><\/span><span class=\"c\">\/\/ Replace EWS SOAP with a single REST call<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><span class=\"k\">const<\/span> <span class=\"w\"> response <\/span><span class=\"k\">= await<\/span> <span class=\"fn\">fetch<\/span><span class=\"w\">(<!-- [et_pb_line_break_holder] -->  <\/span><span class=\"s\">'https:\/\/graph.microsoft.com\/v1.0\/me\/messages'<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] -->  {<!-- [et_pb_line_break_holder] -->    <\/span><span class=\"n\">headers<\/span><span class=\"w\">: {<!-- [et_pb_line_break_holder] -->      <\/span><span class=\"s\">'Authorization'<\/span><span class=\"w\">: <\/span><span class=\"s\">`Bearer ${accessToken}`<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] -->      <\/span><span class=\"s\">'Content-Type'<\/span><span class=\"w\">: <\/span><span class=\"s\">'application\/json'<\/span><span class=\"w\"><!-- [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] --><\/span><span class=\"k\">const<\/span><span class=\"w\"> { value: messages } = <\/span><span class=\"k\">await<\/span><span class=\"w\"> response.<\/span><span class=\"fn\">json<\/span><span class=\"w\">();<!-- [et_pb_line_break_holder] --><\/span><span class=\"fn\">console<\/span><span class=\"w\">.<\/span><span class=\"fn\">log<\/span><span class=\"w\">(<\/span><span class=\"s\">`Fetched ${messages.length} emails`<\/span><span class=\"w\">);<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-editor-ok\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>GET \/me\/messages &#8211; 200 OK &#8211; 12 messages returned<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-what,<!-- [et_pb_line_break_holder] -->#unipile-orm-what *,<!-- [et_pb_line_break_holder] -->#unipile-orm-what *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-what *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 70px 20px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-what-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-section-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.78 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Definition card *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-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-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-def-card p {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-def-card p:last-child {<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-def-card strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-def-card code {<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Nomenclature table *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-nom-table-wrap {<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what thead th {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 18px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what tbody tr:nth-child(even) {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what tbody td {<!-- [et_pb_line_break_holder] -->  padding: 13px 18px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f2f5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what tbody td:first-child {<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-badge-dead {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(234,67,53,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #c0392b !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-badge-live {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-badge-warn {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(221, 223, 76, 0.2) !important;<!-- [et_pb_line_break_holder] -->  color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* Inline CTA strip *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-inline-cta {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  margin-top: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-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.55 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-inline-cta strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-btn-yellow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-btn-yellow:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-what .orm-btn-yellow 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] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-what {<!-- [et_pb_line_break_holder] -->    padding: 54px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-what h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-what {<!-- [et_pb_line_break_holder] -->    padding: 40px 16px !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-what h2 {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-what .orm-def-card {<!-- [et_pb_line_break_holder] -->    padding: 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-what .orm-inline-cta {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: stretch !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-what .orm-btn-yellow {<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-what\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-what-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-eyebrow\"><span class=\"orm-eyebrow-dot\"><\/span><span>What Is It<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>What Is the Outlook REST API in 2026?<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"orm-section-intro\">The term &#8220;Outlook REST API&#8221; causes confusion in 2026 because Microsoft has used it to describe at least three distinct things over the past decade. Here is the precise current meaning, why it still matters for developers, and what has changed.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-def-card\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Definition:<\/strong> In 2026, &#8220;Outlook REST API&#8221; is a colloquial term that refers to the Microsoft Graph mail endpoints (<code>https:\/\/graph.microsoft.com\/v1.0\/me\/messages<\/code>). The original dedicated Outlook REST API v2.0 (<code>outlook.office.com\/api\/v2.0<\/code>) was permanently decommissioned on March 31, 2024, returning HTTP 410 Gone for all requests. Microsoft Graph is now the single, unified API for mail, calendar, and contacts across Microsoft 365, Exchange Online, Outlook.com, and Teams.<\/pee><!-- [et_pb_line_break_holder] -->      <pee>This matters in 2026 for two reasons: first, any application still referencing the old <code>outlook.office.com\/api\/<\/code> domain is broken. Second, applications using Exchange Web Services (EWS) &#8211; the older SOAP-based protocol &#8211; face a hard enforcement deadline of October 1, 2026 for Exchange Online. Understanding the correct nomenclature is the first step to a successful migration.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-eyebrow\" style=\"margin-top:0;margin-bottom:16px;\"><span class=\"orm-eyebrow-dot\"><\/span><span>Naming Clarification<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-nom-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Name<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Protocol<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Base URL<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Status in 2026<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Outlook REST API v2.0<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>REST \/ JSON<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>outlook.office.com\/api\/v2.0<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-badge-dead\">Dead (Mar 2024)<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Exchange Web Services (EWS)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>SOAP \/ XML<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>outlook.office365.com\/EWS\/<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-badge-warn\">EoL Oct 2026<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Microsoft Graph Mail API<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>REST \/ JSON<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>graph.microsoft.com\/v1.0\/me\/messages<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-badge-live\">Live &#8211; Use This<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>MAPI \/ Outlook COM<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>COM \/ Binary<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Desktop only<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-badge-warn\">Desktop only<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <pee style=\"font-size:16px!important;color:#383838!important;line-height:1.78!important;margin-bottom:0!important;\">For a deep dive into Microsoft Graph integration beyond mail (webhooks, delta queries, shared mailboxes), see the <a href=\"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">Microsoft Graph API email integration guide<\/a>. The pillar guide covering all email API patterns is at the <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">Email API developer guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-inline-cta\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Building on Outlook in 2026?<\/strong> Unipile gives you a unified email API that handles Microsoft Graph, Gmail, and IMAP with a single integration &#8211; no per-provider migration needed.<\/pee><!-- [et_pb_line_break_holder] -->      <a class=\"orm-btn-yellow\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>Build it with Unipile<\/span><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-history,<!-- [et_pb_line_break_holder] -->#unipile-orm-history *,<!-- [et_pb_line_break_holder] -->#unipile-orm-history *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-history *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 70px 20px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-hist-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-section-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.78 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Timeline *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-timeline {<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  padding-left: 40px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-timeline::before {<!-- [et_pb_line_break_holder] -->  content: '' !important;<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 8px !important;<!-- [et_pb_line_break_holder] -->  top: 8px !important;<!-- [et_pb_line_break_holder] -->  bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  width: 2px !important;<!-- [et_pb_line_break_holder] -->  background: linear-gradient(180deg, #3BB98B 0%, #e5e7eb 100%) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-item {<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-item:last-child {<!-- [et_pb_line_break_holder] -->  margin-bottom: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-dot {<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: -37px !important;<!-- [et_pb_line_break_holder] -->  top: 4px !important;<!-- [et_pb_line_break_holder] -->  width: 16px !important;<!-- [et_pb_line_break_holder] -->  height: 16px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  background: #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #ffffff !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 0 0 2px #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-dot.tl-green {<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 0 0 2px rgba(59,185,139,0.25) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-dot.tl-red {<!-- [et_pb_line_break_holder] -->  background: #EA4335 !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 0 0 2px rgba(234,67,53,0.25) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-dot.tl-yellow {<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 0 0 2px rgba(221,223,76,0.3) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-date {<!-- [et_pb_line_break_holder] -->  font-size: 12px !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: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-title {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-tl-desc {<!-- [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] -->#unipile-orm-history .orm-tl-desc 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] -->#unipile-orm-history .orm-tl-desc 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] -->\/* Why inevitable card *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-why-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: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-why-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-why-icon {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-why-icon svg {<!-- [et_pb_line_break_holder] -->  width: 20px !important;<!-- [et_pb_line_break_holder] -->  height: 20px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-why-card 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: 8px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-history .orm-why-card p {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-history {<!-- [et_pb_line_break_holder] -->    padding: 54px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-history h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-history .orm-why-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-history {<!-- [et_pb_line_break_holder] -->    padding: 40px 16px !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-history h2 {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-history .orm-why-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-history .orm-timeline {<!-- [et_pb_line_break_holder] -->    padding-left: 30px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-history\"><!-- [et_pb_line_break_holder] -->  <span id=\"orm-history\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-hist-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-eyebrow\"><span class=\"orm-eyebrow-dot\"><\/span><span>Timeline<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>From v2.0 to Microsoft Graph: A Brief History<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"orm-section-intro\">The deprecation of the Outlook REST API v2.0 was not sudden &#8211; Microsoft announced it years in advance with multiple deadline extensions. Understanding this history helps you anticipate what Microsoft will do with EWS, and why the October 2026 deadline is being treated as final.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-timeline\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-tl-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-dot tl-green\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-date\">2015 &#8211; 2017<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-title\">Outlook REST API v2.0 Launches<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-tl-desc\">Microsoft introduces a REST-based API at <code>outlook.office.com\/api\/v2.0<\/code> as a modern alternative to EWS. Developers can read mail, manage calendar events, and access contacts via JSON over HTTPS &#8211; a significant improvement over SOAP\/XML.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-tl-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-dot tl-green\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-date\">2019<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-title\">Microsoft Graph Emerges as the Unified API<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-tl-desc\">Microsoft launches Microsoft Graph as a single endpoint covering all Microsoft 365 services &#8211; mail, calendar, contacts, Teams, OneDrive, SharePoint, and more. The <code>graph.microsoft.com<\/code> domain becomes the canonical way to access Microsoft data programmatically.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-tl-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-dot tl-yellow\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-date\">November 2020<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-title\">Deprecation Announcement for Outlook REST API v2.0<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-tl-desc\">Microsoft officially announces the deprecation of the Outlook REST API v2.0 (and v1.0 beta), citing Microsoft Graph as the replacement. The announcement explicitly states the old endpoints will stop working &#8211; with a deadline of &#8220;late 2022&#8221; at the time.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-tl-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-dot tl-yellow\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-date\">2022 &#8211; 2023<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-title\">Multiple Deadline Extensions<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-tl-desc\">Microsoft extends the deadline twice &#8211; first to November 2022, then to March 2023, then to March 2024. Each extension came with a warning: &#8220;this is the last extension.&#8221; Many developers took these extensions as a signal that deadlines were soft. The October 2026 EWS deadline is being enforced more strictly.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-tl-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-dot tl-red\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-date\">March 31, 2024<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-title\">Outlook REST API v2.0 Permanently Decommissioned<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-tl-desc\">The <code>outlook.office.com\/api\/v2.0<\/code> endpoint returns HTTP 410 Gone for all requests. No more extensions. Any application still calling these URLs is broken. &#8220;Outlook REST API&#8221; now means Microsoft Graph when used correctly. For the full integration guide to Microsoft Graph mail endpoints, see the <a href=\"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/\">Microsoft Graph API email integration guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-tl-item\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-dot tl-yellow\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-date\">October 1, 2026<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-tl-title\">EWS End-of-Life for Exchange Online<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-tl-desc\">Exchange Web Services will stop working for Exchange Online (Microsoft 365 cloud). Microsoft has confirmed this is a hard enforcement date. On-premises Exchange servers are not affected. All cloud-based applications using SOAP\/XML EWS calls must have migrated to Microsoft Graph by this date.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 style=\"font-family:'Poppins',sans-serif!important;font-size:22px!important;font-weight:700!important;color:#0f2736!important;margin-bottom:20px!important;line-height:1.3!important;\">Why This Migration Was Inevitable<\/h3>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-why-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-why-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-why-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Modern OAuth 2.0 Security<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>The older APIs relied on Basic Auth and legacy token formats. Microsoft Graph mandates OAuth 2.0 with Azure Active Directory, aligning with zero-trust security models and eliminating credential exposure risks.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-why-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-why-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Unified Identity Platform<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Microsoft Graph consolidates access to every Microsoft 365 service through a single identity platform. One app registration, one token, one endpoint prefix &#8211; versus maintaining separate credentials per legacy API.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-why-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-why-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Richer Capabilities<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Microsoft Graph exposes features EWS never had: delta queries for incremental sync, change notifications (webhooks), search across all content, Teams integration, and Graph-specific analytics &#8211; all via clean REST\/JSON.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!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; EWS End-of-Life<\/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] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-ews,<!-- [et_pb_line_break_holder] -->#unipile-orm-ews *,<!-- [et_pb_line_break_holder] -->#unipile-orm-ews *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-ews *::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] -->#unipile-orm-ews {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 70px 20px !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-ews-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-eyebrow-yellow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: 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] -->#unipile-orm-ews .orm-eyebrow-dot-yellow {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-section-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.78 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Critical alert banner *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-critical-banner {<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  padding: 28px 32px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-critical-banner svg {<!-- [et_pb_line_break_holder] -->  width: 28px !important;<!-- [et_pb_line_break_holder] -->  height: 28px !important;<!-- [et_pb_line_break_holder] -->  stroke: #0f2736 !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] -->#unipile-orm-ews .orm-critical-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 18px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-critical-text {<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-critical-text strong {<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Impact grid *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-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: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card 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: 12px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.3 !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] -->#unipile-orm-ews .orm-impact-card h3 svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card ul {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card li {<!-- [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.6 !important;<!-- [et_pb_line_break_holder] -->  padding-left: 16px !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card li::before {<!-- [et_pb_line_break_holder] -->  content: '' !important;<!-- [et_pb_line_break_holder] -->  position: absolute !important;<!-- [et_pb_line_break_holder] -->  left: 0 !important;<!-- [et_pb_line_break_holder] -->  top: 8px !important;<!-- [et_pb_line_break_holder] -->  width: 6px !important;<!-- [et_pb_line_break_holder] -->  height: 6px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card li.li-red::before {<!-- [et_pb_line_break_holder] -->  background: #EA4335 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-impact-card code,<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-critical-text 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] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: anywhere !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* CTA *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-inline-cta {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-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.55 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-inline-cta strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-btn-yellow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-btn-yellow:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-ews .orm-btn-yellow 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] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews {<!-- [et_pb_line_break_holder] -->    padding: 54px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-section-intro {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-impact-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews {<!-- [et_pb_line_break_holder] -->    padding: 40px 16px !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews h2 {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-section-intro {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* Banner: passe en colonne, icone au-dessus, padding reduit *\/<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-critical-banner {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    padding: 20px 18px !important;<!-- [et_pb_line_break_holder] -->    gap: 12px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-critical-banner svg {<!-- [et_pb_line_break_holder] -->    width: 24px !important;<!-- [et_pb_line_break_holder] -->    height: 24px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-critical-title {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-critical-text {<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* Cards plus compactes *\/<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-impact-grid {<!-- [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] -->  #unipile-orm-ews .orm-impact-card {<!-- [et_pb_line_break_holder] -->    padding: 20px 18px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-impact-card li {<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  \/* CTA en colonne, bouton pleine largeur *\/<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-inline-cta {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: stretch !important;<!-- [et_pb_line_break_holder] -->    padding: 18px !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-inline-cta p {<!-- [et_pb_line_break_holder] -->    font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-btn-yellow {<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    width: 100% !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] -->  #unipile-orm-ews {<!-- [et_pb_line_break_holder] -->    padding: 36px 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews h2 {<!-- [et_pb_line_break_holder] -->    font-size: 22px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-ews .orm-impact-card {<!-- [et_pb_line_break_holder] -->    padding: 18px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-ews\"><!-- [et_pb_line_break_holder] -->  <span id=\"orm-ews\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-ews-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-eyebrow-yellow\"><span class=\"orm-eyebrow-dot-yellow\"><\/span><span>Critical Deadline<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>The Real 2026 Deadline: EWS End-of-Life (October 1, 2026)<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"orm-section-intro\">While the Outlook REST API v2.0 deprecation affected a relatively small group of developers, the EWS end-of-life for Exchange Online is a much larger event. Thousands of enterprise applications, mail clients, calendar sync tools, and backup solutions still rely on Exchange Web Services. October 1, 2026 is the hard cutover &#8211; here is what you need to know.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-critical-banner\"><!-- [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] -->      <\/p>\n<div class=\"orm-critical-content\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"orm-critical-title\">EWS Hard Deadline: October 1, 2026 &#8211; No Grace Period<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"orm-critical-text\"><strong>Scope:<\/strong> Exchange Online (Microsoft 365 cloud) only. On-premises Exchange servers are not affected. <strong>Enforcement:<\/strong> Microsoft confirmed this is a hard cutover &#8211; EWS requests to Exchange Online will stop being processed. <strong>What breaks:<\/strong> all SOAP\/XML calls to <code>outlook.office365.com\/EWS\/Exchange.asmx<\/code>, including apps using the EWS Managed API .NET library, Kerberos\/NTLM authentication flows, and Basic Auth over EWS.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-impact-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-impact-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>Who Is Affected<\/span><!-- [et_pb_line_break_holder] -->        <\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Custom mail clients built on EWS Managed API<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Outlook add-ins using EWS calls (not Graph-based)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Calendar sync applications (room booking, scheduling)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Email backup and archiving tools<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>CRM \/ ATS email sync integrations<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Any app using <code>ExchangeService<\/code> .NET class<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-impact-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3><!-- [et_pb_line_break_holder] -->          <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><!-- [et_pb_line_break_holder] -->          <span>What Stops Working<\/span><!-- [et_pb_line_break_holder] -->        <\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li class=\"li-red\">NTLM and Kerberos authentication<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li class=\"li-red\">Basic Auth over EWS (already deprecated)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li class=\"li-red\">EWS Managed API (<code>Microsoft.Exchange.WebServices<\/code>)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li class=\"li-red\">Streaming notifications via EWS<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li class=\"li-red\">EWS impersonation (<code>ExchangeImpersonation<\/code>)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li class=\"li-red\">SOAP operations: GetItem, FindItems, SyncFolderItems<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-impact-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>What Is NOT Affected<\/span><!-- [et_pb_line_break_holder] -->        <\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>On-premises Exchange 2016 \/ 2019 \/ SE EWS<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Microsoft Graph API (this is the migration target)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>IMAP \/ SMTP for basic send\/receive<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>ActiveSync (deprecated separately)<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Outlook desktop app itself (uses proprietary MAPI)<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-impact-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>Migration Timeline Reality<\/span><!-- [et_pb_line_break_holder] -->        <\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Simple app with 1-2 EWS operations: 1-2 weeks<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Mid-complexity app (mail + calendar + contacts): 4-8 weeks<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Enterprise app with EWS impersonation: 8-16 weeks<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Vendor dependency (waiting for library update): uncontrolled<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Testing + UAT + production deployment: add 2-4 weeks<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-inline-cta\"><!-- [et_pb_line_break_holder] -->      <pee><strong>On a tight timeline for EWS migration?<\/strong> Unipile&#8217;s unified email API abstracts Microsoft Graph (and Gmail and IMAP) so you migrate once and never touch provider-specific code again. See the <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">full email API guide<\/a> for architecture patterns.<\/pee><!-- [et_pb_line_break_holder] -->      <a class=\"orm-btn-yellow\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>Start Your Migration<\/span><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/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; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints,<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints *,<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 70px 20px !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-ep-inner {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-eyebrow-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-section-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.78 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->\/* Endpoint category tabs *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-ep-tabs {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-ep-tab {<!-- [et_pb_line_break_holder] -->  padding: 8px 16px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-ep-tab.active {<!-- [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] -->\/* Endpoint table *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-ep-table-wrap {<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !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: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  min-width: 600px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints thead th {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  padding: 13px 16px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints tbody tr:nth-child(even) {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints tbody td {<!-- [et_pb_line_break_holder] -->  padding: 12px 16px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f0f2f5 !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints tbody td code {<!-- [et_pb_line_break_holder] -->  background: rgba(0,0,0,0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-method {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 7px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-method-get { background: rgba(59,185,139,0.12) !important; color: #2aaa7e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-method-post { background: rgba(0,120,212,0.12) !important; color: #0078d4 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-method-patch { background: rgba(221,223,76,0.2) !important; color: #8a8c2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-method-delete { background: rgba(234,67,53,0.12) !important; color: #c0392b !important; }<!-- [et_pb_line_break_holder] -->\/* Code block *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-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: 32px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-editor-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255,255,255,0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-dot {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-filename {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-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] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .c { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .k { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .s { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .n { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .w { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->\/* CTA strip *\/<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-inline-cta {<!-- [et_pb_line_break_holder] -->  background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-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.55 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-inline-cta strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-btn-yellow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 22px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-btn-yellow:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-endpoints .orm-btn-yellow 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] --><!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints {<!-- [et_pb_line_break_holder] -->    padding: 54px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints {<!-- [et_pb_line_break_holder] -->    padding: 40px 16px !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints h2 {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints .orm-ep-table-wrap {<!-- [et_pb_line_break_holder] -->    overflow-x: scroll !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints .orm-inline-cta {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: stretch !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-endpoints .orm-btn-yellow {<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-endpoints\"><!-- [et_pb_line_break_holder] -->  <span id=\"orm-endpoints\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-ep-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-eyebrow\"><span class=\"orm-eyebrow-dot\"><\/span><span>API Reference<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2>Outlook REST API Endpoints in 2026 (via Microsoft Graph)<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"orm-section-intro\">All Outlook REST API functionality is now served via Microsoft Graph at <code style=\"background:rgba(0,0,0,0.06)!important;padding:2px 6px!important;border-radius:4px!important;font-family:'Courier New',monospace!important;font-size:14px!important;\">https:\/\/graph.microsoft.com\/v1.0<\/code>. Below are the key mail, calendar, and contacts endpoints with their HTTP methods and a code sample for each category.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Mail endpoints table --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 style=\"font-family:'Poppins',sans-serif!important;font-size:20px!important;font-weight:700!important;color:#0f2736!important;margin-bottom:16px!important;line-height:1.3!important;\">Mail Endpoints<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-ep-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Method<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Endpoint<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Description<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Required Scope<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/messages<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>List messages in inbox (supports $filter, $orderby, $top, $select)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/messages\/{id}<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Get a single message by ID with full body and headers<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-post\">POST<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/sendMail<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Send a new email immediately (no draft saved)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.Send<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-post\">POST<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/messages<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Create a draft message (send separately via \/send)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.ReadWrite<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-patch\">PATCH<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/messages\/{id}<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Update a message (mark read, move, change categories)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.ReadWrite<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-delete\">DELETE<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/messages\/{id}<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Delete a message permanently<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.ReadWrite<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/mailFolders<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>List all mail folders (Inbox, Sent, Drafts, custom)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/messages\/delta<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Incremental sync &#8211; get only changed messages since last sync<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Mail.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-code-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-editor-bar\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-dot orm-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-dot orm-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-dot orm-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-filename\">send-mail.js<\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-pre\"><code><span class=\"c\">\/\/ POST \/me\/sendMail - Send via Outlook REST API (Microsoft Graph)<!-- [et_pb_line_break_holder] --><\/span><span class=\"k\">const<\/span><span class=\"w\"> response = <\/span><span class=\"k\">await<\/span> <span class=\"fn\">fetch<\/span><span class=\"w\">(<\/span><span class=\"s\">'https:\/\/graph.microsoft.com\/v1.0\/me\/sendMail'<\/span><span class=\"w\">, {<!-- [et_pb_line_break_holder] -->  <\/span><span class=\"n\">method<\/span><span class=\"w\">: <\/span><span class=\"s\">'POST'<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] -->  <\/span><span class=\"n\">headers<\/span><span class=\"w\">: {<!-- [et_pb_line_break_holder] -->    <\/span><span class=\"s\">'Authorization'<\/span><span class=\"w\">: <\/span><span class=\"s\">`Bearer ${accessToken}`<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] -->    <\/span><span class=\"s\">'Content-Type'<\/span><span class=\"w\">: <\/span><span class=\"s\">'application\/json'<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  <\/span><span class=\"n\">body<\/span><span class=\"w\">: <\/span><span class=\"fn\">JSON.stringify<\/span><span class=\"w\">({<!-- [et_pb_line_break_holder] -->    <\/span><span class=\"n\">message<\/span><span class=\"w\">: {<!-- [et_pb_line_break_holder] -->      <\/span><span class=\"n\">subject<\/span><span class=\"w\">: <\/span><span class=\"s\">'Hello from Microsoft Graph'<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] -->      <\/span><span class=\"n\">body<\/span><span class=\"w\">: { <\/span><span class=\"n\">contentType<\/span><span class=\"w\">: <\/span><span class=\"s\">'Text'<\/span><span class=\"w\">, <\/span><span class=\"n\">content<\/span><span class=\"w\">: <\/span><span class=\"s\">'EWS migration complete!'<\/span><span class=\"w\"> },<!-- [et_pb_line_break_holder] -->      <\/span><span class=\"n\">toRecipients<\/span><span class=\"w\">: [{ <\/span><span class=\"n\">emailAddress<\/span><span class=\"w\">: { <\/span><span class=\"n\">address<\/span><span class=\"w\">: <\/span><span class=\"s\">'user@example.com'<\/span><span class=\"w\"> } }]<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    <\/span><span class=\"n\">saveToSentItems<\/span><span class=\"w\">: <\/span><span class=\"k\">true<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] -->  })<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><\/span><span class=\"c\">\/\/ 202 Accepted = sent successfully<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Calendar endpoints table --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 style=\"font-family:'Poppins',sans-serif!important;font-size:20px!important;font-weight:700!important;color:#0f2736!important;margin-bottom:16px!important;margin-top:16px!important;line-height:1.3!important;\">Calendar Endpoints<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-ep-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Method<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Endpoint<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Description<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Required Scope<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/events<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>List all calendar events (supports $filter by start\/end)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Calendars.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/calendarView<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Get events in a time range (startDateTime + endDateTime params)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Calendars.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-post\">POST<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/events<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Create a new calendar event with attendees and recurrence<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Calendars.ReadWrite<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/calendars<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>List all user calendars (primary, shared, group)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Calendars.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- Contacts endpoints table --><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 style=\"font-family:'Poppins',sans-serif!important;font-size:20px!important;font-weight:700!important;color:#0f2736!important;margin-bottom:16px!important;margin-top:16px!important;line-height:1.3!important;\">Contacts Endpoints<\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-ep-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Method<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Endpoint<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Description<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Required Scope<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/contacts<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>List all contacts in the default contacts folder<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Contacts.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-post\">POST<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/contacts<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Create a new contact<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Contacts.ReadWrite<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"orm-method orm-method-get\">GET<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>\/me\/contactFolders<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>List contact folders<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><code>Contacts.Read<\/code><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-inline-cta\"><!-- [et_pb_line_break_holder] -->      <pee><strong>Want a single API that handles Outlook REST (Microsoft Graph), Gmail, and IMAP?<\/strong> Unipile wraps all three with one unified endpoint. Compare providers at <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\" style=\"color:#2aaa7e!important;text-decoration:underline!important;\">email API providers comparison<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->      <a class=\"orm-btn-yellow\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <span>Build with Unified API<\/span><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-oauth\" class=\"orm-oauth-wrapper\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper,<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper *,<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 0 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', sans-serif !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-anchor {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.78rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.08em !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper h2 {<!-- [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: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-intro a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-dead-banner {<!-- [et_pb_line_break_holder] -->  background: #fff3f3 !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #ef4444 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-dead-banner strong {<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-steps-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 22px !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: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-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] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  padding: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step-num {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  width: 36px !important;<!-- [et_pb_line_break_holder] -->  height: 36px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step-body {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step-title {<!-- [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] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step-desc {<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step-desc code {<!-- [et_pb_line_break_holder] -->  background: #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 1px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: anywhere !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-scopes-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 22px !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] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-table-hint {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-table-hint svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-table-wrap {<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  -webkit-overflow-scrolling: touch !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  min-width: 480px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper thead tr {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper thead th {<!-- [et_pb_line_break_holder] -->  color: #fff !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 16px !important;<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper tbody tr {<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper tbody tr:last-child {<!-- [et_pb_line_break_holder] -->  border-bottom: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper tbody tr:nth-child(even) {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper tbody td {<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-scope-badge {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(0,120,212,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #0078d4 !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-scope-type {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-scope-type.delegated {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-scope-type.app {<!-- [et_pb_line_break_holder] -->  background: rgba(221,223,76,0.20) !important;<!-- [et_pb_line_break_holder] -->  color: #7a7c00 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-code-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 22px !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] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-block {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-header {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-lang {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-block pre {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 20px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  color: #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  -webkit-overflow-scrolling: touch !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-block code {<!-- [et_pb_line_break_holder] -->  font-family: inherit !important;<!-- [et_pb_line_break_holder] -->  color: inherit !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-kw { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-str { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-cm { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-code-val { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-refresh-box {<!-- [et_pb_line_break_holder] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 8px 8px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-refresh-box strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-refresh-box code {<!-- [et_pb_line_break_holder] -->  background: #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 1px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: anywhere !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-guide-link {<!-- [et_pb_line_break_holder] -->  background: #f0faf6 !important;<!-- [et_pb_line_break_holder] -->  border: 1px 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] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-guide-link a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: anywhere !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-cta-inline {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-oauth.orm-oauth-wrapper .orm-cta-inline:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-intro {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step {<!-- [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-orm-oauth.orm-oauth-wrapper .orm-table-hint {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper {<!-- [et_pb_line_break_holder] -->    padding: 44px 0 !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 23px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-intro {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-steps-title,<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-scopes-title,<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-code-title {<!-- [et_pb_line_break_holder] -->    font-size: 19px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-step {<!-- [et_pb_line_break_holder] -->    padding: 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-dead-banner,<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-refresh-box,<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-guide-link {<!-- [et_pb_line_break_holder] -->    padding: 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-steps {<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-oauth-table-wrap {<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-code-block pre {<!-- [et_pb_line_break_holder] -->    padding: 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-oauth.orm-oauth-wrapper .orm-cta-inline {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 20px !important;<!-- [et_pb_line_break_holder] -->    font-size: 14.5px !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] -->  #unipile-orm-oauth.orm-oauth-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 21px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"orm-oauth\" class=\"orm-oauth-anchor\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-oauth-eyebrow\"><span>Authentication<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h2>OAuth 2.0 Authentication: The Only Path Forward<\/h2>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><pee class=\"orm-oauth-intro\"><!-- [et_pb_line_break_holder] -->  NTLM, Kerberos, and Basic Authentication are all gone for Microsoft 365. OAuth 2.0 is now the mandatory authentication method for every Microsoft Graph API request. There is no fallback, no compatibility mode, and no timeline extension. If your application still uses legacy auth flows, it is already blocked for new tenants and will break entirely for all tenants when EWS enforcement completes in October 2026.<!-- [et_pb_line_break_holder] --><\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-oauth-dead-banner\"><!-- [et_pb_line_break_holder] -->  <strong>Legacy auth status (May 2026):<\/strong> NTLM and Kerberos are fully disabled for Exchange Online. Basic Auth was retired for Exchange Online in October 2022. OAuth 2.0 via Azure AD is the only accepted authentication method for Microsoft Graph.<!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h3 class=\"orm-oauth-steps-title\">Azure AD App Registration: 5 Steps<\/h3>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-oauth-steps\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-oauth-step\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-num\"><span>01<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-body\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-title\">Create an app registration in Azure AD<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-desc\">Go to <code>portal.azure.com<\/code> &#8211; Azure Active Directory &#8211; App registrations &#8211; New registration. Choose a name, set the supported account type (single tenant, multitenant, or personal accounts), and configure a redirect URI.<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-oauth-step\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-num\"><span>02<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-body\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-title\">Configure API permissions<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-desc\">Under <code>API permissions<\/code>, add Microsoft Graph permissions. Choose Delegated (user-context) or Application (daemon) permissions based on your use case. Most email\/calendar integrations use Delegated permissions.<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-oauth-step\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-num\"><span>03<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-body\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-title\">Create a client secret (or certificate)<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-desc\">Under <code>Certificates & secrets<\/code>, create a new client secret. Copy the value immediately &#8211; it is only shown once. For production apps, a certificate is more secure than a client secret.<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-oauth-step\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-num\"><span>04<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-body\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-title\">Implement the authorization code flow<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-desc\">Redirect users to <code>https:\/\/login.microsoftonline.com\/{tenant}\/oauth2\/v2.0\/authorize<\/code> with <code>client_id<\/code>, <code>scope<\/code>, <code>redirect_uri<\/code>, and <code>response_type=code<\/code>. After consent, exchange the code for tokens at the token endpoint.<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-oauth-step\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-num\"><span>05<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-oauth-step-body\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-title\">Request admin consent if needed<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-oauth-step-desc\">Some scopes (like <code>Mail.ReadWrite.All<\/code>) require tenant admin consent before any user can authorize. For these, use the admin consent endpoint: <code>\/adminconsent<\/code> flow with a tenant admin account.<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h3 class=\"orm-oauth-scopes-title\">Required OAuth Scopes for Graph API<\/h3>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-table-hint\"><!-- [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] -->  <span>Scroll horizontally to see the full table<\/span><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-oauth-table-wrap\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<table><!-- [et_pb_line_break_holder] -->    <\/p>\n<thead><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<th>Scope<\/th>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<th>Type<\/th>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<th>Use Case<\/th>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->    <\/thead>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Mail.Read<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type delegated\"><span>Delegated<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Read user mailbox messages<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Mail.ReadWrite<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type delegated\"><span>Delegated<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Read and modify mailbox messages<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Mail.Send<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type delegated\"><span>Delegated<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Send email on behalf of user<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Calendars.ReadWrite<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type delegated\"><span>Delegated<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Read and modify calendar events<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Contacts.Read<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type delegated\"><span>Delegated<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Read user contacts<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Mail.ReadWrite.All<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type app\"><span>Application<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Read\/write all mailboxes (daemon apps, requires admin consent)<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">Calendars.ReadWrite.All<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type app\"><span>Application<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Read\/write all calendars (daemon apps, requires admin consent)<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<tr><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-badge\">offline_access<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span class=\"orm-scope-type delegated\"><span>Delegated<\/span><\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<td><span>Required to receive a refresh token for long-lived access<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->      <\/tr>\n<p><!-- [et_pb_line_break_holder] -->    <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->  <\/table>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h3 class=\"orm-oauth-code-title\">Authorization Code Flow &#8211; Node.js Example<\/h3>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-code-block\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-code-header\"><!-- [et_pb_line_break_holder] -->    <span class=\"orm-code-lang\">JavaScript (Node.js)<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<pre><code><span class=\"orm-code-cm\">\/\/ Step 1: Build authorization URL<\/span><!-- [et_pb_line_break_holder] --><span class=\"orm-code-kw\">const<\/span> <span class=\"orm-code-val\">authUrl<\/span> = <span class=\"orm-code-str\">`https:\/\/login.microsoftonline.com\/${tenantId}\/oauth2\/v2.0\/authorize?`<\/span><!-- [et_pb_line_break_holder] -->  + <span class=\"orm-code-kw\">new<\/span> <span class=\"orm-code-fn\">URLSearchParams<\/span>({<!-- [et_pb_line_break_holder] -->    client_id: <span class=\"orm-code-val\">CLIENT_ID<\/span>,<!-- [et_pb_line_break_holder] -->    response_type: <span class=\"orm-code-str\">'code'<\/span>,<!-- [et_pb_line_break_holder] -->    redirect_uri: <span class=\"orm-code-val\">REDIRECT_URI<\/span>,<!-- [et_pb_line_break_holder] -->    scope: <span class=\"orm-code-str\">'Mail.Read Mail.Send Calendars.ReadWrite offline_access'<\/span>,<!-- [et_pb_line_break_holder] -->    response_mode: <span class=\"orm-code-str\">'query'<\/span><!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"orm-code-cm\">\/\/ Step 2: Exchange code for tokens<\/span><!-- [et_pb_line_break_holder] --><span class=\"orm-code-kw\">const<\/span> <span class=\"orm-code-val\">tokenRes<\/span> = <span class=\"orm-code-kw\">await<\/span> <span class=\"orm-code-fn\">fetch<\/span>(<!-- [et_pb_line_break_holder] -->  <span class=\"orm-code-str\">`https:\/\/login.microsoftonline.com\/${tenantId}\/oauth2\/v2.0\/token`<\/span>,<!-- [et_pb_line_break_holder] -->  {<!-- [et_pb_line_break_holder] -->    method: <span class=\"orm-code-str\">'POST'<\/span>,<!-- [et_pb_line_break_holder] -->    body: <span class=\"orm-code-kw\">new<\/span> <span class=\"orm-code-fn\">URLSearchParams<\/span>({<!-- [et_pb_line_break_holder] -->      client_id: <span class=\"orm-code-val\">CLIENT_ID<\/span>,<!-- [et_pb_line_break_holder] -->      client_secret: <span class=\"orm-code-val\">CLIENT_SECRET<\/span>,<!-- [et_pb_line_break_holder] -->      code: <span class=\"orm-code-val\">authCode<\/span>,<!-- [et_pb_line_break_holder] -->      redirect_uri: <span class=\"orm-code-val\">REDIRECT_URI<\/span>,<!-- [et_pb_line_break_holder] -->      grant_type: <span class=\"orm-code-str\">'authorization_code'<\/span><!-- [et_pb_line_break_holder] -->    })<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->);<!-- [et_pb_line_break_holder] --><span class=\"orm-code-kw\">const<\/span> { access_token, refresh_token } = <span class=\"orm-code-kw\">await<\/span> <span class=\"orm-code-val\">tokenRes<\/span>.<span class=\"orm-code-fn\">json<\/span>();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"orm-code-cm\">\/\/ Step 3: Refresh when access token expires (typically 1 hour)<\/span><!-- [et_pb_line_break_holder] --><span class=\"orm-code-kw\">const<\/span> <span class=\"orm-code-val\">refreshRes<\/span> = <span class=\"orm-code-kw\">await<\/span> <span class=\"orm-code-fn\">fetch<\/span>(tokenEndpoint, {<!-- [et_pb_line_break_holder] -->  method: <span class=\"orm-code-str\">'POST'<\/span>,<!-- [et_pb_line_break_holder] -->  body: <span class=\"orm-code-kw\">new<\/span> <span class=\"orm-code-fn\">URLSearchParams<\/span>({<!-- [et_pb_line_break_holder] -->    client_id: <span class=\"orm-code-val\">CLIENT_ID<\/span>,<!-- [et_pb_line_break_holder] -->    client_secret: <span class=\"orm-code-val\">CLIENT_SECRET<\/span>,<!-- [et_pb_line_break_holder] -->    refresh_token: <span class=\"orm-code-val\">storedRefreshToken<\/span>,<!-- [et_pb_line_break_holder] -->    grant_type: <span class=\"orm-code-str\">'refresh_token'<\/span><!-- [et_pb_line_break_holder] -->  })<!-- [et_pb_line_break_holder] -->});<\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-oauth-refresh-box\"><!-- [et_pb_line_break_holder] -->  <strong>Refresh token handling:<\/strong> Microsoft Graph access tokens expire after 1 hour. Store the <code>refresh_token<\/code> securely in your database and use it to request new access tokens without requiring the user to re-authenticate. Refresh tokens can expire after 90 days of inactivity. Always request the <code>offline_access<\/code> scope to receive a refresh token.<!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-oauth-guide-link\"><!-- [et_pb_line_break_holder] -->  For the complete OAuth setup walkthrough including tenant configuration, consent flows, and token management, see our <a href=\"https:\/\/www.unipile.com\/microsoft-graph-oauth-email\/\">Microsoft Graph OAuth guide<\/a>.<!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div style=\"text-align:center;margin-top:8px;margin-bottom:4px;\"><!-- [et_pb_line_break_holder] -->  <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"orm-cta-inline\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\"><!-- [et_pb_line_break_holder] -->    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0;\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>Start building with Unipile OAuth<\/span><!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var el = document.querySelector('#unipile-orm-oauth .orm-cta-inline');<!-- [et_pb_line_break_holder] -->  if(el){ el.addEventListener('click', function(e){ e.preventDefault(); window.open(this.getAttribute('data-upl-link'),'_blank'); }); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-checklist\" class=\"orm-checklist-wrapper\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper,<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper *,<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-checklist-anchor {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-checklist-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.78rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.08em !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper h2 {<!-- [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: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-checklist-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-deadline-banner {<!-- [et_pb_line_break_holder] -->  background: #fff3f3 !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #ef4444 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 8px 8px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-deadline-banner strong {<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-steps-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: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-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] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-num {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  line-height: 1 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-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] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-desc {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-card.orm-deadline-card {<!-- [et_pb_line_break_holder] -->  border-color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  background: #fff8f8 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-card.orm-deadline-card .orm-step-num {<!-- [et_pb_line_break_holder] -->  color: rgba(239,68,68,0.25) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-step-tag {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.10) !important;<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->  font-size: 10px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 8px !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-cta-strip {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 32px 36px !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] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-cta-strip-text {<!-- [et_pb_line_break_holder] -->  color: #ffffff !important;<!-- [et_pb_line_break_holder] -->  font-size: 18px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  min-width: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-cta-strip-text span {<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-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] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-cta-btn:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-checklist.orm-checklist-wrapper .orm-cta-btn svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2 !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: 768px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-checklist-intro {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-steps-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-cta-strip {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: stretch !important;<!-- [et_pb_line_break_holder] -->    text-align: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-cta-btn {<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    white-space: normal !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper {<!-- [et_pb_line_break_holder] -->    padding: 44px 0 !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 23px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-checklist-intro {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-deadline-banner {<!-- [et_pb_line_break_holder] -->    padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-steps-grid {<!-- [et_pb_line_break_holder] -->    gap: 12px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-step-card {<!-- [et_pb_line_break_holder] -->    padding: 20px 18px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-step-num {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 10px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-cta-strip {<!-- [et_pb_line_break_holder] -->    padding: 26px 20px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-cta-strip-text {<!-- [et_pb_line_break_holder] -->    font-size: 16px !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] -->  #unipile-orm-checklist.orm-checklist-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 21px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-checklist.orm-checklist-wrapper .orm-step-card {<!-- [et_pb_line_break_holder] -->    padding: 18px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"orm-checklist\" class=\"orm-checklist-anchor\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-checklist-eyebrow\"><span>Action Plan<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h2>Migration Checklist: EWS to Microsoft Graph in 10 Steps<\/h2>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><pee class=\"orm-checklist-intro\"><!-- [et_pb_line_break_holder] -->  Microsoft has confirmed hard enforcement of EWS deprecation for Exchange Online on October 1, 2026. There is no grace period, no rollback option, and no compatibility bridge. Every application still using Exchange Web Services for Microsoft 365 will break on that date.<!-- [et_pb_line_break_holder] --><\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-deadline-banner\"><!-- [et_pb_line_break_holder] -->  <strong>Hard deadline: October 1, 2026.<\/strong> No extensions. No compatibility mode. Plan your migration now &#8211; a complex EWS application can take 4-8 weeks to fully migrate to Microsoft Graph.<!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-steps-grid\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>01<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Audit your current EWS usage<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Inventory every EWS call in your codebase: mail operations, calendar sync, contact queries, push\/pull\/streaming notifications. This determines your migration scope and effort estimate.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>02<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Register an Azure AD app and define scopes<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Create your app registration in Azure portal. Define the minimum required Microsoft Graph scopes for your use case. Request only what you need &#8211; avoid over-permissioning.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>03<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Map EWS operations to Graph endpoints<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Create a translation table: FindItem becomes GET \/me\/messages, CreateItem becomes POST \/me\/sendMail, FindAppointments becomes GET \/me\/events. Microsoft provides an official EWS-to-Graph mapping guide.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>04<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Replace WCF\/SOAP with REST HTTP calls<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">EWS uses SOAP over HTTP. Microsoft Graph uses standard REST with JSON. Remove all WCF proxy classes, SOAP XML serialization, and EWS Managed API dependencies from your codebase.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>05<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Migrate auth from legacy protocols to OAuth 2.0<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Replace NTLM, Kerberos, or Basic Auth with the OAuth 2.0 authorization code flow. Implement token refresh logic using the offline_access scope to maintain long-lived access.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>06<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Test in dev tenant with Microsoft Graph Explorer<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Use Graph Explorer (developer.microsoft.com\/graph\/graph-explorer) to prototype and test API calls before writing code. Set up a separate dev tenant to avoid testing against production mailboxes.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>07<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Implement delta queries for incremental sync<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Replace EWS SyncFolderItems with Graph delta queries (GET \/me\/messages\/delta). Store the deltaLink token to enable efficient incremental sync &#8211; only changes since last query are returned.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>08<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Handle throttling: HTTP 429 and Retry-After<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Microsoft Graph enforces strict rate limits. Implement exponential backoff: when you receive HTTP 429, read the Retry-After header and pause for exactly that duration before retrying.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>09<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Update error handling for Graph error format<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Graph errors use a different format than EWS SOAP faults. Parse the JSON error object: { &#8220;error&#8221;: { &#8220;code&#8221;: &#8220;&#8230;&#8221;, &#8220;message&#8221;: &#8220;&#8230;&#8221; } }. Update all your error handling and logging accordingly.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-step-card orm-deadline-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-tag\"><span>Deadline<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-num\"><span>10<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-title\">Production cutover before October 1, 2026<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-step-desc\">Plan your production cutover at least 4 weeks before the deadline. Run both EWS and Graph in parallel during a transition period to validate correctness before fully decommissioning the EWS layer.<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-cta-strip\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cta-strip-text\"><!-- [et_pb_line_break_holder] -->    Migrate to Unipile and <span>skip 8 of 10 steps<\/span> &#8211; no Azure app registration, no OAuth flows, no throttling logic to manage.<!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"orm-cta-btn\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\"><!-- [et_pb_line_break_holder] -->    <span>Build Now<\/span><!-- [et_pb_line_break_holder] -->    <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg><!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var el = document.querySelector('#unipile-orm-checklist .orm-cta-btn');<!-- [et_pb_line_break_holder] -->  if(el){ el.addEventListener('click', function(e){ e.preventDefault(); window.open(this.getAttribute('data-upl-link'),'_blank'); }); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-code\" class=\"orm-code-wrapper\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper,<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper *,<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-code-anchor {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-code-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.78rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.08em !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper h2 {<!-- [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: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-code-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-compare-section {<!-- [et_pb_line_break_holder] -->  margin-bottom: 48px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-compare-label {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  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] -->#unipile-orm-code.orm-code-wrapper .orm-compare-num {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  width: 28px !important;<!-- [et_pb_line_break_holder] -->  height: 28px !important;<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  color: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  border-radius: 6px !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-cols {<!-- [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: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-block {<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-header {<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-header.ews-header {<!-- [et_pb_line_break_holder] -->  background: #2d1b1b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-header.graph-header {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-label {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-label.ews-label {<!-- [et_pb_line_break_holder] -->  color: #fca5a5 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-label.graph-label {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-badge {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  font-size: 10px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-badge.deprecated {<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.20) !important;<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-badge.new {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.20) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-block pre {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, '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] -->  color: #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-all !important;<!-- [et_pb_line_break_holder] -->  min-height: 100px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-col-block code {<!-- [et_pb_line_break_holder] -->  font-family: inherit !important;<!-- [et_pb_line_break_holder] -->  color: inherit !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .kw { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .str { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .tag { color: #7ee787 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .attr { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .cm { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .val { color: #ffa657 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-cta-inline {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  margin-top: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-code.orm-code-wrapper .orm-cta-inline:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-code.orm-code-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-code.orm-code-wrapper .orm-cols {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"orm-code\" class=\"orm-code-anchor\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-code-eyebrow\"><span>Code Examples<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h2>Code Migration Examples: EWS vs Microsoft Graph<\/h2>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><pee class=\"orm-code-intro\"><!-- [et_pb_line_break_holder] -->  Below are 4 common operations compared side-by-side: the legacy EWS SOAP approach on the left, the Microsoft Graph REST equivalent on the right. The shift from verbose XML to clean JSON is immediately apparent.<!-- [et_pb_line_break_holder] --><\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-compare-section\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-compare-label\"><!-- [et_pb_line_break_holder] -->    <span class=\"orm-compare-num\"><span>1<\/span><\/span><!-- [et_pb_line_break_holder] -->    <span>Read inbox messages<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cols\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header ews-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label ews-label\">EWS &#8211; FindItem SOAP<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge deprecated\"><span>Deprecated<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"tag\"><soap:Envelope<\/span> <span class=\"attr\">xmlns:soap<\/span>=<span class=\"str\">\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\"<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">xmlns:t<\/span>=<span class=\"str\">\"http:\/\/schemas.microsoft.com\/exchange\/services\/2006\/types\"<\/span><span class=\"tag\">><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><soap:Body><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><FindItem<\/span> <span class=\"attr\">Traversal<\/span>=<span class=\"str\">\"Shallow\"<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"attr\">xmlns<\/span>=<span class=\"str\">\"http:\/\/schemas.microsoft.com\/exchange\/services\/2006\/messages\"<\/span><span class=\"tag\">><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><ItemShape><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"tag\"><t:BaseShape><\/span>Default<span class=\"tag\"><\/t:BaseShape><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><\/ItemShape><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><IndexedPageItemView<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"attr\">MaxEntriesReturned<\/span>=<span class=\"str\">\"10\"<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"attr\">Offset<\/span>=<span class=\"str\">\"0\"<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"attr\">BasePoint<\/span>=<span class=\"str\">\"Beginning\"<\/span><span class=\"tag\">\/><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><ParentFolderIds><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"tag\"><t:DistinguishedFolderId<\/span> <span class=\"attr\">Id<\/span>=<span class=\"str\">\"inbox\"<\/span><span class=\"tag\">\/><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><\/ParentFolderIds><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><\/FindItem><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><\/soap:Body><\/span><!-- [et_pb_line_break_holder] --><span class=\"tag\"><\/soap:Envelope><\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header graph-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label graph-label\">Microsoft Graph REST<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge new\"><span>Current<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"cm\">GET \/me\/messages<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">?$select<\/span>=<span class=\"str\">subject,from,receivedDateTime,bodyPreview<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">&$top<\/span>=<span class=\"val\">10<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">&$orderby<\/span>=<span class=\"str\">receivedDateTime desc<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">Authorization: Bearer {access_token}<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Response (JSON):<\/span><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"value\"<\/span>: [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      <span class=\"attr\">\"id\"<\/span>: <span class=\"str\">\"AAMkAGI...\"<\/span>,<!-- [et_pb_line_break_holder] -->      <span class=\"attr\">\"subject\"<\/span>: <span class=\"str\">\"Hello\"<\/span>,<!-- [et_pb_line_break_holder] -->      <span class=\"attr\">\"from\"<\/span>: {<!-- [et_pb_line_break_holder] -->        <span class=\"attr\">\"emailAddress\"<\/span>: {<!-- [et_pb_line_break_holder] -->          <span class=\"attr\">\"address\"<\/span>: <span class=\"str\">\"sender@example.com\"<\/span><!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      },<!-- [et_pb_line_break_holder] -->      <span class=\"attr\">\"receivedDateTime\"<\/span>: <span class=\"str\">\"2026-05-27T...\"<\/span><!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  ],<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"@odata.nextLink\"<\/span>: <span class=\"str\">\"https:\/\/...\"<\/span><!-- [et_pb_line_break_holder] -->}<\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-compare-section\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-compare-label\"><!-- [et_pb_line_break_holder] -->    <span class=\"orm-compare-num\"><span>2<\/span><\/span><!-- [et_pb_line_break_holder] -->    <span>Send an email<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cols\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header ews-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label ews-label\">EWS &#8211; CreateItem SOAP<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge deprecated\"><span>Deprecated<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"tag\"><CreateItem<\/span> <span class=\"attr\">MessageDisposition<\/span>=<span class=\"str\">\"SendAndSaveCopy\"<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">xmlns<\/span>=<span class=\"str\">\"http:\/\/schemas.microsoft.com\/...\/messages\"<\/span><span class=\"tag\">><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><Items><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><t:Message><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><t:Subject><\/span>Hello from EWS<span class=\"tag\"><\/t:Subject><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><t:Body<\/span> <span class=\"attr\">BodyType<\/span>=<span class=\"str\">\"HTML\"<\/span><span class=\"tag\">><\/span><!-- [et_pb_line_break_holder] -->        <pee>Message body<\/pee><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><\/t:Body><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><t:ToRecipients><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"tag\"><t:Mailbox><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"tag\"><t:EmailAddress><\/span><!-- [et_pb_line_break_holder] -->            to@example.com<!-- [et_pb_line_break_holder] -->          <span class=\"tag\"><\/t:EmailAddress><\/span><!-- [et_pb_line_break_holder] -->        <span class=\"tag\"><\/t:Mailbox><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><\/t:ToRecipients><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><\/t:Message><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><\/Items><\/span><!-- [et_pb_line_break_holder] --><span class=\"tag\"><\/CreateItem><\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header graph-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label graph-label\">Microsoft Graph REST<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge new\"><span>Current<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"cm\">POST \/me\/sendMail<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">Authorization: Bearer {access_token}<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">Content-Type: application\/json<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"message\"<\/span>: {<!-- [et_pb_line_break_holder] -->    <span class=\"attr\">\"subject\"<\/span>: <span class=\"str\">\"Hello from Graph\"<\/span>,<!-- [et_pb_line_break_holder] -->    <span class=\"attr\">\"body\"<\/span>: {<!-- [et_pb_line_break_holder] -->      <span class=\"attr\">\"contentType\"<\/span>: <span class=\"str\">\"HTML\"<\/span>,<!-- [et_pb_line_break_holder] -->      <span class=\"attr\">\"content\"<\/span>: <span class=\"str\">\"<pee>Message body<\/pee>\"<\/span><!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    <span class=\"attr\">\"toRecipients\"<\/span>: [<!-- [et_pb_line_break_holder] -->      {<!-- [et_pb_line_break_holder] -->        <span class=\"attr\">\"emailAddress\"<\/span>: {<!-- [et_pb_line_break_holder] -->          <span class=\"attr\">\"address\"<\/span>: <span class=\"str\">\"to@example.com\"<\/span><!-- [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] -->  <span class=\"attr\">\"saveToSentItems\"<\/span>: <span class=\"val\">true<\/span><!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Response: HTTP 202 Accepted (no body)<\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-compare-section\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-compare-label\"><!-- [et_pb_line_break_holder] -->    <span class=\"orm-compare-num\"><span>3<\/span><\/span><!-- [et_pb_line_break_holder] -->    <span>Get calendar events<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cols\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header ews-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label ews-label\">EWS &#8211; FindAppointments SOAP<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge deprecated\"><span>Deprecated<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"tag\"><FindItem<\/span> <span class=\"attr\">Traversal<\/span>=<span class=\"str\">\"Shallow\"<\/span><span class=\"tag\">><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><ItemShape><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><t:BaseShape><\/span>AllProperties<span class=\"tag\"><\/t:BaseShape><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><\/ItemShape><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><CalendarView<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"attr\">MaxEntriesReturned<\/span>=<span class=\"str\">\"50\"<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"attr\">StartDate<\/span>=<span class=\"str\">\"2026-05-01T00:00:00Z\"<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"attr\">EndDate<\/span>=<span class=\"str\">\"2026-05-31T23:59:59Z\"<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\">\/><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><ParentFolderIds><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><t:DistinguishedFolderId<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"attr\">Id<\/span>=<span class=\"str\">\"calendar\"<\/span><span class=\"tag\">\/><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><\/ParentFolderIds><\/span><!-- [et_pb_line_break_holder] --><span class=\"tag\"><\/FindItem><\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header graph-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label graph-label\">Microsoft Graph REST<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge new\"><span>Current<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"cm\">GET \/me\/events<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">?$select<\/span>=<span class=\"str\">subject,start,end,location,organizer<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">&$filter<\/span>=<span class=\"str\">start\/dateTime ge '2026-05-01T00:00:00Z'<\/span><!-- [et_pb_line_break_holder] -->    <span class=\"kw\">and<\/span> <span class=\"str\">end\/dateTime le '2026-05-31T23:59:59Z'<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">&$top<\/span>=<span class=\"val\">50<\/span><!-- [et_pb_line_break_holder] -->  <span class=\"attr\">&$orderby<\/span>=<span class=\"str\">start\/dateTime asc<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">Authorization: Bearer {access_token}<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Returns a clean JSON array of<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ calendar event objects - no XML parsing<\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-compare-section\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-compare-label\"><!-- [et_pb_line_break_holder] -->    <span class=\"orm-compare-num\"><span>4<\/span><\/span><!-- [et_pb_line_break_holder] -->    <span>Subscribe to real-time changes<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cols\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header ews-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label ews-label\">EWS &#8211; Streaming Notifications<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge deprecated\"><span>Deprecated<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"tag\"><Subscribe><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><StreamingSubscriptionRequest><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><FolderIds><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><t:DistinguishedFolderId<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"attr\">Id<\/span>=<span class=\"str\">\"inbox\"<\/span><span class=\"tag\">\/><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><\/FolderIds><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><EventTypes><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><t:EventType><\/span>NewMailEvent<span class=\"tag\"><\/t:EventType><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"tag\"><t:EventType><\/span>DeletedEvent<span class=\"tag\"><\/t:EventType><\/span><!-- [et_pb_line_break_holder] -->    <span class=\"tag\"><\/EventTypes><\/span><!-- [et_pb_line_break_holder] -->  <span class=\"tag\"><\/StreamingSubscriptionRequest><\/span><!-- [et_pb_line_break_holder] --><span class=\"tag\"><\/Subscribe><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\"><!-- Then: GetStreamingEvents SOAP call --><\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\"><!-- Must keep connection alive, handle --><\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\"><!-- heartbeats, re-subscribe on timeout --><\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-col-block\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"orm-col-header graph-header\"><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-label graph-label\">Microsoft Graph Webhooks<\/span><!-- [et_pb_line_break_holder] -->        <span class=\"orm-col-badge new\"><span>Current<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<pre><code><span class=\"cm\">POST \/subscriptions<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">Authorization: Bearer {access_token}<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">Content-Type: application\/json<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"changeType\"<\/span>: <span class=\"str\">\"created,updated,deleted\"<\/span>,<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"notificationUrl\"<\/span>: <span class=\"str\">\"https:\/\/yourapp.com\/webhook\"<\/span>,<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"resource\"<\/span>: <span class=\"str\">\"\/me\/messages\"<\/span>,<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"expirationDateTime\"<\/span>: <span class=\"str\">\"2026-06-03T18:00:00Z\"<\/span>,<!-- [et_pb_line_break_holder] -->  <span class=\"attr\">\"clientState\"<\/span>: <span class=\"str\">\"your-secret-state\"<\/span><!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Graph POSTs to your URL on every change.<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Renew subscription before expiry.<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ No persistent connection required.<\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div style=\"text-align:center;margin-top:8px;margin-bottom:4px;\"><!-- [et_pb_line_break_holder] -->  <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"orm-cta-inline\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\"><!-- [et_pb_line_break_holder] -->    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>Build with Microsoft Graph via Unipile<\/span><!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var el = document.querySelector('#unipile-orm-code .orm-cta-inline');<!-- [et_pb_line_break_holder] -->  if(el){ el.addEventListener('click', function(e){ e.preventDefault(); window.open(this.getAttribute('data-upl-link'),'_blank'); }); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-pitfalls\" class=\"orm-pitfalls-wrapper\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper,<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper *,<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-anchor {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(245,158,11,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #d97706 !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.78rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.08em !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper h2 {<!-- [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: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-intro a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-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] -->  border-top: 3px solid #f59e0b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-icon {<!-- [et_pb_line_break_holder] -->  width: 40px !important;<!-- [et_pb_line_break_holder] -->  height: 40px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(245,158,11,0.10) !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 14px !important;<!-- [et_pb_line_break_holder] -->  color: #d97706 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-icon 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] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-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] -->  margin-bottom: 10px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-desc {<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-desc strong {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-desc code {<!-- [et_pb_line_break_holder] -->  background: #f1f5f9 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  padding: 1px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 3px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: anywhere !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-table {<!-- [et_pb_line_break_holder] -->  width: 100% !important;<!-- [et_pb_line_break_holder] -->  border-collapse: collapse !important;<!-- [et_pb_line_break_holder] -->  margin-top: 10px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  table-layout: fixed !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-table th {<!-- [et_pb_line_break_holder] -->  text-align: left !important;<!-- [et_pb_line_break_holder] -->  padding: 5px 8px !important;<!-- [et_pb_line_break_holder] -->  background: #f1f5f9 !important;<!-- [et_pb_line_break_holder] -->  color: #64748b !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-table td {<!-- [et_pb_line_break_holder] -->  padding: 5px 8px !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  vertical-align: top !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid #f1f5f9 !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  word-break: break-word !important;<!-- [et_pb_line_break_holder] -->  overflow-wrap: anywhere !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-intro {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper {<!-- [et_pb_line_break_holder] -->    padding: 44px 0 !important;<!-- [et_pb_line_break_holder] -->    overflow-x: hidden !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-intro {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 24px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfalls-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !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] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-card {<!-- [et_pb_line_break_holder] -->    padding: 20px 18px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 14px !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] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 22px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-pitfalls.orm-pitfalls-wrapper .orm-pitfall-card {<!-- [et_pb_line_break_holder] -->    padding: 18px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"orm-pitfalls\" class=\"orm-pitfalls-anchor\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-pitfalls-eyebrow\"><span>Watch Out<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h2>Common Pitfalls: Permissions, Rate Limits, Throttling<\/h2>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><pee class=\"orm-pitfalls-intro\"><!-- [et_pb_line_break_holder] -->  Even developers experienced with Exchange Web Services regularly hit the same walls when migrating to Microsoft Graph. These 6 pitfalls account for the majority of production incidents during migration. Understanding them now saves days of debugging later. For a broader perspective on how these challenges compare across providers, see our <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\">comparison of email API providers<\/a>.<!-- [et_pb_line_break_holder] --><\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-pitfalls-grid\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-pitfall-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-icon\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-title\">Application vs Delegated permissions<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-desc\"><!-- [et_pb_line_break_holder] -->      This is the most common confusion. <strong>Delegated<\/strong> permissions act on behalf of a signed-in user. <strong>Application<\/strong> permissions act as a service with no user context &#8211; and require admin consent.<!-- [et_pb_line_break_holder] -->      <\/p>\n<table class=\"orm-pitfall-table\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<tr>\n<th>Type<\/th>\n<th>Context<\/th>\n<th>Admin consent<\/th>\n<\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tr>\n<td>Delegated<\/td>\n<td>User signed in<\/td>\n<td>Sometimes<\/td>\n<\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tr>\n<td>Application<\/td>\n<td>No user \/ daemon<\/td>\n<td>Always<\/td>\n<\/tr>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-pitfall-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-icon\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-title\">Throttling limits: HTTP 429 and Retry-After<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-desc\"><!-- [et_pb_line_break_holder] -->      Microsoft Graph enforces a limit of approximately 10,000 requests per 10 minutes per app per tenant. When throttled, you receive <code>HTTP 429<\/code> with a <code>Retry-After<\/code> header specifying the wait time in seconds. Ignoring this header and retrying immediately results in an extended ban. Always implement exponential backoff with the exact Retry-After value.<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-pitfall-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-icon\"><!-- [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>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-title\">Pagination via @odata.nextLink<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-desc\"><!-- [et_pb_line_break_holder] -->      Graph paginates results at a default page size (typically 10 messages). If you do not check for <code>@odata.nextLink<\/code> in the response, you silently miss data. Always loop: if <code>@odata.nextLink<\/code> is present, make another GET request to that URL (it includes the skip token) until the field is absent.<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-pitfall-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-icon\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-title\">Admin consent for sensitive scopes<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-desc\"><!-- [et_pb_line_break_holder] -->      Scopes like <code>Mail.ReadWrite.All<\/code>, <code>Calendars.ReadWrite.All<\/code>, and <code>User.Read.All<\/code> require a tenant administrator to grant consent before any user can authorize your app. Without admin consent, the OAuth flow returns an <code>AADSTS65001<\/code> error. Use the <code>\/adminconsent<\/code> endpoint during app onboarding for enterprise customers.<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-pitfall-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-icon\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><polyline points=\"1 4 1 10 7 10\"\/><path d=\"M3.51 15a9 9 0 1 0 .49-3.51\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-title\">Delta query state: managing deltaLink<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-desc\"><!-- [et_pb_line_break_holder] -->      Delta queries return changes since your last sync, identified by a <code>deltaLink<\/code> token in the final page. Store this token persistently &#8211; it is your sync cursor. If you lose it, you must perform a full resync. Never hardcode a time range &#8211; use the deltaLink to avoid processing duplicates or missing changes.<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-pitfall-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-icon\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\"><path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-title\">Attachment handling: 3MB size boundary<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-pitfall-desc\"><!-- [et_pb_line_break_holder] -->      Attachments under 3MB can be included inline in a single API call. For files larger than 3MB, you must create an upload session first (<code>POST \/me\/messages\/{id}\/attachments\/createUploadSession<\/code>) and upload in chunks. Attempting to inline a large attachment results in a <code>413 Request Entity Too Large<\/code> error.<!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-orm-unipile\" class=\"orm-unipile-wrapper\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper,<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper *,<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper *::before,<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  padding: 60px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-unipile-anchor {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  height: 0 !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-unipile-eyebrow {<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.78rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.08em !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  padding: 4px 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper h2 {<!-- [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: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-unipile-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-unipile-sub {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 36px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-unipile-sub a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-compare-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 20px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-cols {<!-- [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: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col {<!-- [et_pb_line_break_holder] -->  border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col-header {<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col-header.graph-h {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col-header.upl-h {<!-- [et_pb_line_break_holder] -->  background: #0a2218 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col-lang {<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col-lang.graph-l {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col-lang.upl-l {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-line-count {<!-- [et_pb_line_break_holder] -->  font-size: 11px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 8px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-line-count.many {<!-- [et_pb_line_break_holder] -->  background: rgba(239,68,68,0.15) !important;<!-- [et_pb_line_break_holder] -->  color: #ef4444 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-line-count.few {<!-- [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-orm-unipile.orm-unipile-wrapper .orm-code-col pre {<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  font-family: 'SF Mono', Monaco, '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] -->  color: #e2e8f0 !important;<!-- [et_pb_line_break_holder] -->  white-space: pre-wrap !important;<!-- [et_pb_line_break_holder] -->  word-break: break-all !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-code-col code {<!-- [et_pb_line_break_holder] -->  font-family: inherit !important;<!-- [et_pb_line_break_holder] -->  color: inherit !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .kw { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .str { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .cm { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .val { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .grn { color: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-trust-row {<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 16px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-trust-item {<!-- [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] -->  background: #f8fafc !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-trust-item svg {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-cta-dark {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 40px 36px !important;<!-- [et_pb_line_break_holder] -->  text-align: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-cta-dark-title {<!-- [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: #fff !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] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-cta-dark-desc {<!-- [et_pb_line_break_holder] -->  color: #94a3b8 !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !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] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-cta-dark-desc a {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-cta-btn-yellow {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 32px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.2s !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#unipile-orm-unipile.orm-unipile-wrapper .orm-cta-btn-yellow:hover {<!-- [et_pb_line_break_holder] -->  transform: translateY(-5px) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 768px) {<!-- [et_pb_line_break_holder] -->  #unipile-orm-unipile.orm-unipile-wrapper h2 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-unipile.orm-unipile-wrapper .orm-code-cols {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-unipile.orm-unipile-wrapper .orm-trust-row {<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #unipile-orm-unipile.orm-unipile-wrapper .orm-cta-dark {<!-- [et_pb_line_break_holder] -->    padding: 32px 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"orm-unipile\" class=\"orm-unipile-anchor\"><\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-unipile-eyebrow\"><span>Unified API Approach<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h2>Skip the Migration Headache: Unified Email API Approach<\/h2>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><pee class=\"orm-unipile-intro\"><!-- [et_pb_line_break_holder] -->  A full EWS-to-Graph migration for a complex application takes 4 to 8 weeks of engineering time. You need to register Azure apps, implement OAuth flows, handle token refresh, manage throttling, rewrite every SOAP call, update error handling, and test across environments. Then do it again when Microsoft changes something.<!-- [et_pb_line_break_holder] --><\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><pee class=\"orm-unipile-sub\"><!-- [et_pb_line_break_holder] -->  Unipile abstracts Microsoft Graph, Gmail, and IMAP under a single unified API. You authenticate your users once via Unipile, and read\/send email, sync calendars, and manage contacts across all three providers with the same endpoints &#8211; no Azure app registration, no per-provider OAuth flows, no throttling logic to maintain. See our <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\">complete email API guide<\/a> and <a href=\"https:\/\/www.unipile.com\/email-api-providers\/\">email API provider comparison<\/a> to understand the landscape.<!-- [et_pb_line_break_holder] --><\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<h3 class=\"orm-code-compare-title\">50 lines of Microsoft Graph vs 5 lines of Unipile<\/h3>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-code-cols\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-code-col\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-code-col-header graph-h\"><!-- [et_pb_line_break_holder] -->      <span class=\"orm-code-col-lang graph-l\">Microsoft Graph &#8211; Read inbox (native)<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"orm-line-count many\"><span>~50 lines<\/span><\/span><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<pre><code><span class=\"cm\">\/\/ 1. Azure app registration (portal.azure.com)<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ 2. OAuth authorization code flow<\/span><!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> authUrl = <span class=\"str\">`https:\/\/login.microsoftonline.com\/${tenantId}\/oauth2\/v2.0\/authorize?`<\/span><!-- [et_pb_line_break_holder] -->  + <span class=\"kw\">new<\/span> <span class=\"fn\">URLSearchParams<\/span>({<!-- [et_pb_line_break_holder] -->      client_id: CLIENT_ID,<!-- [et_pb_line_break_holder] -->      response_type: <span class=\"str\">'code'<\/span>,<!-- [et_pb_line_break_holder] -->      redirect_uri: REDIRECT_URI,<!-- [et_pb_line_break_holder] -->      scope: <span class=\"str\">'Mail.Read offline_access'<\/span>,<!-- [et_pb_line_break_holder] -->      response_mode: <span class=\"str\">'query'<\/span><!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ 3. Handle redirect, exchange code for tokens<\/span><!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> tokenRes = <span class=\"kw\">await<\/span> <span class=\"fn\">fetch<\/span>(<span class=\"str\">`https:\/\/login.microsoftonline.com\/${tenantId}\/oauth2\/v2.0\/token`<\/span>, {<!-- [et_pb_line_break_holder] -->  method: <span class=\"str\">'POST'<\/span>,<!-- [et_pb_line_break_holder] -->  body: <span class=\"kw\">new<\/span> <span class=\"fn\">URLSearchParams<\/span>({<!-- [et_pb_line_break_holder] -->    client_id: CLIENT_ID, client_secret: CLIENT_SECRET,<!-- [et_pb_line_break_holder] -->    code: authCode, redirect_uri: REDIRECT_URI,<!-- [et_pb_line_break_holder] -->    grant_type: <span class=\"str\">'authorization_code'<\/span><!-- [et_pb_line_break_holder] -->  })<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> { access_token, refresh_token } = <span class=\"kw\">await<\/span> tokenRes.<span class=\"fn\">json<\/span>();<!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ 4. Store + refresh tokens on expiry (every hour)<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ 5. Call Graph with Bearer token<\/span><!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> res = <span class=\"kw\">await<\/span> <span class=\"fn\">fetch<\/span>(<span class=\"str\">'https:\/\/graph.microsoft.com\/v1.0\/me\/messages?$top=10'<\/span>, {<!-- [et_pb_line_break_holder] -->  headers: { Authorization: <span class=\"str\">`Bearer ${access_token}`<\/span> }<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ 6. Handle throttling (HTTP 429 + Retry-After)<\/span><!-- [et_pb_line_break_holder] --><span class=\"kw\">if<\/span> (res.status === <span class=\"val\">429<\/span>) {<!-- [et_pb_line_break_holder] -->  <span class=\"kw\">const<\/span> retryAfter = res.headers.<span class=\"fn\">get<\/span>(<span class=\"str\">'Retry-After'<\/span>);<!-- [et_pb_line_break_holder] -->  <span class=\"kw\">await<\/span> <span class=\"fn\">sleep<\/span>(retryAfter * <span class=\"val\">1000<\/span>);<!-- [et_pb_line_break_holder] -->  <span class=\"cm\">\/\/ retry...<\/span><!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ 7. Paginate via @odata.nextLink<\/span><!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> data = <span class=\"kw\">await<\/span> res.<span class=\"fn\">json<\/span>();<!-- [et_pb_line_break_holder] --><span class=\"kw\">let<\/span> messages = data.value;<!-- [et_pb_line_break_holder] --><span class=\"kw\">while<\/span> (data[<span class=\"str\">'@odata.nextLink'<\/span>]) { <span class=\"cm\">\/* ... *\/<\/span> }<\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-code-col\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"orm-code-col-header upl-h\"><!-- [et_pb_line_break_holder] -->      <span class=\"orm-code-col-lang upl-l\">Unipile &#8211; Read inbox (unified API)<\/span><!-- [et_pb_line_break_holder] -->      <span class=\"orm-line-count few\"><span>5 lines<\/span><\/span><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<pre><code><span class=\"cm\">\/\/ No Azure app, no OAuth flows to implement,<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ no throttling logic, no token refresh.<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Works for Outlook AND Gmail AND IMAP.<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> client = <span class=\"kw\">new<\/span> <span class=\"fn\">UnipileClient<\/span>(<span class=\"grn\">API_KEY<\/span>);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"kw\">const<\/span> messages = <span class=\"kw\">await<\/span> client.email.<span class=\"fn\">listMessages<\/span>({<!-- [et_pb_line_break_holder] -->  account_id: <span class=\"grn\">userAccountId<\/span>, <span class=\"cm\">\/\/ linked account<\/span><!-- [et_pb_line_break_holder] -->  folder: <span class=\"str\">'INBOX'<\/span>,<!-- [et_pb_line_break_holder] -->  limit: <span class=\"val\">10<\/span><!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Same code, same response format<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ for Outlook, Gmail, and IMAP.<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ Unipile handles OAuth, throttling,<\/span><!-- [et_pb_line_break_holder] --><span class=\"cm\">\/\/ pagination, and token refresh.<\/span><\/code><\/pre>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-trust-row\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-trust-item\"><!-- [et_pb_line_break_holder] -->    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>SOC 2 Type II<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-trust-item\"><!-- [et_pb_line_break_holder] -->    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>GDPR compliant<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-trust-item\"><!-- [et_pb_line_break_holder] -->    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>CASA Tier 2<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-trust-item\"><!-- [et_pb_line_break_holder] -->    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>99.99% uptime SLA<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-trust-item\"><!-- [et_pb_line_break_holder] -->    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>Outlook + Gmail + IMAP<\/span><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"orm-cta-dark\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cta-dark-title\">Stop rebuilding the same OAuth plumbing<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"orm-cta-dark-desc\"><!-- [et_pb_line_break_holder] -->    Read email, send messages, sync calendars across Outlook, Gmail, and IMAP with a single API. Unipile handles the EWS-to-Graph migration complexity so your team ships features instead of auth flows.<!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" class=\"orm-cta-btn-yellow\" data-upl-link=\"https:\/\/dashboard.unipile.com\/signup\/\"><!-- [et_pb_line_break_holder] -->    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14\"\/><path d=\"M12 5l7 7-7 7\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <span>Start building with Unipile<\/span><!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var el = document.querySelector('#unipile-orm-unipile .orm-cta-btn-yellow');<!-- [et_pb_line_break_holder] -->  if(el){ el.addEventListener('click', function(e){ e.preventDefault(); window.open(this.getAttribute('data-upl-link'),'_blank'); }); }<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; 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; Outlook REST API &#038; EWS FAQ<\/title><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script type=\"application\/ld+json\"><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  \"@context\": \"https:\/\/schema.org\",<!-- [et_pb_line_break_holder] -->  \"@type\": \"FAQPage\",<!-- [et_pb_line_break_holder] -->  \"mainEntity\": [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Is Outlook REST API still available?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"No. The Outlook REST API (v2.0 and beta) was retired by Microsoft. The official replacement is Microsoft Graph. All new Outlook integrations must use Microsoft Graph endpoints.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What is the difference between Outlook REST API and Microsoft Graph?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"The Outlook REST API was a dedicated REST API for Outlook mailbox operations only. Microsoft Graph is the unified API for all Microsoft 365 services including Outlook mail, calendar, contacts, Teams, SharePoint, and more. Microsoft Graph uses the same OAuth 2.0 authentication and supports the same email and calendar operations, but with a broader feature set and a single endpoint (graph.microsoft.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\": \"When does EWS stop working in Office 365?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Exchange Web Services (EWS) is being deprecated for Exchange Online (Microsoft 365). Microsoft announced October 1, 2026 as the hard enforcement date. After that date, EWS will no longer function for Microsoft 365 mailboxes. EWS will continue to work for on-premises Exchange Server installations.\"<!-- [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 replaces EWS in Microsoft 365?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Microsoft Graph is the official replacement for Exchange Web Services in Microsoft 365. All EWS operations - reading messages, sending email, accessing calendar events, managing contacts, and subscribing to change notifications - have equivalent Microsoft Graph endpoints. Authentication migrates from NTLM\/Kerberos\/Basic Auth to OAuth 2.0 via Azure AD.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Can I still use Outlook REST API v2.0 after March 2024?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"No. The Outlook REST API v2.0 was retired by Microsoft. Requests to the legacy Outlook REST endpoints will fail. You must migrate all integrations to Microsoft Graph, which provides equivalent functionality for email, calendar, and contact operations.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How long does EWS to Microsoft Graph migration take?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Migration time depends on the complexity of your EWS implementation. A simple application with a few operations may take 1-2 weeks. A complex application with extensive EWS usage, streaming notifications, delta sync, and custom error handling typically takes 4-8 weeks of engineering effort. An alternative approach is to use a unified API like Unipile, which abstracts Microsoft Graph and eliminates most of the migration work.\"<!-- [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\": \"Do I need to migrate Outlook add-ins by October 2026?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"The October 2026 deadline specifically applies to Exchange Web Services (EWS) usage in Exchange Online. Outlook add-ins using the Office.js API are on a separate deprecation track. However, Microsoft has been transitioning from COM-based add-ins and VSTO to web-based add-ins using the Office Add-in platform. Check the Microsoft 365 roadmap for the most current guidance on add-in deprecation timelines.\"<!-- [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 OAuth scopes do I need for Outlook REST API?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Since the Outlook REST API is retired, you need Microsoft Graph scopes. The key scopes for email are: Mail.Read (read messages), Mail.Send (send email), Mail.ReadWrite (modify messages), Calendars.ReadWrite (calendar access), Contacts.Read (contacts). Add offline_access to receive a refresh token for long-lived access. Application permissions (like Mail.ReadWrite.All) require admin consent from the tenant administrator.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How does Microsoft Graph handle throttling?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Microsoft Graph enforces rate limits at approximately 10,000 requests per 10 minutes per application per tenant. When a request is throttled, the API returns HTTP 429 with a Retry-After header specifying how many seconds to wait. Always read the Retry-After value and wait exactly that duration before retrying. Do not implement fixed backoff without reading this header, as the wait time varies. For production applications, implement exponential backoff with the Retry-After header as the minimum wait.\"<!-- [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 Unipile an alternative to Microsoft Graph for Outlook integration?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Unipile is a unified email API that abstracts Microsoft Graph, Gmail, and IMAP under a single API. Instead of implementing Microsoft Graph authentication, OAuth flows, throttling handling, and pagination yourself, you connect user accounts through Unipile and use one consistent API for all providers. This is particularly useful for SaaS applications that need to integrate with multiple email providers simultaneously.\"<!-- [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@600;700&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span id=\"faq-outlook-ews\" style=\"display:block;position:relative;top:-80px;visibility:hidden;\"><\/span><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#upl-ews-faq { font-family:'Inter',sans-serif; padding:80px 20px; max-width:900px; margin:0 auto; background:transparent!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq *, #upl-ews-faq *::before, #upl-ews-faq *::after { margin:0!important; padding:0!important; box-sizing:border-box!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-header { text-align:center!important; margin-bottom:60px!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-title { font-family:'Poppins',sans-serif!important; font-size:clamp(32px,5vw,38px)!important; font-weight:700!important; color:#0f2736!important; margin-bottom:16px!important; line-height:1.2!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-subtitle { font-size:17px!important; color:#383838!important; max-width:700px!important; margin:0 auto!important; line-height:1.6!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-list { display:flex!important; flex-direction:column!important; gap:12px!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item { background:#ffffff!important; border:1px solid #e5e7eb!important; border-radius:16px!important; overflow:hidden!important; transition:all 0.3s ease!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item:hover { border-color:#3BB98B!important; box-shadow:0 4px 20px rgba(59,185,139,0.08)!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item.active { border-color:#3BB98B!important; box-shadow:0 8px 30px rgba(59,185,139,0.12)!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-question { width:100%!important; display:flex!important; align-items:flex-start!important; justify-content:space-between!important; gap:20px!important; padding:24px 28px!important; background:transparent!important; border:none!important; cursor:pointer!important; text-align:left!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-question-content { display:flex!important; align-items:flex-start!important; gap:16px!important; flex:1!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-number { flex-shrink:0!important; padding:6px 12px!important; background:rgba(59,185,139,0.12)!important; color:#3BB98B!important; border-radius:20px!important; font-size:0.8rem!important; font-weight:600!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item.active .upl-faq-number { background:rgba(59,185,139,0.2)!important; color:#2a9d6e!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-question-text { font-family:'Poppins',sans-serif!important; font-size:1.1rem!important; font-weight:600!important; color:#0f2736!important; line-height:1.4!important; padding-top:4px!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-icon { flex-shrink:0!important; width:36px!important; height:36px!important; background:#f4f5f7!important; border-radius:50%!important; display:flex!important; align-items:center!important; justify-content:center!important; transition:all 0.3s ease!important; margin-top:2px!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-icon svg { width:18px!important; height:18px!important; color:#64748b!important; transition:all 0.3s ease!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item:hover .upl-faq-icon { background:rgba(59,185,139,0.1)!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item:hover .upl-faq-icon svg { color:#3BB98B!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item.active .upl-faq-icon { background:#3BB98B!important; transform:rotate(45deg)!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item.active .upl-faq-icon svg { color:#ffffff!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-answer { max-height:0!important; overflow:hidden!important; transition:max-height 0.4s ease!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-item.active .upl-faq-answer { max-height:600px!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-answer-content { padding:0 28px 28px 76px!important; color:#475569!important; font-size:1rem!important; line-height:1.7!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-answer-content strong { color:#0f2736!important; font-weight:600!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-answer-content a { color:#3BB98B!important; text-decoration:underline!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-answer-content code { font-family:monospace!important; background:#f1f5f9!important; padding:2px 6px!important; border-radius:3px!important; font-size:0.85em!important; color:#0f2736!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-cta { margin-top:50px!important; display:flex!important; align-items:center!important; justify-content:space-between!important; gap:20px!important; padding:20px 28px!important; background:#ffffff!important; border:1px solid #e5e7eb!important; border-radius:12px!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-cta-text { color:#475569!important; font-size:1rem!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-cta-button { display:inline-flex!important; align-items:center!important; gap:10px!important; background:#DDDF4C!important; color:#0F2836!important; padding:13px 20px!important; border-radius:8px!important; text-decoration:none!important; font-weight:700!important; font-size:1rem!important; border:none!important; cursor:pointer!important; white-space:nowrap!important; }<!-- [et_pb_line_break_holder] -->#upl-ews-faq .upl-faq-cta-button:hover { transform:translateY(-2px)!important; }<!-- [et_pb_line_break_holder] -->@media (max-width:768px) {<!-- [et_pb_line_break_holder] -->  #upl-ews-faq { padding:60px 16px!important; }<!-- [et_pb_line_break_holder] -->  #upl-ews-faq .upl-faq-answer-content { padding:0 20px 20px 20px!important; }<!-- [et_pb_line_break_holder] -->  #upl-ews-faq .upl-faq-question { padding:18px 20px!important; }<!-- [et_pb_line_break_holder] -->  #upl-ews-faq .upl-faq-cta { flex-direction:column!important; align-items:flex-start!important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<section id=\"upl-ews-faq\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-header\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"upl-faq-title\">Outlook REST API &#038; EWS &#8211; FAQ<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"upl-faq-subtitle\">Common questions about Outlook REST API retirement, EWS deprecation, and migration to Microsoft Graph<\/pee><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-list\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item active\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"true\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">01<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Is Outlook REST API still available?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>No. The Outlook REST API (v2.0 and beta) was retired by Microsoft. All requests to the legacy Outlook REST endpoints now fail. The official replacement is <strong>Microsoft Graph<\/strong>, which covers all the same email and calendar operations plus much more. If your application still uses Outlook REST endpoints, migration to Graph is not optional.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">02<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">What is the difference between Outlook REST API and Microsoft Graph?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>The Outlook REST API was a dedicated REST API covering only Outlook mailbox operations. Microsoft Graph is the unified API for the entire Microsoft 365 ecosystem: Outlook mail, calendar, contacts, Teams, SharePoint, OneDrive, and more. Both use OAuth 2.0 authentication, but Graph uses the single base URL <code>https:\/\/graph.microsoft.com\/v1.0<\/code> and offers a more consistent, feature-rich interface than the retired Outlook-specific endpoints.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">03<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">When does EWS stop working in Office 365?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Microsoft has set <strong>October 1, 2026<\/strong> as the hard enforcement date for EWS deprecation in Exchange Online (Microsoft 365). After this date, EWS will no longer function for Microsoft 365 mailboxes. There is no grace period and no announced extension. EWS will continue to work for on-premises Exchange Server installations, which are not affected by this deadline.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">04<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">What replaces EWS in Microsoft 365?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee><strong>Microsoft Graph<\/strong> is the official replacement for EWS. Every EWS operation has a Graph equivalent: <code>FindItem<\/code> becomes <code>GET \/me\/messages<\/code>, <code>CreateItem<\/code> (send mail) becomes <code>POST \/me\/sendMail<\/code>, streaming notifications become Graph webhooks via <code>POST \/subscriptions<\/code>. Authentication changes from NTLM\/Kerberos\/Basic Auth to OAuth 2.0 via Azure AD. For teams that need a simpler path, a <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\">unified email API like Unipile<\/a> abstracts all three providers under one SDK.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">05<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Can I still use Outlook REST API v2.0 after March 2024?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>No. The Outlook REST API v2.0 is retired. Requests to those endpoints will fail with errors. Microsoft Graph is the only supported path for Outlook email and calendar integration. All new integrations must target <code>https:\/\/graph.microsoft.com\/v1.0<\/code> and use OAuth 2.0 authentication.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">06<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How long does EWS to Microsoft Graph migration take?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Effort depends on your EWS implementation&#8217;s complexity. A simple integration with a few read\/write operations typically takes 1-2 weeks. A complex application with streaming notifications, delta sync, multi-folder operations, and extensive error handling can take 4-8 weeks. The migration requires: Azure AD app registration, OAuth 2.0 implementation, endpoint-by-endpoint replacement, throttling logic, pagination updates, and error format changes. An alternative is to use <a href=\"https:\/\/www.unipile.com\/microsoft-graph-oauth-email\/\">Unipile&#8217;s Microsoft Graph abstraction<\/a>, which handles most of this complexity automatically.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">07<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Do I need to migrate Outlook add-ins by October 2026?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>The October 2026 deadline applies specifically to <strong>Exchange Web Services (EWS)<\/strong> usage in Exchange Online. Outlook add-ins that use the Office.js API are on a separate timeline. However, Microsoft has been phasing out legacy COM and VSTO add-ins in favor of web-based Office Add-ins. If your add-in makes EWS calls internally, those calls will break in October 2026 regardless of the add-in framework. Check the Microsoft 365 roadmap for the latest guidance specific to your add-in type.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">08<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">What OAuth scopes do I need for Outlook REST API?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Since the Outlook REST API is retired, the relevant scopes are for <strong>Microsoft Graph<\/strong>. Core email scopes: <code>Mail.Read<\/code> (read messages), <code>Mail.Send<\/code> (send email), <code>Mail.ReadWrite<\/code> (read and modify messages), <code>Calendars.ReadWrite<\/code> (calendar access), <code>Contacts.Read<\/code> (contacts). Always include <code>offline_access<\/code> to receive a refresh token. Application-level scopes like <code>Mail.ReadWrite.All<\/code> require admin consent from the tenant administrator and should only be used for daemon scenarios with no user context. See our <a href=\"https:\/\/www.unipile.com\/microsoft-graph-oauth-email\/\">Microsoft Graph OAuth guide<\/a> for a complete setup walkthrough.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">09<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">How does Microsoft Graph handle throttling?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Microsoft Graph enforces rate limits at approximately 10,000 requests per 10 minutes per application per tenant. When throttled, the API returns <code>HTTP 429 Too Many Requests<\/code> with a <code>Retry-After<\/code> header specifying the exact number of seconds to wait. The critical rule: always honor the <code>Retry-After<\/code> value exactly. Retrying before that window closes extends the throttling period. For multi-tenant SaaS applications where each tenant has separate limits, throttling at one tenant does not affect others. Also compare <a href=\"https:\/\/www.unipile.com\/imap-api-python\/\">IMAP as an alternative<\/a> if throttling at scale is a concern.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"upl-faq-item\"><!-- [et_pb_line_break_holder] -->      <button class=\"upl-faq-question\" aria-expanded=\"false\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-question-content\"><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-number\">10<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"upl-faq-question-text\">Is Unipile an alternative to Microsoft Graph for Outlook integration?<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"upl-faq-answer\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upl-faq-answer-content\"><pee>Unipile is a <strong>unified email API<\/strong> that wraps Microsoft Graph, Gmail, and IMAP under a single SDK. Rather than implementing Microsoft Graph OAuth flows, managing access tokens, handling throttling, and writing per-provider code, you connect your users&#8217; accounts through Unipile and use one consistent API for all three providers. This is particularly effective for SaaS applications that need to support Outlook and Gmail simultaneously without maintaining separate integration code for each. Unipile operates as an independent technical intermediary, acting on behalf of each authenticated user, and is not affiliated with or endorsed by Microsoft.<\/pee><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"upl-faq-cta\"><!-- [et_pb_line_break_holder] -->    <pee class=\"upl-faq-cta-text\">Skip the EWS migration entirely. Our team is here to help.<\/pee><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\" rel=\"noopener\" class=\"upl-faq-cta-button\"><span>Build Now<\/span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg><\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  function initFaq(){<!-- [et_pb_line_break_holder] -->    var faq=document.getElementById('upl-ews-faq');<!-- [et_pb_line_break_holder] -->    if(!faq)return;<!-- [et_pb_line_break_holder] -->    faq.querySelectorAll('.upl-faq-question').forEach(function(btn){<!-- [et_pb_line_break_holder] -->      btn.addEventListener('click',function(){<!-- [et_pb_line_break_holder] -->        var item=btn.closest('.upl-faq-item');<!-- [et_pb_line_break_holder] -->        var isActive=item.classList.contains('active');<!-- [et_pb_line_break_holder] -->        faq.querySelectorAll('.upl-faq-item').forEach(function(i){i.classList.remove('active');i.querySelector('.upl-faq-question').setAttribute('aria-expanded','false');});<!-- [et_pb_line_break_holder] -->        if(!isActive){item.classList.add('active');btn.setAttribute('aria-expanded','true');}<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',initFaq);}else{initFaq();}<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>API Reference Outlook REST API Endpoints in 2026 (via Microsoft Graph) All Outlook REST API functionality is now served via Microsoft Graph at https:\/\/graph.microsoft.com\/v1.0. Below are the key mail, calendar, and contacts endpoints with their HTTP methods and a code sample for each category. Mail Endpoints Method Endpoint Description Required Scope GET \/me\/messages List messages [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":279077,"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],"tags":[],"post_folder":[],"class_list":["post-278991","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-api-guidelines"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>From Outlook REST API &amp; EWS to Microsoft Graph: The 2026 Migration Guide for Developers - Unipile<\/title>\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\/fr\/outlook-rest-api-microsoft-graph-migration-2\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"From Outlook REST API &amp; EWS to Microsoft Graph: The 2026 Migration Guide for Developers - Unipile\" \/>\n<meta property=\"og:description\" content=\"API Reference Outlook REST API Endpoints in 2026 (via Microsoft Graph) All Outlook REST API functionality is now served via Microsoft Graph at https:\/\/graph.microsoft.com\/v1.0. Below are the key mail, calendar, and contacts endpoints with their HTTP methods and a code sample for each category. Mail Endpoints Method Endpoint Description Required Scope GET \/me\/messages List messages [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unipile.com\/fr\/outlook-rest-api-microsoft-graph-migration-2\/\" \/>\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-27T15:43:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-01T12:49:46+00:00\" \/>\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=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Damien Girardeau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/\"},\"author\":{\"name\":\"Damien Girardeau\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\"},\"headline\":\"From Outlook REST API &#038; EWS to Microsoft Graph: The 2026 Migration Guide for Developers\",\"datePublished\":\"2026-05-27T15:43:31+00:00\",\"dateModified\":\"2026-06-01T12:49:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/\"},\"wordCount\":5156,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/outlook-rest-microsoft-graph-migration.png\",\"articleSection\":[\"API Guidelines\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/\",\"name\":\"From Outlook REST API & EWS to Microsoft Graph: The 2026 Migration Guide for Developers - Unipile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/outlook-rest-microsoft-graph-migration.png\",\"datePublished\":\"2026-05-27T15:43:31+00:00\",\"dateModified\":\"2026-06-01T12:49:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/outlook-rest-microsoft-graph-migration.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/outlook-rest-microsoft-graph-migration.png\",\"width\":2400,\"height\":1600,\"caption\":\"Migrate from Outlook REST API and EWS to Microsoft Graph - 2026 developer guide.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/outlook-rest-api-microsoft-graph-migration-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.unipile.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"From Outlook REST API &#038; EWS to Microsoft Graph: The 2026 Migration Guide for Developers\"}]},{\"@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\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\",\"name\":\"Unipile\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@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\":\"fr-FR\",\"@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":"De l'API REST Outlook et EWS \u00e0 Microsoft Graph\u00a0: le guide de migration 2026 pour les d\u00e9veloppeurs - Unipile","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\/fr\/outlook-rest-api-microsoft-graph-migration-2\/","og_locale":"fr_FR","og_type":"article","og_title":"From Outlook REST API & EWS to Microsoft Graph: The 2026 Migration Guide for Developers - Unipile","og_description":"API Reference Outlook REST API Endpoints in 2026 (via Microsoft Graph) All Outlook REST API functionality is now served via Microsoft Graph at https:\/\/graph.microsoft.com\/v1.0. Below are the key mail, calendar, and contacts endpoints with their HTTP methods and a code sample for each category. Mail Endpoints Method Endpoint Description Required Scope GET \/me\/messages List messages [&hellip;]","og_url":"https:\/\/www.unipile.com\/fr\/outlook-rest-api-microsoft-graph-migration-2\/","og_site_name":"Unipile","article_publisher":"https:\/\/www.facebook.com\/unipilefr","article_published_time":"2026-05-27T15:43:31+00:00","article_modified_time":"2026-06-01T12:49:46+00:00","author":"Damien Girardeau","twitter_card":"summary_large_image","twitter_creator":"@UnipileAPI","twitter_site":"@UnipileAPI","twitter_misc":{"\u00c9crit par":"Damien Girardeau","Dur\u00e9e de lecture estim\u00e9e":"30 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#article","isPartOf":{"@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/"},"author":{"name":"Damien Girardeau","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e"},"headline":"From Outlook REST API &#038; EWS to Microsoft Graph: The 2026 Migration Guide for Developers","datePublished":"2026-05-27T15:43:31+00:00","dateModified":"2026-06-01T12:49:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/"},"wordCount":5156,"publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"image":{"@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/06\/outlook-rest-microsoft-graph-migration.png","articleSection":["API Guidelines"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/","url":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/","name":"De l'API REST Outlook et EWS \u00e0 Microsoft Graph\u00a0: le guide de migration 2026 pour les d\u00e9veloppeurs - Unipile","isPartOf":{"@id":"https:\/\/www.unipile.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#primaryimage"},"image":{"@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/06\/outlook-rest-microsoft-graph-migration.png","datePublished":"2026-05-27T15:43:31+00:00","dateModified":"2026-06-01T12:49:46+00:00","breadcrumb":{"@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#primaryimage","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/06\/outlook-rest-microsoft-graph-migration.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2026\/06\/outlook-rest-microsoft-graph-migration.png","width":2400,"height":1600,"caption":"Migrate from Outlook REST API and EWS to Microsoft Graph - 2026 developer guide."},{"@type":"BreadcrumbList","@id":"https:\/\/www.unipile.com\/outlook-rest-api-microsoft-graph-migration-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.unipile.com\/"},{"@type":"ListItem","position":2,"name":"From Outlook REST API &#038; EWS to Microsoft Graph: The 2026 Migration Guide for Developers"}]},{"@type":"WebSite","@id":"https:\/\/www.unipile.com\/#website","url":"https:\/\/www.unipile.com\/","name":"Unipile","description":"Int\u00e9grer la messagerie et l'e-mail, se connecter facilement via l'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":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.unipile.com\/#organization","name":"Unipile","url":"https:\/\/www.unipile.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@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":"fr-FR","@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\/fr\/wp-json\/wp\/v2\/posts\/278991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/comments?post=278991"}],"version-history":[{"count":7,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/posts\/278991\/revisions"}],"predecessor-version":[{"id":279001,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/posts\/278991\/revisions\/279001"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/media\/279077"}],"wp:attachment":[{"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/media?parent=278991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/categories?post=278991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/tags?post=278991"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.unipile.com\/fr\/wp-json\/wp\/v2\/post_folder?post=278991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}