
Server URLs allow your application to receive data & communicate with Vapi during conversations. Conversation events can include:
In our quickstart guides we learned how to setup a basic back-and-forth conversation with a Vapi assistant.
To build more complex & custom applications, we’re going to need to get real-time conversation data to our backend. This is where server URLs come in.
If you’re familiar with functional programming, Server URLs are like callback functions. But instead of specifying a function to get data back on, we specify a URL to a server (to POST data back to).
To get started using server URLs, read our guides:
Server URLs can be set in multiple places. Learn where here.
Read about the different types of events Vapi can send to your server.
Learn about receiving server events in your local development environment.
Forward webhooks to your local server with the Vapi CLI.
Quick local testing with Vapi CLI + tunneling:
This setup forwards webhook events to your local server. Remember to update your Vapi webhook URLs to use the ngrok public URL.
The server URL can be any publicly accessible URL pointing to an HTTP endpoint. This can be a:
The main idea is that Vapi needs a location on the Internet that it can drop data to & converse with your application.
Webhooks are traditionally unidirectional & stateless, with the target endpoint usually only replying with a status code to acknowledge message reception. Certain server URL events (like assistant requests) may require a meaningful reply from your server.
“Server URL” is a more general term that encompasses both webhooks & bidirectional communication.