Please enable server keys
# support
e
I need a server API key to push mid-call messages from my backend. Can you flip the flag so I can see Server Keys? #1211483291191083018
v
To push mid-call messages from your backend, you can use Vapi's control URL feature instead of server keys. First, enable monitoring in your assistant configuration:
Copy code
typescript
const assistant = {
  monitorPlan: {
    listenEnabled: true,
    controlEnabled: true
  }
};
Then send messages to the control URL that you receive when initiating a call:
Copy code
typescript
await fetch(call.monitor.controlUrl, {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    type: 'add-message',
    message: {
      role: 'tool',
      content: 'Your message here'
    }
  })
});
Sources: - [Discord post about control URL](https://discord.com/channels/1211482211119796234/1340737584309211136) - [Discord post about live call control](https://discord.com/channels/1211482211119796234/1339634926248525935)
k
Vapi doesn’t flip a “Server Key” flag instead, you secure midcall backend messages by setting a secret token, custom headers, or OAuth2 credentials in your server URL configuration.
e
k
It's because the Start Speaking Plan can’t be edited via the dashboard, it must be configured through the API using the startSpeakingPlan field in the assistant update request.