CINXE.COM

API reference - Zoom Developers

<!DOCTYPE html><html lang="en-US"><head><meta charSet="utf-8"/><title>API reference - Zoom Developers</title><meta name="viewport" content="width=device-width, height=device-height, initial-scale=1"/><meta name="description" content="Explore a wide variety of Zoom API endpoints and events to power your applications and integrations."/><meta name="keywords" content="zoom, marketplace.zoom.us, api, sdk, jwt, oauth, rest, develop, developer, zoom developer, video conferencing, video conference, online meetings, web meeting, video meeting, cloud meeting, cloud video, group video call, group video chat, screen share, application share"/><link rel="icon" href="/svgs/favicon.svg"/><meta property="og:image" content="https://developers.zoom.us/img/logos/ogimage_primary.png"/><meta property="og:site_name" content="Zoom"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta property="og:title" content="API reference - Zoom Developers"/><meta property="og:description" content="Explore a wide variety of Zoom API endpoints and events to power your applications and integrations."/><meta property="og:url" content="https://developers.zoom.us/docs/api/"/><link rel="canonical" href="https://developers.zoom.us/docs/api/"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@zoom"/><meta name="twitter:title" content="API reference - Zoom Developers"/><meta name="twitter:description" content="Explore a wide variety of Zoom API endpoints and events to power your applications and integrations."/><meta name="twitter:creator" content="@zoom"/><meta name="twitter:image" content="https://developers.zoom.us/img/logos/ogimage_primary.png"/><script type="application/ld+json">{&quot;@context&quot;:&quot;https://schema.org&quot;,&quot;@type&quot;:&quot;WebPage&quot;,&quot;url&quot;:&quot;https://developers.zoom.us&quot;,&quot;inLanguage&quot;:&quot;en&quot;,&quot;mainEntityOfPage&quot;:&quot;https://developers.zoom.us&quot;,&quot;description&quot;:&quot;The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom鈥檚 video-first unified communications platform.&quot;,&quot;name&quot;:&quot;Zoom Developer Docs&quot;,&quot;publisher&quot;:{&quot;@type&quot;:&quot;Organization&quot;,&quot;name&quot;:&quot;Zoom&quot;,&quot;legalName&quot;:&quot;Zoom Video Communications LLC&quot;,&quot;url&quot;:&quot;https://zoom.us&quot;},&quot;copyrightHolder&quot;:{&quot;@type&quot;:&quot;Organization&quot;,&quot;name&quot;:&quot;Zoom&quot;,&quot;legalName&quot;:&quot;Zoom Video Communications LLC&quot;,&quot;url&quot;:&quot;https://zoom.us&quot;},&quot;copyrightYear&quot;:&quot;2024&quot;}</script><script type="application/ld+json">{&quot;@context&quot;:&quot;https://schema.org&quot;,&quot;@type&quot;:&quot;BreadcrumbList&quot;,&quot;description&quot;:&quot;Breadcrumbs&quot;,&quot;name&quot;:&quot;Breadcrumbs&quot;,&quot;itemListElement&quot;:[{&quot;@type&quot;:&quot;ListItem&quot;,&quot;item&quot;:{&quot;@id&quot;:&quot;https://developers.zoom.us&quot;,&quot;name&quot;:&quot;Docs&quot;},&quot;position&quot;:1},{&quot;@type&quot;:&quot;ListItem&quot;,&quot;item&quot;:{&quot;@id&quot;:&quot;https://developers.zoom.us/docs&quot;,&quot;name&quot;:&quot;docs&quot;},&quot;position&quot;:2},{&quot;@type&quot;:&quot;ListItem&quot;,&quot;item&quot;:{&quot;@id&quot;:&quot;https://developers.zoom.us/api/&quot;,&quot;name&quot;:&quot;&quot;},&quot;position&quot;:3}]}</script><meta name="next-head-count" content="22"/><link rel="preload" href="/_next/static/media/bd6032b1b40f0a94-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/af073f67ef00f79b-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/d7bb3f33f2a2c6c3-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/16b6856090fc2493-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/1f8417796774370d-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/c9b3cfca7ff374b5-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/15adc2398e9c1f2c-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/d4676da4caa387c7-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/45e87576965bc150-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/ea53a1bc12a0c88a-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/8e6e8d6c13eb004a-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/e31544f452c551d7-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/a20cb60d2c11d6e5-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/9946c3afdd2d21f1-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/d1aaf2a6a913fa31-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/css/af7550f8ddc91701.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/af7550f8ddc91701.css" crossorigin="" data-n-g=""/><link rel="preload" href="/_next/static/css/40828f1fe5a66aa7.css" as="style" crossorigin=""/><link rel="stylesheet" href="/_next/static/css/40828f1fe5a66aa7.css" crossorigin="" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" crossorigin="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charSet="UTF-8" data-domain-script="b0bfa2ae-4058-4aef-8632-a5281ce4464a" defer="" data-nscript="beforeInteractive" crossorigin=""></script><script src="/_next/static/chunks/webpack-d0624c5963c93613.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/framework-ca706bf673a13738.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/main-61ded8d942661fc0.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/_app-7415c61298767f7f.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/11e07bb4-65f3c1cbff722f6c.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/718-ad49a62636f00526.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/3817-d6d568a8dda7ffcb.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/4038-e32748e2d0a0996d.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/4749-ec9252ab0d3ed683.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/1183-3a4084fa03711ca2.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/2476-7fafc63cc04fb715.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/8234-d72877bdaf02566f.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/302-cb5695a08df80245.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/6790-f496dceda53ba151.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/9095-81a120684ed3cf9b.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/6577-4ada4cb4c53af17c.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/5150-4aa99fbd0b60437e.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/4710-f26cf1386efec54b.js" defer="" crossorigin=""></script><script src="/_next/static/chunks/pages/docs/api-bb0ae5992899aa42.js" defer="" crossorigin=""></script><script src="/_next/static/2024-11-26%20T%2010-50-37/_buildManifest.js" defer="" crossorigin=""></script><script src="/_next/static/2024-11-26%20T%2010-50-37/_ssgManifest.js" defer="" crossorigin=""></script></head><body><div id="__next"><div class="__variable_b9f6b0 __variable_9ef0d0"><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NQHCZ9Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div></div></div></div><script id="__NEXT_DATA__" type="application/json" crossorigin="">{"props":{"pageProps":{"mainContent":{"code":"var Component=(()=\u003e{var _=Object.create;var l=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var k=(n,i)=\u003e()=\u003e(i||n((i={exports:{}}).exports,i),i.exports),A=(n,i)=\u003e{for(var a in i)l(n,a,{get:i[a],enumerable:!0})},p=(n,i,a,c)=\u003e{if(i\u0026\u0026typeof i==\"object\"||typeof i==\"function\")for(let s of I(i))!b.call(n,s)\u0026\u0026s!==a\u0026\u0026l(n,s,{get:()=\u003ei[s],enumerable:!(c=g(i,s))||c.enumerable});return n};var T=(n,i,a)=\u003e(a=n!=null?_(v(n)):{},p(i||!n||!n.__esModule?l(a,\"default\",{value:n,enumerable:!0}):a,n)),w=n=\u003ep(l({},\"__esModule\",{value:!0}),n);var m=k((j,u)=\u003e{u.exports=_jsx_runtime});var x={};A(x,{default:()=\u003eO,frontmatter:()=\u003ey});var e=T(m());var{useMDXComponents:h}=MdxJsReact;var y={title:\"API reference\",description:\"Explore a wide variety of Zoom API endpoints and events to power your applications and integrations.\",hideToc:!0};function f(n){let i=Object.assign({h1:\"h1\",p:\"p\",code:\"code\",h2:\"h2\",a:\"a\",i:\"i\",pre:\"pre\"},h(),n.components),{TwoColumn:a,LeftColumn:c,RightColumn:s,CodeBlock:o,Link:r,SvgIcon:t}=i;return o||d(\"CodeBlock\",!0),c||d(\"LeftColumn\",!0),r||d(\"Link\",!0),s||d(\"RightColumn\",!0),t||d(\"SvgIcon\",!0),a||d(\"TwoColumn\",!0),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.h1,{id:\"api-reference\",children:\"API reference\"}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsxs)(c,{children:[(0,e.jsx)(i.p,{children:\"To make API requests to Zoom, start by obtaining an access token through OAuth or server-to-server authentication.\"}),(0,e.jsxs)(i.p,{children:[\"Send HTTP requests to the base URL \",(0,e.jsx)(i.code,{children:\"https://api.zoom.us/v2/\"}),\" with your access token in the Authorization header. Use \",(0,e.jsx)(i.code,{children:\"GET\"}),\", \",(0,e.jsx)(i.code,{children:\"POST\"}),\", \",(0,e.jsx)(i.code,{children:\"PATCH\"}),\", \",(0,e.jsx)(i.code,{children:\"PUT\"}),\", or \",(0,e.jsx)(i.code,{children:\"DELETE\"}),\" methods as needed for different endpoints. Refer to the API reference for specific endpoint details and required parameters.\"]})]}),(0,e.jsx)(s,{children:(0,e.jsx)(o,{header:\"Base URL\",children:(0,e.jsx)(i.code,{children:\"https://api.zoom.us/v2/\"})})})]}),`\n`,(0,e.jsx)(a,{children:(0,e.jsxs)(c,{children:[(0,e.jsx)(\"div\",{class:\"api_ref_tile_title\",children:\"Workplace\"}),(0,e.jsxs)(\"div\",{class:\"api_ref_tile_container\",children:[(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/meetings\",children:[(0,e.jsx)(t,{svgname:\"_meetings\"}),(0,e.jsx)(\"h3\",{children:\"Meetings\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/team-chat\",children:[(0,e.jsx)(t,{svgname:\"_chat\"}),(0,e.jsx)(\"h3\",{children:\"Team Chat\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/phone\",children:[(0,e.jsx)(t,{svgname:\"_zoomphone\"}),(0,e.jsx)(\"h3\",{children:\"Phone\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/mail\",children:[(0,e.jsx)(t,{svgname:\"_mail\"}),(0,e.jsx)(\"h3\",{children:\"Mail\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/calendar\",children:[(0,e.jsx)(t,{svgname:\"_calendar\"}),(0,e.jsx)(\"h3\",{children:\"Calendar\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/scheduler\",children:[(0,e.jsx)(t,{svgname:\"_zoomscheduler\"}),(0,e.jsx)(\"h3\",{children:\"Scheduler\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/rooms\",children:[(0,e.jsx)(t,{svgname:\"_zoomrooms\"}),(0,e.jsx)(\"h3\",{children:\"Rooms\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/clips\",children:[(0,e.jsx)(t,{svgname:\"_zoomclips\"}),(0,e.jsx)(\"h3\",{children:\"Clips\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/whiteboard\",children:[(0,e.jsx)(t,{svgname:\"_whiteboard\"}),(0,e.jsx)(\"h3\",{children:\"Whiteboard\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/crc\",children:[(0,e.jsx)(t,{svgname:\"crc\"}),(0,e.jsx)(\"h3\",{children:\"CRC\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/chatbot\",children:[(0,e.jsx)(t,{svgname:\"_chat\"}),(0,e.jsx)(\"h3\",{children:\"Chatbot\"})]})]}),(0,e.jsx)(\"div\",{class:\"api_ref_tile_title\",children:\"Business services\"}),(0,e.jsxs)(\"div\",{class:\"api_ref_tile_container\",children:[(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/contact-center\",children:[(0,e.jsx)(t,{svgname:\"contactCenter\"}),(0,e.jsx)(\"h3\",{children:\"Contact Center\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/events\",children:[(0,e.jsx)(t,{svgname:\"_zoomevents\"}),(0,e.jsx)(\"h3\",{children:\"Events\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/virtual-agent\",children:[(0,e.jsx)(t,{svgname:\"virtual-agent\"}),(0,e.jsx)(\"h3\",{children:\"Virtual Agent\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/iq\",children:[(0,e.jsx)(t,{svgname:\"zra\"}),(0,e.jsx)(\"h3\",{children:\"Revenue Accelerator\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/number-management\",children:[(0,e.jsx)(t,{svgname:\"number-management\"}),(0,e.jsx)(\"h3\",{children:\"Number Management\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/quality-management\",children:[(0,e.jsx)(t,{svgname:\"qualityManagement\"}),(0,e.jsx)(\"h3\",{children:\"Quality Management\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/workforce-management\",children:[(0,e.jsx)(t,{svgname:\"workforceManagement\"}),(0,e.jsx)(\"h3\",{children:\"Workforce Management\"})]})]}),(0,e.jsx)(\"div\",{class:\"api_ref_tile_title\",children:\"Accounts\"}),(0,e.jsxs)(\"div\",{class:\"api_ref_tile_container\",children:[(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/users\",children:[(0,e.jsx)(t,{svgname:\"users\"}),(0,e.jsx)(\"h3\",{children:\"Users\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/accounts\",children:[(0,e.jsx)(t,{svgname:\"accounts\"}),(0,e.jsx)(\"h3\",{children:\"Accounts\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/qss\",children:[(0,e.jsx)(t,{svgname:\"qss\"}),(0,e.jsx)(\"h3\",{children:\"QSS\"})]}),(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/scim2\",children:[(0,e.jsx)(t,{svgname:\"scim2\"}),(0,e.jsx)(\"h3\",{children:\"SCIM 2\"})]})]}),(0,e.jsx)(\"div\",{class:\"api_ref_tile_title\",children:\"Build platform\"}),(0,e.jsx)(\"div\",{class:\"api_ref_tile_container\",children:(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/video-sdk\",children:[(0,e.jsx)(t,{svgname:\"_video-sdks\"}),(0,e.jsx)(\"h3\",{children:\"Video SDK\"})]})}),(0,e.jsx)(\"div\",{class:\"api_ref_tile_title\",children:\"Marketplace\"}),(0,e.jsx)(\"div\",{class:\"api_ref_tile_container\",children:(0,e.jsxs)(r,{class:\"api_ref_tile\",href:\"/docs/api/marketplace\",children:[(0,e.jsx)(t,{svgname:\"marketplace\"}),(0,e.jsx)(\"h3\",{children:\"Apps\"})]})})]})}),`\n`,(0,e.jsxs)(i.h2,{id:\"authentication\",children:[\"Authentication\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#authentication\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsxs)(c,{children:[(0,e.jsx)(i.p,{children:\"All API requests require an access token. You can get an access token by authenticating with OAuth or by using server-to-server OAuth.\"}),(0,e.jsx)(i.p,{children:\"For OAuth, implement the authorization flow to get user consent and receive an authorization code. Exchange this code for an access token.\"}),(0,e.jsx)(i.p,{children:\"For server-to-server OAuth, use your app credentials to directly request an access token. Both methods provide access tokens valid for one hour.\"}),(0,e.jsx)(i.p,{children:\"Use the refresh token (for OAuth) or request a new token (for server-to-server) when the current token expires.\"})]}),(0,e.jsxs)(s,{children:[(0,e.jsx)(o,{header:\"OAuth 2.0\",theme:\"dark\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-curl\",children:`curl -X POST https://zoom.us/oauth/token \\\\\n -H \"Authorization: Basic BASE64_ENCODED_CLIENT_ID_AND_SECRET\" \\\\\n -H \"Content-Type: application/x-www-form-urlencoded\" \\\\\n -d \"grant_type=authorization_code\u0026code=AUTHORIZATION_CODE\u0026redirect_uri=YOUR_REDIRECT_URI\"\n`})})}),(0,e.jsx)(o,{header:\"Access token response\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-json\",children:`{\n \"access_token\": \"eyJhbGciOiJIUzUxMiIsInYiOiIyLjAiLCJraWQiOiI8S0lEPiJ9.eyJ2ZXIiOiI2IiwiY2xpZW50SWQiOiI8Q2xpZW50X0lEPiIsImNvZGUiOiI8Q29kZT4iLCJpc3MiOiJ1cm46em9vbTpjb25uZWN0OmNsaWVudGlkOjxDbGllbnRfSUQ-IiwiYXV0aGVudGljYXRpb25JZCI6IjxBdXRoZW50aWNhdGlvbl9JRD4iLCJ1c2VySWQiOiI8VXNlcl9JRD4iLCJncm91cE51bWJlciI6MCwiYXVkIjoiaHR0cHM6Ly9vYXV0aC56b29tLnVzIiwiYWNjb3VudElkIjoiPEFjY291bnRfSUQ-IiwibmJmIjoxNTgwMTQ2OTkzLCJleHAiOjE1ODAxNTA1OTMsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsImlhdCI6MTU4MDE0Njk5MywianRpIjoiPEpUST4iLCJ0b2xlcmFuY2VJZCI6MjV9.F9o_w7_lde4Jlmk_yspIlDc-6QGmVrCbe_6El-xrZehnMx7qyoZPUzyuNAKUKcHfbdZa6Q4QBSvpd6eIFXvjHw\",\n \"token_type\": \"bearer\",\n \"refresh_token\": \"eyJhbGciOiJIUzUxMiIsInYiOiIyLjAiLCJraWQiOiI8S0lEPiJ9.eyJ2ZXIiOiI2IiwiY2xpZW50SWQiOiI8Q2xpZW50X0lEPiIsImNvZGUiOiI8Q29kZT4iLCJpc3MiOiJ1cm46em9vbTpjb25uZWN0OmNsaWVudGlkOjxDbGllbnRfSUQ-IiwiYXV0aGVudGljYXRpb25JZCI6IjxBdXRoZW50aWNhdGlvbl9JRD4iLCJ1c2VySWQiOiI8VXNlcl9JRD4iLCJncm91cE51bWJlciI6MCwiYXVkIjoiaHR0cHM6Ly9vYXV0aC56b29tLnVzIiwiYWNjb3VudElkIjoiPEFjY291bnRfSUQ-IiwibmJmIjoxNTgwMTQ2OTkzLCJleHAiOjIwNTMxODY5OTMsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJpYXQiOjE1ODAxNDY5OTMsImp0aSI6IjxKVEk-IiwidG9sZXJhbmNlSWQiOjI1fQ.Xcn_1i_tE6n-wy6_-3JZArIEbiP4AS3paSD0hzb0OZwvYSf-iebQBr0Nucupe57HUDB5NfR9VuyvQ3b74qZAfA\",\n \"expires_in\": 3599,\n \"scope\": \"user:read\"\n}\n`})})})]})]}),`\n`,(0,e.jsxs)(i.h2,{id:\"make-api-requests\",children:[\"Make API requests\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#make-api-requests\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsx)(c,{children:(0,e.jsxs)(i.p,{children:[\"Send HTTP requests to the base URL \",(0,e.jsx)(i.code,{children:\"https://api.zoom.us/v2/\"}),\" with your access token in the Authorization header. Use GET, POST, PATCH, PUT, or DELETE methods as needed for different endpoints. Refer to the API reference for specific endpoint details and required parameters.\"]})}),(0,e.jsx)(s,{children:(0,e.jsx)(o,{header:\"cURL\",theme:\"dark\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-curl\",children:`curl -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\\\n -H \"Content-Type: application/json\" \\\\\n https://api.zoom.us/v2/users/me\n`})})})})]}),`\n`,(0,e.jsxs)(i.h2,{id:\"subscribe-to-events\",children:[\"Subscribe to events\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#subscribe-to-events\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsxs)(c,{children:[(0,e.jsxs)(i.p,{children:[\"Zoom will send real-time notifications to your endpoint when events occur. To subscribe to events, \",(0,e.jsx)(i.a,{href:\"/docs/api/webhooks\",children:\"set up event subscriptions\"}),\" in your app. Specify an HTTPS endpoint URL that can accept POST requests with JSON payloads. Enable desired event subscriptions in your app settings.\"]}),(0,e.jsxs)(i.p,{children:[\"Implement verification to ensure webhook authenticity. Your endpoint should respond with a \",(0,e.jsx)(i.code,{children:\"200\"}),\" or \",(0,e.jsx)(i.code,{children:\"204\"}),\" status code within 3 seconds to confirm receipt.\"]}),(0,e.jsxs)(i.p,{children:[\"In addition to webhooks, Zoom offers WebSockets for real-time event notifications. See the \",(0,e.jsx)(i.a,{href:\"/docs/api/websockets\",children:\"WebSockets documentation\"}),\" for details on this alternative method, currently in public beta.\"]})]}),(0,e.jsx)(s,{children:(0,e.jsx)(o,{header:\"meeting.started\",theme:\"light\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-json\",children:`{\n \"event\": \"meeting.started\",\n \"payload\": {\n \"account_id\": \"o8KK_AAACq6BBEyA70CA\",\n \"object\": {\n \"duration\": 60,\n \"start_time\": \"2022-03-01T10:00:00Z\",\n \"timezone\": \"America/Los_Angeles\",\n \"topic\": \"My Meeting\",\n \"id\": \"123456789\",\n \"type\": 2,\n \"uuid\": \"jI8fgZVOQkOKgOTgMFM2Jw==\",\n \"host_id\": \"z8yCxTTTTKWIFKy9d3VA\"\n }\n },\n \"event_ts\": 1646128800000\n}\n`})})})})]}),`\n`,(0,e.jsxs)(i.h2,{id:\"rate-limits\",children:[\"Rate limits\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#rate-limits\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsxs)(c,{children:[(0,e.jsx)(i.p,{children:\"The Zoom API uses rate limits to ensure efficient handling of API request traffic. When you exceed a rate limit, the API request will fail and return a HTTP 429 status code. Rate limits are applied at the account level and vary based on your account plan.\"}),(0,e.jsxs)(i.p,{children:[\"For full details on rate limits, see our \",(0,e.jsx)(i.a,{href:\"/docs/api/rate-limits\",children:\"rate limit documentation\"}),\".\"]})]}),(0,e.jsxs)(s,{children:[(0,e.jsx)(o,{header:\"Response headers\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{children:`X-RateLimit-Category: Light\nX-RateLimit-Type: QPS\nX-RateLimit-Limit: 30\nX-RateLimit-Remaining: 0\nRetry-After: 1\n`})})}),(0,e.jsx)(o,{header:\"Response body\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-json\",children:`{\n \"code\": 429,\n \"message\": \"You have reached the maximum per-second rate limit for this API. Try again later.\",\n \"additional_detail\": \"QPS limit reached\"\n}\n`})})})]})]}),`\n`,(0,e.jsxs)(i.h2,{id:\"pagination\",children:[\"Pagination\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#pagination\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsxs)(c,{children:[(0,e.jsxs)(i.p,{children:[\"Zoom APIs use pagination to manage large result sets. Most APIs use the \",(0,e.jsx)(i.code,{children:\"next_page_token\"}),\" parameter for pagination. When making requests, specify the \",(0,e.jsx)(i.code,{children:\"page_size\"}),\" to control results per page. If more results are available, use the returned \",(0,e.jsx)(i.code,{children:\"next_page_token\"}),\" in subsequent requests.\"]}),(0,e.jsxs)(i.p,{children:[\"For full details on pagination, see our \",(0,e.jsx)(i.a,{href:\"/docs/api/pagination\",children:\"pagination documentation\"}),\".\"]})]}),(0,e.jsxs)(s,{children:[(0,e.jsx)(o,{header:\"Request with next_page_token\",theme:\"dark\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-curl\",children:`curl -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\\\n -H \"Content-Type: application/json\" \\\\\n \"https://api.zoom.us/v2/users/me/meetings?page_size=30\u0026next_page_token=abc3445rg\"\n`})})}),(0,e.jsx)(o,{header:\"Response with next_page_token\",children:(0,e.jsx)(i.pre,{children:(0,e.jsx)(i.code,{className:\"language-json\",children:`{\n \"page_count\": 1,\n \"page_number\": 1,\n \"page_size\": 30,\n \"total_records\": 2,\n \"next_page_token\": \"abc3445rg\",\n \"meetings\": [\n {\n \"id\": 123456789,\n \"topic\": \"My Meeting\",\n \"start_time\": \"2023-04-15T22:00:00Z\",\n \"duration\": 60,\n \"timezone\": \"America/Los_Angeles\",\n \"created_at\": \"2023-04-14T21:14:55Z\",\n \"join_url\": \"https://example.com/j/123456789\"\n },\n {\n \"id\": 987654321,\n \"topic\": \"Team Sync\",\n \"start_time\": \"2023-04-16T15:00:00Z\",\n \"duration\": 30,\n \"timezone\": \"America/New_York\",\n \"created_at\": \"2023-04-14T22:30:00Z\",\n \"join_url\": \"https://example.com/j/987654321\"\n }\n ]\n}\n`})})})]})]}),`\n`,(0,e.jsxs)(i.h2,{id:\"status-and-error-codes\",children:[\"Status and error codes\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#status-and-error-codes\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(a,{children:[(0,e.jsxs)(c,{children:[(0,e.jsx)(i.p,{children:\"The Zoom API uses HTTP Status codes to reflect a successful or unsuccesful request. 2XX status codes represent a successful request, 4XX/5XX status codes represent an error took place. If you receive an error status code, check the body for an error code and message.\"}),(0,e.jsxs)(i.p,{children:[\"Reference \",(0,e.jsx)(i.a,{href:\"/docs/api/errors\",children:\"Error Codes\"}),\" for more information.\"]})]}),(0,e.jsx)(s,{})]}),`\n`,(0,e.jsxs)(i.h2,{id:\"get-started-in-postman\",children:[\"Get started in Postman\",(0,e.jsx)(i.a,{\"aria-hidden\":\"true\",tabIndex:\"-1\",href:\"#get-started-in-postman\",children:(0,e.jsx)(i.i,{className:\"bi-link-45deg\",\"aria-hidden\":\"true\"})})]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Zoom's \",(0,e.jsx)(i.a,{href:\"https://www.postman.com/zoom-developer\",children:\"Postman Public Workspace\"}),\" provides a collection of API requests to help you get started with Zoom APIs.\"]}),`\n`,(0,e.jsxs)(i.p,{children:[\"Start with the full collection, or jump in to \",(0,e.jsx)(i.a,{href:\"https://www.postman.com/zoom-developer/zoom-public-workspace/collection/rzauu5q/get-started-fast-with-zoom-apis\",children:\"Get Started Fast with Zoom APIs\"}),\" for tailored workflows like authorization, creating non-login users, in-meeting control and more in this collection.\"]})]})}function C(n={}){let{wrapper:i}=Object.assign({},h(),n.components);return i?(0,e.jsx)(i,Object.assign({},n,{children:(0,e.jsx)(f,n)})):f(n)}var O=C;function d(n,i){throw new Error(\"Expected \"+(i?\"component\":\"object\")+\" `\"+n+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return w(x);})();\n;return Component;","frontmatter":{"title":"API reference","description":"Explore a wide variety of Zoom API endpoints and events to power your applications and integrations.","hideToc":true},"errors":[],"matter":{"content":"\n# API reference\n\n\u003cTwoColumn\u003e\n\n\u003cLeftColumn\u003e\n\nTo make API requests to Zoom, start by obtaining an access token through OAuth or server-to-server authentication.\n\nSend HTTP requests to the base URL `https://api.zoom.us/v2/` with your access token in the Authorization header. Use `GET`, `POST`, `PATCH`, `PUT`, or `DELETE` methods as needed for different endpoints. Refer to the API reference for specific endpoint details and required parameters.\n\n\u003c/LeftColumn\u003e\n\n\u003cRightColumn\u003e\n \u003cCodeBlock header=\"Base URL\"\u003e`https://api.zoom.us/v2/`\u003c/CodeBlock\u003e\n\u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n\u003cTwoColumn\u003e\n \u003cLeftColumn\u003e\n\n\u003cdiv class=\"api_ref_tile_title\"\u003eWorkplace\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_container\"\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/meetings\"\u003e\n \u003cSvgIcon svgname=\"_meetings\" /\u003e\n \u003ch3\u003eMeetings\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/team-chat\"\u003e\n \u003cSvgIcon svgname=\"_chat\" /\u003e\n \u003ch3\u003eTeam Chat\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/phone\"\u003e\n \u003cSvgIcon svgname=\"_zoomphone\" /\u003e\n \u003ch3\u003ePhone\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/mail\"\u003e\n \u003cSvgIcon svgname=\"_mail\" /\u003e\n \u003ch3\u003eMail\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/calendar\"\u003e\n \u003cSvgIcon svgname=\"_calendar\" /\u003e\n \u003ch3\u003eCalendar\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/scheduler\"\u003e\n \u003cSvgIcon svgname=\"_zoomscheduler\" /\u003e\n \u003ch3\u003eScheduler\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/rooms\"\u003e\n \u003cSvgIcon svgname=\"_zoomrooms\" /\u003e\n \u003ch3\u003eRooms\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/clips\"\u003e\n \u003cSvgIcon svgname=\"_zoomclips\" /\u003e\n \u003ch3\u003eClips\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/whiteboard\"\u003e\n \u003cSvgIcon svgname=\"_whiteboard\" /\u003e\n \u003ch3\u003eWhiteboard\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/crc\"\u003e\n \u003cSvgIcon svgname=\"crc\" /\u003e\n \u003ch3\u003eCRC\u003c/h3\u003e\n\u003c/Link\u003e\n\u003cLink class=\"api_ref_tile\" href=\"/docs/api/chatbot\"\u003e\n \u003cSvgIcon svgname=\"_chat\" /\u003e\n \u003ch3\u003eChatbot\u003c/h3\u003e\n\u003c/Link\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_title\"\u003eBusiness services\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_container\"\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/contact-center\"\u003e\n \u003cSvgIcon svgname=\"contactCenter\" /\u003e\n \u003ch3\u003eContact Center\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/events\"\u003e\n \u003cSvgIcon svgname=\"_zoomevents\" /\u003e\n \u003ch3\u003eEvents\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/virtual-agent\"\u003e\n \u003cSvgIcon svgname=\"virtual-agent\" /\u003e\n \u003ch3\u003eVirtual Agent\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/iq\"\u003e\n \u003cSvgIcon svgname=\"zra\" /\u003e\n \u003ch3\u003eRevenue Accelerator\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/number-management\"\u003e\n \u003cSvgIcon svgname=\"number-management\" /\u003e\n \u003ch3\u003eNumber Management\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/quality-management\"\u003e\n \u003cSvgIcon svgname=\"qualityManagement\" /\u003e\n \u003ch3\u003eQuality Management\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/workforce-management\"\u003e\n \u003cSvgIcon svgname=\"workforceManagement\" /\u003e\n \u003ch3\u003eWorkforce Management\u003c/h3\u003e\n \u003c/Link\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"api_ref_tile_title\"\u003eAccounts\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_container\"\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/users\"\u003e\n \u003cSvgIcon svgname=\"users\" /\u003e\n \u003ch3\u003eUsers\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/accounts\"\u003e\n \u003cSvgIcon svgname=\"accounts\" /\u003e\n \u003ch3\u003eAccounts\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/qss\"\u003e\n \u003cSvgIcon svgname=\"qss\" /\u003e\n \u003ch3\u003eQSS\u003c/h3\u003e\n \u003c/Link\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/scim2\"\u003e\n \u003cSvgIcon svgname=\"scim2\" /\u003e\n \u003ch3\u003eSCIM 2\u003c/h3\u003e\n \u003c/Link\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_title\"\u003eBuild platform\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_container\"\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/video-sdk\"\u003e\n \u003cSvgIcon svgname=\"_video-sdks\" /\u003e\n \u003ch3\u003eVideo SDK\u003c/h3\u003e\n \u003c/Link\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_title\"\u003eMarketplace\u003c/div\u003e\n\n\u003cdiv class=\"api_ref_tile_container\"\u003e\n \u003cLink class=\"api_ref_tile\" href=\"/docs/api/marketplace\"\u003e\n \u003cSvgIcon svgname=\"marketplace\" /\u003e\n \u003ch3\u003eApps\u003c/h3\u003e\n \u003c/Link\u003e\n\u003c/div\u003e\n\n\n \u003c/LeftColumn\u003e\n\u003c/TwoColumn\u003e\n\n\n## Authentication\n\n\u003cTwoColumn\u003e\n\u003cLeftColumn\u003e\nAll API requests require an access token. You can get an access token by authenticating with OAuth or by using server-to-server OAuth.\n\nFor OAuth, implement the authorization flow to get user consent and receive an authorization code. Exchange this code for an access token.\n\nFor server-to-server OAuth, use your app credentials to directly request an access token. Both methods provide access tokens valid for one hour.\n\nUse the refresh token (for OAuth) or request a new token (for server-to-server) when the current token expires.\n\n\u003c/LeftColumn\u003e\n\u003cRightColumn\u003e\n\u003cCodeBlock\n header=\"OAuth 2.0\"\n theme=\"dark\"\n\u003e\n```curl\ncurl -X POST https://zoom.us/oauth/token \\\n -H \"Authorization: Basic BASE64_ENCODED_CLIENT_ID_AND_SECRET\" \\\n -H \"Content-Type: application/x-www-form-urlencoded\" \\\n -d \"grant_type=authorization_code\u0026code=AUTHORIZATION_CODE\u0026redirect_uri=YOUR_REDIRECT_URI\"\n```\n\u003c/CodeBlock\u003e\n\u003cCodeBlock header=\"Access token response\"\u003e\n```json\n{\n \"access_token\": \"eyJhbGciOiJIUzUxMiIsInYiOiIyLjAiLCJraWQiOiI8S0lEPiJ9.eyJ2ZXIiOiI2IiwiY2xpZW50SWQiOiI8Q2xpZW50X0lEPiIsImNvZGUiOiI8Q29kZT4iLCJpc3MiOiJ1cm46em9vbTpjb25uZWN0OmNsaWVudGlkOjxDbGllbnRfSUQ-IiwiYXV0aGVudGljYXRpb25JZCI6IjxBdXRoZW50aWNhdGlvbl9JRD4iLCJ1c2VySWQiOiI8VXNlcl9JRD4iLCJncm91cE51bWJlciI6MCwiYXVkIjoiaHR0cHM6Ly9vYXV0aC56b29tLnVzIiwiYWNjb3VudElkIjoiPEFjY291bnRfSUQ-IiwibmJmIjoxNTgwMTQ2OTkzLCJleHAiOjE1ODAxNTA1OTMsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsImlhdCI6MTU4MDE0Njk5MywianRpIjoiPEpUST4iLCJ0b2xlcmFuY2VJZCI6MjV9.F9o_w7_lde4Jlmk_yspIlDc-6QGmVrCbe_6El-xrZehnMx7qyoZPUzyuNAKUKcHfbdZa6Q4QBSvpd6eIFXvjHw\",\n \"token_type\": \"bearer\",\n \"refresh_token\": \"eyJhbGciOiJIUzUxMiIsInYiOiIyLjAiLCJraWQiOiI8S0lEPiJ9.eyJ2ZXIiOiI2IiwiY2xpZW50SWQiOiI8Q2xpZW50X0lEPiIsImNvZGUiOiI8Q29kZT4iLCJpc3MiOiJ1cm46em9vbTpjb25uZWN0OmNsaWVudGlkOjxDbGllbnRfSUQ-IiwiYXV0aGVudGljYXRpb25JZCI6IjxBdXRoZW50aWNhdGlvbl9JRD4iLCJ1c2VySWQiOiI8VXNlcl9JRD4iLCJncm91cE51bWJlciI6MCwiYXVkIjoiaHR0cHM6Ly9vYXV0aC56b29tLnVzIiwiYWNjb3VudElkIjoiPEFjY291bnRfSUQ-IiwibmJmIjoxNTgwMTQ2OTkzLCJleHAiOjIwNTMxODY5OTMsInRva2VuVHlwZSI6InJlZnJlc2hfdG9rZW4iLCJpYXQiOjE1ODAxNDY5OTMsImp0aSI6IjxKVEk-IiwidG9sZXJhbmNlSWQiOjI1fQ.Xcn_1i_tE6n-wy6_-3JZArIEbiP4AS3paSD0hzb0OZwvYSf-iebQBr0Nucupe57HUDB5NfR9VuyvQ3b74qZAfA\",\n \"expires_in\": 3599,\n \"scope\": \"user:read\"\n}\n```\n\u003c/CodeBlock\u003e\n\u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n## Make API requests\n\n\u003cTwoColumn\u003e\n \u003cLeftColumn\u003e\n Send HTTP requests to the base URL `https://api.zoom.us/v2/` with your access token in the Authorization header. Use GET, POST, PATCH, PUT, or DELETE methods as needed for different endpoints. Refer to the API reference for specific endpoint details and required parameters.\n \u003c/LeftColumn\u003e\n \u003cRightColumn\u003e\n \u003cCodeBlock header=\"cURL\" theme=\"dark\"\u003e\n ```curl\n curl -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n https://api.zoom.us/v2/users/me\n ```\n \u003c/CodeBlock\u003e\n \u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n## Subscribe to events\n\n\u003cTwoColumn\u003e\n \u003cLeftColumn\u003e\n Zoom will send real-time notifications to your endpoint when events occur. To subscribe to events, [set up event subscriptions](/docs/api/webhooks) in your app. Specify an HTTPS endpoint URL that can accept POST requests with JSON payloads. Enable desired event subscriptions in your app settings.\n\n Implement verification to ensure webhook authenticity. Your endpoint should respond with a `200` or `204` status code within 3 seconds to confirm receipt.\n\n In addition to webhooks, Zoom offers WebSockets for real-time event notifications. See the [WebSockets documentation](/docs/api/websockets) for details on this alternative method, currently in public beta.\n \u003c/LeftColumn\u003e\n \u003cRightColumn\u003e\n \u003cCodeBlock header=\"meeting.started\" theme=\"light\"\u003e\n ```json\n {\n \"event\": \"meeting.started\",\n \"payload\": {\n \"account_id\": \"o8KK_AAACq6BBEyA70CA\",\n \"object\": {\n \"duration\": 60,\n \"start_time\": \"2022-03-01T10:00:00Z\",\n \"timezone\": \"America/Los_Angeles\",\n \"topic\": \"My Meeting\",\n \"id\": \"123456789\",\n \"type\": 2,\n \"uuid\": \"jI8fgZVOQkOKgOTgMFM2Jw==\",\n \"host_id\": \"z8yCxTTTTKWIFKy9d3VA\"\n }\n },\n \"event_ts\": 1646128800000\n }\n ```\n \u003c/CodeBlock\u003e\n\n \u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n## Rate limits\n\n\u003cTwoColumn\u003e\n\u003cLeftColumn\u003e\nThe Zoom API uses rate limits to ensure efficient handling of API request traffic. When you exceed a rate limit, the API request will fail and return a HTTP 429 status code. Rate limits are applied at the account level and vary based on your account plan.\n\nFor full details on rate limits, see our [rate limit documentation](/docs/api/rate-limits).\n\u003c/LeftColumn\u003e\n\u003cRightColumn\u003e\n\u003cCodeBlock\n header=\"Response headers\"\n\u003e\n```\nX-RateLimit-Category: Light\nX-RateLimit-Type: QPS\nX-RateLimit-Limit: 30\nX-RateLimit-Remaining: 0\nRetry-After: 1\n```\n\u003c/CodeBlock\u003e\n\n{/* // todo: check this response body */}\n\n\u003cCodeBlock\n header=\"Response body\"\n\u003e\n```json\n{\n \"code\": 429,\n \"message\": \"You have reached the maximum per-second rate limit for this API. Try again later.\",\n \"additional_detail\": \"QPS limit reached\"\n}\n```\n\u003c/CodeBlock\u003e\n\u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n## Pagination\n\n\u003cTwoColumn\u003e\n \u003cLeftColumn\u003e\n Zoom APIs use pagination to manage large result sets. Most APIs use the `next_page_token` parameter for pagination. When making requests, specify the `page_size` to control results per page. If more results are available, use the returned `next_page_token` in subsequent requests.\n\n For full details on pagination, see our [pagination documentation](/docs/api/pagination).\n \u003c/LeftColumn\u003e\n \u003cRightColumn\u003e\n \u003cCodeBlock header=\"Request with next_page_token\" theme=\"dark\"\u003e\n ```curl\n curl -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n \"https://api.zoom.us/v2/users/me/meetings?page_size=30\u0026next_page_token=abc3445rg\"\n ```\n \u003c/CodeBlock\u003e\n \u003cCodeBlock header=\"Response with next_page_token\"\u003e\n ```json\n {\n \"page_count\": 1,\n \"page_number\": 1,\n \"page_size\": 30,\n \"total_records\": 2,\n \"next_page_token\": \"abc3445rg\",\n \"meetings\": [\n {\n \"id\": 123456789,\n \"topic\": \"My Meeting\",\n \"start_time\": \"2023-04-15T22:00:00Z\",\n \"duration\": 60,\n \"timezone\": \"America/Los_Angeles\",\n \"created_at\": \"2023-04-14T21:14:55Z\",\n \"join_url\": \"https://example.com/j/123456789\"\n },\n {\n \"id\": 987654321,\n \"topic\": \"Team Sync\",\n \"start_time\": \"2023-04-16T15:00:00Z\",\n \"duration\": 30,\n \"timezone\": \"America/New_York\",\n \"created_at\": \"2023-04-14T22:30:00Z\",\n \"join_url\": \"https://example.com/j/987654321\"\n }\n ]\n }\n ```\n \u003c/CodeBlock\u003e\n \u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n## Status and error codes\n\n\u003cTwoColumn\u003e\n\u003cLeftColumn\u003e\n\nThe Zoom API uses HTTP Status codes to reflect a successful or unsuccesful request. 2XX status codes represent a successful request, 4XX/5XX status codes represent an error took place. If you receive an error status code, check the body for an error code and message.\n\nReference [Error Codes](/docs/api/errors) for more information.\n\n\u003c/LeftColumn\u003e\n\u003cRightColumn\u003e\n{/* \u003cCodeBlock\n header=\"cURL\"\n\u003e\n```\nexample\ngoes\nhere\n```\n\u003c/CodeBlock\u003e */}\n\u003c/RightColumn\u003e\n\u003c/TwoColumn\u003e\n\n## Get started in Postman\n\nZoom's [Postman Public Workspace](https://www.postman.com/zoom-developer) provides a collection of API requests to help you get started with Zoom APIs.\n\nStart with the full collection, or jump in to [Get Started Fast with Zoom APIs](https://www.postman.com/zoom-developer/zoom-public-workspace/collection/rzauu5q/get-started-fast-with-zoom-apis) for tailored workflows like authorization, creating non-login users, in-meeting control and more in this collection.","data":{"title":"API reference","description":"Explore a wide variety of Zoom API endpoints and events to power your applications and integrations.","hideToc":true},"isEmpty":false,"excerpt":"","path":"./content/docs/api/index.mdx"}},"sidebarName":"api","frontmatter":{"title":"API reference","description":"Explore a wide variety of Zoom API endpoints and events to power your applications and integrations."}},"__N_SSG":true},"page":"/docs/api","query":{},"buildId":"2024-11-26 T 10-50-37","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>