For developers
What you can connect to Kallina from code, today
Kallina does not yet have a public documented REST API. It has four working connection points: webhook tools called by the agent during the conversation, addresses that start flows, the script for the voice button, and an MCP server. Access to the API for special cases is discussed on request.
Connection points
Webhook tools during the call
In the agent profile, define a tool: name, description, address, method, fields schema and maximum timeout. The agent calls it when the conversation requires it and uses the response in the sentence.
Addresses that start flows
A flow from the builder can have its own trigger address. Your system sends a request, and the flow starts with the received data.
Voice button on the site
A single script on the page. The voice session receives a temporary address, so the agent identifier does not appear in the page code.
MCP server
MCP-compatible assistants can connect to the Kallina account through OAuth authorisation, to read agents, calls and leads or to start calls.
Voice button: embed code
The script loads simply, not as a module and not through a bundler.
<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>
<script>
window.KallinaVoice.on("state", (s) => console.log(s)); // idle | connecting | listening | speaking
window.KallinaVoice.on("message", (m) => console.log(m.source, m.text));
// window.KallinaVoice.start() / window.KallinaVoice.stop()
</script>| Attribute | What it does |
|---|---|
| data-widget | The public identifier of the widget. Required. |
| data-mode | “button” displays the button; “inline” displays nothing and leave the start to your code. |
| data-position | Button corner: bottom right or bottom left. |
| data-color | Button colour. |
| data-label | Accessible label for the button. |
Authenticating flow addresses
| Method | When to use it |
|---|---|
| No authentication | For tests only, on flows that do not handle personal data. |
| Basic | Username and password, for systems that know nothing else. |
| Custom header | A header with a secret value set by you. |
| Bearer | A token in the authorisation header. |
Available MCP tools
The names below are the ones on the server. Access is granted per account, after authorisation.
- list_agents
- get_agent
- update_agent_prompt
- list_phone_numbers
- list_calls
- get_call_transcript
- list_leads
- export_leads
- start_outbound_call
- list_campaigns
- start_campaign
- account_status
Frequently asked questions
Do you have a REST API with keys?
Not public. If you need to start calls or read results from your system, write to us with the use case and we will set the access and its form.
Do I receive a webhook with the result after each call?
Not as a standard service. The result is sent through flows or through the existing integrations; for a fixed format we discuss it in the project.
Is there documentation?
For the voice button and the webhook tools, the description on this page and the help in the app. For any additional access, you will receive the documentation when the project starts.
Should webhook tools respond quickly?
Yes. Each tool has a maximum waiting time; a slow response means a pause in the conversation, so keep requests short.
Describe what you want to connect for us
Tell us which system, which data and at what point in the call. We will tell you what can be done with what exists and what needs to be built.