Skip to main content
POST
/
api
/
v1
/
vendors
/
{vendorId}
/
organizations
/
{organizationId}
/
assistants
Create Assistant
curl --request POST \
  --url https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Help Desk Assistant",
  "systemPromptGreeting": "Hello! How can I help you with our products today?",
  "systemPrompt": "You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.",
  "llmAudioContentGenerationStrategyId": "abcdef01-2345-6789-abcd-ef0123456789",
  "extensions": [
    {
      "type": "kb_search_v2",
      "parameters": {
        "kb_url": "https://kb.example.com/api",
        "max_results": 3
      }
    }
  ],
  "callEventHooks": [
    {
      "type": "webhook_transcript_ready_v1",
      "parameters": {
        "target_url": "https://my.internal.service/transcript",
        "secret_key": "s3cr3t_tr4nscr1pt"
      }
    }
  ],
  "telephoneNumberId": "11223344-5566-7788-9900-aabbccddeeff"
}
'
import requests

url = "https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants"

payload = {
"name": "Help Desk Assistant",
"systemPromptGreeting": "Hello! How can I help you with our products today?",
"systemPrompt": "You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.",
"llmAudioContentGenerationStrategyId": "abcdef01-2345-6789-abcd-ef0123456789",
"extensions": [
{
"type": "kb_search_v2",
"parameters": {
"kb_url": "https://kb.example.com/api",
"max_results": 3
}
}
],
"callEventHooks": [
{
"type": "webhook_transcript_ready_v1",
"parameters": {
"target_url": "https://my.internal.service/transcript",
"secret_key": "s3cr3t_tr4nscr1pt"
}
}
],
"telephoneNumberId": "11223344-5566-7788-9900-aabbccddeeff"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Help Desk Assistant',
systemPromptGreeting: 'Hello! How can I help you with our products today?',
systemPrompt: 'You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.',
llmAudioContentGenerationStrategyId: 'abcdef01-2345-6789-abcd-ef0123456789',
extensions: [
{
type: 'kb_search_v2',
parameters: {kb_url: 'https://kb.example.com/api', max_results: 3}
}
],
callEventHooks: [
{
type: 'webhook_transcript_ready_v1',
parameters: {
target_url: 'https://my.internal.service/transcript',
secret_key: 's3cr3t_tr4nscr1pt'
}
}
],
telephoneNumberId: '11223344-5566-7788-9900-aabbccddeeff'
})
};

fetch('https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Help Desk Assistant',
'systemPromptGreeting' => 'Hello! How can I help you with our products today?',
'systemPrompt' => 'You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.',
'llmAudioContentGenerationStrategyId' => 'abcdef01-2345-6789-abcd-ef0123456789',
'extensions' => [
[
'type' => 'kb_search_v2',
'parameters' => [
'kb_url' => 'https://kb.example.com/api',
'max_results' => 3
]
]
],
'callEventHooks' => [
[
'type' => 'webhook_transcript_ready_v1',
'parameters' => [
'target_url' => 'https://my.internal.service/transcript',
'secret_key' => 's3cr3t_tr4nscr1pt'
]
]
],
'telephoneNumberId' => '11223344-5566-7788-9900-aabbccddeeff'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants"

payload := strings.NewReader("{\n \"name\": \"Help Desk Assistant\",\n \"systemPromptGreeting\": \"Hello! How can I help you with our products today?\",\n \"systemPrompt\": \"You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.\",\n \"llmAudioContentGenerationStrategyId\": \"abcdef01-2345-6789-abcd-ef0123456789\",\n \"extensions\": [\n {\n \"type\": \"kb_search_v2\",\n \"parameters\": {\n \"kb_url\": \"https://kb.example.com/api\",\n \"max_results\": 3\n }\n }\n ],\n \"callEventHooks\": [\n {\n \"type\": \"webhook_transcript_ready_v1\",\n \"parameters\": {\n \"target_url\": \"https://my.internal.service/transcript\",\n \"secret_key\": \"s3cr3t_tr4nscr1pt\"\n }\n }\n ],\n \"telephoneNumberId\": \"11223344-5566-7788-9900-aabbccddeeff\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Help Desk Assistant\",\n \"systemPromptGreeting\": \"Hello! How can I help you with our products today?\",\n \"systemPrompt\": \"You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.\",\n \"llmAudioContentGenerationStrategyId\": \"abcdef01-2345-6789-abcd-ef0123456789\",\n \"extensions\": [\n {\n \"type\": \"kb_search_v2\",\n \"parameters\": {\n \"kb_url\": \"https://kb.example.com/api\",\n \"max_results\": 3\n }\n }\n ],\n \"callEventHooks\": [\n {\n \"type\": \"webhook_transcript_ready_v1\",\n \"parameters\": {\n \"target_url\": \"https://my.internal.service/transcript\",\n \"secret_key\": \"s3cr3t_tr4nscr1pt\"\n }\n }\n ],\n \"telephoneNumberId\": \"11223344-5566-7788-9900-aabbccddeeff\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://app.deepslate.eu/api/v1/vendors/{vendorId}/organizations/{organizationId}/assistants")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Help Desk Assistant\",\n \"systemPromptGreeting\": \"Hello! How can I help you with our products today?\",\n \"systemPrompt\": \"You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.\",\n \"llmAudioContentGenerationStrategyId\": \"abcdef01-2345-6789-abcd-ef0123456789\",\n \"extensions\": [\n {\n \"type\": \"kb_search_v2\",\n \"parameters\": {\n \"kb_url\": \"https://kb.example.com/api\",\n \"max_results\": 3\n }\n }\n ],\n \"callEventHooks\": [\n {\n \"type\": \"webhook_transcript_ready_v1\",\n \"parameters\": {\n \"target_url\": \"https://my.internal.service/transcript\",\n \"secret_key\": \"s3cr3t_tr4nscr1pt\"\n }\n }\n ],\n \"telephoneNumberId\": \"11223344-5566-7788-9900-aabbccddeeff\"\n}"

response = http.request(request)
puts response.read_body
{
  "success": true,
  "timestamp": "2025-04-17T14:23:30Z",
  "message": "<string>",
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Help Desk Assistant",
    "systemPrompt": "You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary.",
    "llmAudioContentGenerationStrategyId": "abcdef01-2345-6789-abcd-ef0123456789",
    "extensions": [
      {
        "id": "deadbeef-cafe-babe-feed-faceabadb001",
        "name": "Knowledge Base Search",
        "type": "kb_search_v2",
        "parameters": {
          "kb_url": "https://kb.example.com/api",
          "max_results": 3,
          "auth_token": null
        }
      }
    ],
    "callEventHooks": [
      {
        "id": "b00bface-1337-badd-cafe-d00df00dcafe",
        "type": "webhook_transcript_ready_v1",
        "parameters": {
          "target_url": "https://my.internal.service/transcript",
          "secret_key": "s3cr3t_tr4nscr1pt"
        }
      }
    ],
    "systemPromptGreeting": "Hello! How can I help you with our products today?",
    "telephoneNumberId": "11223344-5566-7788-9900-aabbccddeeff"
  },
  "traceId": "<string>"
}

Path Parameters

vendorId
string
required

ID of the Vendor (UUID)

organizationId
string
required

ID of the Organization (UUID)

Body

application/json

Assistant creation data

Data required to create a new Assistant

name
string
required

Name of the assistant.

Example:

"Help Desk Assistant"

systemPromptGreeting
string
required

Initial greeting message from the assistant.

Example:

"Hello! How can I help you with our products today?"

systemPrompt
string
required

Main system prompt defining the assistant's role and behavior.

Example:

"You are a customer support assistant for ACME Gadgets. Be polite, helpful, and concise. Escalate complex issues to a human agent if necessary."

llmAudioContentGenerationStrategyId
string
required

ID of the LLM Audio Content Generation Strategy used by the assistant (UUID).

Example:

"abcdef01-2345-6789-abcd-ef0123456789"

extensions
object[]
required

List of LLM extensions configured for this assistant.

callEventHooks
object[]
required

List of Call Event Hooks configured for this assistant.

telephoneNumberId
string

ID of the telephone number assigned to this assistant (UUID).

Example:

"11223344-5566-7788-9900-aabbccddeeff"

Response

Assistant successfully created

Standard API response wrapper

success
boolean
required

Indicates if the request was successful

Example:

true

timestamp
string<date-time>
required

Response timestamp in ISO-8601 format

Example:

"2025-04-17T14:23:30Z"

message
string

Human-readable message

data
object

Payload data object

traceId
string

Correlation or trace ID