<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar" -->

---
title: Webhook Verification with ngrok Edges | daily.dev
description: A walkthrough of setting up persistent webhook verification using ngrok Cloud Edges instead of the ephemeral ngrok agent CLI approach. Using PagerDuty webhooks...
canonical: https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Webhook Verification with ngrok Edges | daily.dev
og:description: A walkthrough of setting up persistent webhook verification using ngrok Cloud Edges instead of the ephemeral ngrok agent CLI approach. Using PagerDuty webhooks...
og:url: https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar
og:image: https://api.daily.dev/og/posts/hm7NnW1Ar.png
og:image:alt: Webhook Verification with ngrok Edges
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.

# Webhook Verification with ngrok Edges

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

## Summary

A walkthrough of setting up persistent webhook verification using ngrok Cloud Edges instead of the ephemeral ngrok agent CLI approach. Using PagerDuty webhooks as the example, it covers creating an HTTPS Edge in the ngrok Dashboard, configuring the Webhook Verification module with a provider secret, attaching a custom domain, and starting a tunnel pointed at the Edge so incoming requests are verified before reaching the application.

## Full article

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

## Questions this post answers

### How do I make ngrok webhook verification settings persistent instead of re-entering them every session?

Configure webhook verification as an ngrok Cloud Edge in the ngrok Dashboard rather than passing arguments to the ngrok agent command line each time. Create an HTTPS Edge, open its Webhook Verification module, select the provider (such as PagerDuty), paste the webhook secret, and save. Attach a custom domain to the Edge, then start a tunnel pointed at the Edge ID so all incoming requests are verified automatically for the life of the tunnel.

_daily.dev surfaces practical guides like this for developers hardening their webhook integrations._

## 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
- [Your Webhook Endpoint Is a Tiny Distributed System](https://daily.dev/posts/your-webhook-endpoint-is-a-tiny-distributed-system-izgpxyxum) · Ruby Flow · 0 upvotes · 0 comments
- [Stripe Webhooks in Production: A 2026 Developer Guide](https://daily.dev/posts/stripe-webhooks-in-production-a-2026-developer-guide-k2uxwifgt) · Alex CloudStar · 0 upvotes · 0 comments

---

Tags: [#security](https://daily.dev/tags/security), [#devtools](https://daily.dev/tags/devtools), [#infrastructure](https://daily.dev/tags/infrastructure), [#authentication](https://daily.dev/tags/authentication)

[View this post on daily.dev](https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar)

```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":"Webhook Verification with ngrok Edges","url":"https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar"},"datePublished":"2026-08-23T07:21:41.604Z","dateModified":"2026-08-23T07:27:40.655Z","description":"A walkthrough of setting up persistent webhook verification using ngrok Cloud Edges instead of the ephemeral ngrok agent CLI approach. Using PagerDuty webhooks...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8bd58afb05e837e573ea9160ae854bcb?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8bd58afb05e837e573ea9160ae854bcb?_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/webhook-verification-with-ngrok-edges-hm7nnw1ar","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"security,devtools,infrastructure,authentication","timeRequired":"PT6M"}
{"@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":"Webhook Verification with ngrok Edges"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/webhook-verification-with-ngrok-edges-hm7nnw1ar#faq","mainEntity":[{"@type":"Question","name":"How do I make ngrok webhook verification settings persistent instead of re-entering them every session?","acceptedAnswer":{"@type":"Answer","text":"Configure webhook verification as an ngrok Cloud Edge in the ngrok Dashboard rather than passing arguments to the ngrok agent command line each time. Create an HTTPS Edge, open its Webhook Verification module, select the provider (such as PagerDuty), paste the webhook secret, and save. Attach a custom domain to the Edge, then start a tunnel pointed at the Edge ID so all incoming requests are verified automatically for the life of the tunnel. daily.dev surfaces practical guides like this for developers hardening their webhook integrations."}}]}
```

