---title: Locally Test Webhooks with Ngrokslug: /guides/how-to-test-webhooks-with-ngroksidebar_position: 2x-custom: ported_from_readme: true---SignalWire offers XML Bins as a way to host very simple code without the use of a server. However, what if you want to use more complex code or integrate with other applications/databases? In that case, you would need to write a script using the SignalWire SDK, host it on a server, and use that as the webhook for handling calls or messages. If youre new to webhooks with SignalWire, check out our [handy article](/guides/how-to-configure-your-webhook) about the different types of webhooks and how to use them!Why use ngrok for local testing?--------------------------------SignalWire requires that your webhooks be publicly accessible for them to be used with our services. This can make testing in local environments difficult because most computers have some routers/firewalls preventing this from taking place without [NAT](https://www.comptia.org/content/guides/what-is-network-address-translation#:~:text=NAT%20stands%20for%20network%20address,as%20do%20most%20home%20routers.) (Network address translation). One tool that makes local testing easy is [ngrok](https://ngrok.com/download), a service that provides an HTTPS URL that tunnels requests to your web application running locally on a port. How to Use ngrok----------------Once you have ngrok installed, you can run a command like ngrok http 5000 depending on the port that you want to use. Under the forwarding tab, you will see a ngrok URL that points to your localhost on the port you specified. You can use this URL to give SignalWire access to your web application as long as the ngrok window is running. However, keep an eye on the time as the free version will expire!