<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d" -->

---
title: Building Zoom Apps with ngrok | daily.dev
description: A walkthrough on building Zoom Apps using ngrok to tunnel local development to Zoom's platform, covering app creation on the Zoom Developer Portal, configuring...
canonical: https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Building Zoom Apps with ngrok | daily.dev
og:description: A walkthrough on building Zoom Apps using ngrok to tunnel local development to Zoom's platform, covering app creation on the Zoom Developer Portal, configuring...
og:url: https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d
og:image: https://api.daily.dev/og/posts/rl9BMXp7D.png
og:image:alt: Building Zoom Apps with ngrok
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Building Zoom Apps with ngrok

**[ngrok Blog](https://daily.dev/sources/ngrok)** · 7 min read · 0 upvotes · 0 comments

## Summary

A walkthrough on building Zoom Apps using ngrok to tunnel local development to Zoom's platform, covering app creation on the Zoom Developer Portal, configuring OAuth URLs, scopes, and API/event access, handling incoming webhooks in a Node.js sample app, and securing the connection by enabling Zoom webhook verification directly in ngrok rather than in application code.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ngrok.com/blog/building-zoom-apps-with-ngrok>

## Questions this post answers

### How do I verify Zoom webhook signatures without adding verification code to my app?

Zoom webhook verification can be enabled directly in ngrok by adding specific verification parameters to the ngrok tunnel configuration, either via command line flags or the ngrok Dashboard. This turns on signature verification in the ngrok cloud, dropping invalid or unverified requests before they reach the application, avoiding the need to implement webhook verification manually since Zoom's SDK isn't always used.

_daily.dev surfaces practical integration guides for developers securing webhook-based apps like this._

### How do I connect Zoom to a locally running Zoom App for development?

Copy the .env.sample file to .env, populate it with the Client Id and Secret from the Zoom App configuration, start the Node.js app on its default port (3000), then run ngrok in a second terminal to expose that local port publicly. Zoom sends requests to the ngrok URL configured as the Home URL and OAuth redirect, allowing local testing of live meeting events.

_developers wiring local apps to third-party platforms like Zoom can find similar setup walkthroughs on daily.dev._

### What OAuth scope and API permission are needed for a Zoom App to share a screen within a meeting?

A Zoom App needs the shareApp API added under App Features and the zoomapp:inmeeting scope enabled under Scopes to share a screen within the app context. These settings, configured in the Zoom Developer Portal during app creation, control what in-meeting actions and data the app can access.

_daily.dev helps developers track configuration details like these when building on the zoom platform._

## Similar posts on daily.dev

- [Cloudflare Tunnels with Docker Compose: Free ngrok Alternative](https://daily.dev/posts/cloudflare-tunnels-with-docker-compose-free-ngrok-alternative-chygejkfv) · SitePoint · 1 upvotes · 0 comments
- [Zoom Gets the Headless Half of Programmatic Onboarding Right](https://daily.dev/posts/zoom-gets-the-headless-half-of-programmatic-onboarding-right-zuwu9so5f) · API Evangelist · 1 upvotes · 0 comments
- [Nuances of Developing a Business App on Telegram Mini Apps: What I Learned About the Platform](https://daily.dev/posts/nuances-of-developing-a-business-app-on-telegram-mini-apps-what-i-learned-about-the-platform-mmbbgjnwq) · JavaScript in Plain English · 1 upvotes · 0 comments

---

Tags: [#devtools](https://daily.dev/tags/devtools), [#oauth](https://daily.dev/tags/oauth)

[View this post on daily.dev](https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Building Zoom Apps with ngrok","url":"https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d"},"datePublished":"2026-08-23T07:21:38.367Z","dateModified":"2026-08-23T07:29:20.686Z","description":"A walkthrough on building Zoom Apps using ngrok to tunnel local development to Zoom's platform, covering app creation on the Zoom Developer Portal, configuring...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fe63c122ba564261062a34d4e064c07f?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fe63c122ba564261062a34d4e064c07f?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ngrok Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ngrok Blog","logo":"https://media.daily.dev/image/upload/s--718XXxvE--/f_auto,q_auto/v1787469610/logos/ngrok?_a=BAMAMicg0","url":"https://daily.dev/sources/ngrok"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"devtools,oauth","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ngrok Blog","item":"https://daily.dev/sources/ngrok"},{"@type":"ListItem","position":3,"name":"Building Zoom Apps with ngrok"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/building-zoom-apps-with-ngrok-rl9bmxp7d#faq","mainEntity":[{"@type":"Question","name":"How do I verify Zoom webhook signatures without adding verification code to my app?","acceptedAnswer":{"@type":"Answer","text":"Zoom webhook verification can be enabled directly in ngrok by adding specific verification parameters to the ngrok tunnel configuration, either via command line flags or the ngrok Dashboard. This turns on signature verification in the ngrok cloud, dropping invalid or unverified requests before they reach the application, avoiding the need to implement webhook verification manually since Zoom's SDK isn't always used. daily.dev surfaces practical integration guides for developers securing webhook-based apps like this."}},{"@type":"Question","name":"How do I connect Zoom to a locally running Zoom App for development?","acceptedAnswer":{"@type":"Answer","text":"Copy the .env.sample file to .env, populate it with the Client Id and Secret from the Zoom App configuration, start the Node.js app on its default port (3000), then run ngrok in a second terminal to expose that local port publicly. Zoom sends requests to the ngrok URL configured as the Home URL and OAuth redirect, allowing local testing of live meeting events. developers wiring local apps to third-party platforms like Zoom can find similar setup walkthroughs on daily.dev."}},{"@type":"Question","name":"What OAuth scope and API permission are needed for a Zoom App to share a screen within a meeting?","acceptedAnswer":{"@type":"Answer","text":"A Zoom App needs the shareApp API added under App Features and the zoomapp:inmeeting scope enabled under Scopes to share a screen within the app context. These settings, configured in the Zoom Developer Portal during app creation, control what in-meeting actions and data the app can access. daily.dev helps developers track configuration details like these when building on the zoom platform."}}]}
```

