@vapi-ai/web 1.1.6 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api.d.ts CHANGED
@@ -1,112 +1,71 @@
1
- export declare class CreateWebCallDTO {
2
- /**
3
- * This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
4
- */
5
- assistantId?: string;
6
- /**
7
- * Overrides for the assistant's settings and template variables.
8
- */
9
- assistantOverrides?: OverrideAssistantDTO;
10
- /**
11
- * This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
12
- */
13
- assistant?: CreateAssistantDTO;
14
- /**
15
- * This will expose SIP URI you can use to connect to the call. Disabled by default.
16
- */
17
- sipEnabled?: boolean;
1
+ export interface DeepgramVoice {
18
2
  /**
19
- * This is the metadata associated with the call.
3
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
4
+ * @example true
20
5
  */
21
- metadata?: Record<string, any>;
22
- }
23
- export interface DeepgramVoice {
6
+ inputPreprocessingEnabled?: boolean;
24
7
  /**
25
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
8
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
26
9
  * @min 1
27
10
  * @max 80
28
11
  * @example 10
29
12
  */
30
13
  inputMinCharacters?: number;
31
14
  /**
32
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
15
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
33
16
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
34
17
  */
35
18
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
19
+ /**
20
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
21
+ *
22
+ * Default `false` because you can achieve better results with prompting the model.
23
+ * @example false
24
+ */
25
+ fillerInjectionEnabled?: boolean;
36
26
  /** This is the voice provider that will be used. */
37
27
  provider: 'deepgram';
38
28
  /** This is the provider-specific ID that will be used. */
39
29
  voiceId: 'asteria' | 'luna' | 'stella' | 'athena' | 'hera' | 'orion' | 'arcas' | 'perseus' | 'angus' | 'orpheus' | 'helios' | 'zeus' | string;
40
30
  }
31
+ export interface Condition {
32
+ param: string;
33
+ value: object;
34
+ operator: 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
35
+ }
36
+ export interface ToolMessageStart {
37
+ type: 'request-start';
38
+ content: string;
39
+ conditions?: Condition[];
40
+ }
41
+ export interface ToolMessageComplete {
42
+ type: 'request-complete';
43
+ content: string;
44
+ conditions?: Condition[];
45
+ }
46
+ export interface ToolMessageFailed {
47
+ type: 'request-failed';
48
+ content: string;
49
+ conditions?: Condition[];
50
+ }
51
+ export interface ToolMessageDelayed {
52
+ type: 'request-response-delayed';
53
+ content: string;
54
+ /**
55
+ * The number of milliseconds to wait for the server response before saying this message.
56
+ * @example 1000
57
+ */
58
+ timingMilliseconds?: number;
59
+ conditions?: Condition[];
60
+ }
41
61
  export interface JsonSchema {
42
62
  type: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
43
63
  /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
44
64
  items?: object;
45
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
46
- prefixItems?: object;
47
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
48
- contains?: object;
49
65
  /** This is a map of string to JsonSchema. However, Swagger doesn't support circular references. */
50
66
  properties?: object;
51
- /** This is a map of string to JsonSchema objects. However, Swagger doesn't support circular references. */
52
- patternProperties?: object;
53
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
54
- additionalProperties?: object;
55
- /** This is a map of string to JsonSchema objects. However, Swagger doesn't support circular references. */
56
- dependentSchemas?: object;
57
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
58
- propertyNames?: object;
59
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
60
- unevaluatedProperties?: object;
61
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
62
- const?: object;
63
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
64
- not?: object;
65
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
66
- oneOf?: object;
67
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
68
- anyOf?: object;
69
- /** This is an array of type JsonSchema. However, Swagger doesn't support circular references. */
70
- allOf?: object;
71
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
72
- if?: object;
73
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
74
- then?: object;
75
- /** This is of type JsonSchema. However, Swagger doesn't support circular references. */
76
- else?: object;
77
- title?: string;
78
67
  description?: string;
79
- multipleOf?: number;
80
- maximum?: number;
81
- exclusiveMaximum?: number;
82
- minimum?: number;
83
- exclusiveMinimum?: number;
84
- maxLength?: number;
85
- /** @min 0 */
86
- minLength?: number;
87
- pattern?: string;
88
- format?: string;
89
- maxItems?: number;
90
- /** @min 0 */
91
- minItems?: number;
92
- minContains?: number;
93
- maxContains?: number;
94
- maxProperties?: number;
95
- /** @min 0 */
96
- minProperties?: number;
97
68
  required?: object[];
98
- dependentRequired?: object;
99
- enum?: object[];
100
- $id?: string;
101
- $ref?: string;
102
- $schema?: string;
103
- $comment?: string;
104
- default?: object;
105
- examples?: object[];
106
- readOnly?: boolean;
107
- writeOnly?: boolean;
108
- contentEncoding?: string;
109
- contentMediaType?: string;
110
69
  }
111
70
  export interface OpenAIFunctionParameters {
112
71
  /** This must be set to 'object'. It instructs the model to return a JSON object containing the function call properties. */
@@ -153,98 +112,280 @@ export interface Server {
153
112
  */
154
113
  secret?: string;
155
114
  }
156
- export interface FunctionTool {
157
- type: 'function';
115
+ export interface CreateDtmfToolDTO {
116
+ /**
117
+ * This determines if the tool is async.
118
+ *
119
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
120
+ *
121
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
122
+ *
123
+ * Defaults to synchronous (`false`).
124
+ * @example false
125
+ */
126
+ async?: boolean;
127
+ /**
128
+ * These are the messages that will be spoken to the user as the tool is running.
129
+ *
130
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
131
+ */
158
132
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
159
- /** The function definition details for the function tool. */
160
- function: OpenAIFunction;
133
+ /** The type of tool. "dtmf" for DTMF tool. */
134
+ type: 'dtmf';
135
+ /**
136
+ * This is the function definition of the tool.
137
+ *
138
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
139
+ */
140
+ function?: OpenAIFunction;
161
141
  /**
162
- * This is the server VAPI will hit this tool is requested by the model.
142
+ * This is the server that will be hit when this tool is requested by the model.
163
143
  *
164
144
  * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
165
145
  *
166
- * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl
146
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
167
147
  */
168
148
  server?: Server;
169
- /** Setting async: true will cause the function to be called asynchronously, meaning that the Assistant will not wait for the function to return before continuing. */
170
- async?: boolean;
171
- }
172
- export interface TransferDestination {
173
- message: string;
174
- destination: string;
175
- description: string;
176
149
  }
177
- export interface TransferTool {
178
- type: 'transferCall';
150
+ export interface CreateEndCallToolDTO {
151
+ /**
152
+ * This determines if the tool is async.
153
+ *
154
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
155
+ *
156
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
157
+ *
158
+ * Defaults to synchronous (`false`).
159
+ * @example false
160
+ */
161
+ async?: boolean;
162
+ /**
163
+ * These are the messages that will be spoken to the user as the tool is running.
164
+ *
165
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
166
+ */
179
167
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
168
+ /** The type of tool. "endCall" for End Call tool. */
169
+ type: 'endCall';
180
170
  /**
181
- * This is the description of what the function does, used by the AI to choose when and how to call the function.
182
- * @default "Use this tool to transfer the call. Only use it when following instructions that explicitly ask you to use the transferCall tool. DO NOT call this tool unless you are instructed to do so."
171
+ * This is the function definition of the tool.
172
+ *
173
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
183
174
  */
184
- description?: string;
185
- destinations?: TransferDestination[];
175
+ function?: OpenAIFunction;
186
176
  /**
187
- * This is the server VAPI will hit this tool is requested by the model.
177
+ * This is the server that will be hit when this tool is requested by the model.
188
178
  *
189
179
  * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
180
+ *
181
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
190
182
  */
191
183
  server?: Server;
192
184
  }
193
- export interface EndCallTool {
194
- type: 'endCall';
185
+ export interface CreateFunctionToolDTO {
186
+ /**
187
+ * This determines if the tool is async.
188
+ *
189
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
190
+ *
191
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
192
+ *
193
+ * Defaults to synchronous (`false`).
194
+ * @example false
195
+ */
196
+ async?: boolean;
197
+ /**
198
+ * These are the messages that will be spoken to the user as the tool is running.
199
+ *
200
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
201
+ */
195
202
  messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
196
- /** The function definition details for the function tool. */
197
- function: OpenAIFunction;
203
+ /** The type of tool. "function" for Function tool. */
204
+ type: 'function';
205
+ /**
206
+ * This is the function definition of the tool.
207
+ *
208
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
209
+ */
210
+ function?: OpenAIFunction;
211
+ /**
212
+ * This is the server that will be hit when this tool is requested by the model.
213
+ *
214
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
215
+ *
216
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
217
+ */
218
+ server?: Server;
198
219
  }
199
- export interface DtmfTool {
200
- type: 'dtmf';
201
- messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
202
- /** The function definition details for the function tool. */
203
- function: OpenAIFunction;
220
+ export interface GhlToolMetadata {
221
+ workflowId?: string;
222
+ locationId?: string;
204
223
  }
205
- export interface Condition {
206
- param: string;
207
- value: object;
208
- operator: 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte';
224
+ export interface CreateGhlToolDTO {
225
+ /**
226
+ * This determines if the tool is async.
227
+ *
228
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
229
+ *
230
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
231
+ *
232
+ * Defaults to synchronous (`false`).
233
+ * @example false
234
+ */
235
+ async?: boolean;
236
+ /**
237
+ * These are the messages that will be spoken to the user as the tool is running.
238
+ *
239
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
240
+ */
241
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
242
+ /** The type of tool. "ghl" for GHL tool. */
243
+ type: 'ghl';
244
+ metadata: GhlToolMetadata;
245
+ /**
246
+ * This is the function definition of the tool.
247
+ *
248
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
249
+ */
250
+ function?: OpenAIFunction;
251
+ /**
252
+ * This is the server that will be hit when this tool is requested by the model.
253
+ *
254
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
255
+ *
256
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
257
+ */
258
+ server?: Server;
209
259
  }
210
- export interface ToolMessageComplete {
211
- type: 'request-complete';
212
- content: string;
213
- conditions?: Condition[];
260
+ export interface MakeToolMetadata {
261
+ scenarioId?: number;
262
+ triggerHookId?: number;
214
263
  }
215
- export interface ToolMessageDelayed {
216
- type: 'request-response-delayed';
217
- content: string;
264
+ export interface CreateMakeToolDTO {
218
265
  /**
219
- * The number of milliseconds to wait for the server response before saying this message.
220
- * @example 1000
266
+ * This determines if the tool is async.
267
+ *
268
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
269
+ *
270
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
271
+ *
272
+ * Defaults to synchronous (`false`).
273
+ * @example false
221
274
  */
222
- timingMilliseconds?: number;
223
- conditions?: Condition[];
275
+ async?: boolean;
276
+ /**
277
+ * These are the messages that will be spoken to the user as the tool is running.
278
+ *
279
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
280
+ */
281
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
282
+ /** The type of tool. "make" for Make tool. */
283
+ type: 'make';
284
+ metadata: MakeToolMetadata;
285
+ /**
286
+ * This is the function definition of the tool.
287
+ *
288
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
289
+ */
290
+ function?: OpenAIFunction;
291
+ /**
292
+ * This is the server that will be hit when this tool is requested by the model.
293
+ *
294
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
295
+ *
296
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
297
+ */
298
+ server?: Server;
224
299
  }
225
- export interface ToolMessageFailed {
226
- type: 'request-failed';
227
- content: string;
228
- conditions?: Condition[];
300
+ export interface AssistantTransferDestination {
301
+ type: 'assistant';
302
+ /** This is the assistant to transfer the call to. */
303
+ assistantName: string;
304
+ /** This is the message to say before transferring the call to the destination. */
305
+ message?: string;
306
+ /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */
307
+ description?: string;
229
308
  }
230
- export interface ToolMessageStart {
231
- type: 'request-start';
232
- content: string;
233
- conditions?: Condition[];
309
+ export interface PhoneNumberTransferDestination {
310
+ type: 'phoneNumber';
311
+ /** This is the phone number to transfer the call to. */
312
+ number: string;
313
+ /** This is the message to say before transferring the call to the destination. */
314
+ message?: string;
315
+ /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */
316
+ description?: string;
317
+ }
318
+ export interface SipTransferDestination {
319
+ type: 'sip';
320
+ /** This is the SIP URI to transfer the call to. */
321
+ sipUri: string;
322
+ /** This is the message to say before transferring the call to the destination. */
323
+ message?: string;
324
+ /** This is the description of the destination, used by the AI to choose when and how to transfer the call. */
325
+ description?: string;
326
+ }
327
+ export interface CreateTransferCallToolDTO {
328
+ /**
329
+ * This determines if the tool is async.
330
+ *
331
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
332
+ *
333
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
334
+ *
335
+ * Defaults to synchronous (`false`).
336
+ * @example false
337
+ */
338
+ async?: boolean;
339
+ /**
340
+ * These are the messages that will be spoken to the user as the tool is running.
341
+ *
342
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
343
+ */
344
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
345
+ type: 'transferCall';
346
+ /** These are the destinations that the call can be transferred to. If no destinations are provided, server.url will be used to get the transfer destination once the tool is called. */
347
+ destinations?: (AssistantTransferDestination | PhoneNumberTransferDestination | SipTransferDestination)[];
348
+ /**
349
+ * This is the function definition of the tool.
350
+ *
351
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
352
+ */
353
+ function?: OpenAIFunction;
354
+ /**
355
+ * This is the server that will be hit when this tool is requested by the model.
356
+ *
357
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
358
+ *
359
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
360
+ */
361
+ server?: Server;
234
362
  }
235
363
  export interface OpenAIMessage {
236
364
  content: string | null;
237
- role: 'assistant' | 'function' | 'user' | 'system';
238
- function_call?: object;
239
- tool_calls?: object[];
365
+ role: 'assistant' | 'function' | 'user' | 'system' | 'tool';
366
+ }
367
+ export interface KnowledgeBase {
368
+ provider: 'canonical';
369
+ topK?: number;
370
+ fileIds: string[];
240
371
  }
241
372
  export interface TogetherAIModel {
242
373
  /** This is the starting state for the conversation. */
243
374
  messages?: OpenAIMessage[];
244
- /** These are the tools functions that the assistant can execute during the call. */
245
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
375
+ /**
376
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
377
+ *
378
+ * Both `tools` and `toolIds` can be used together.
379
+ */
380
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
381
+ /**
382
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
383
+ *
384
+ * Both `tools` and `toolIds` can be used together.
385
+ */
386
+ toolIds?: string[];
246
387
  provider: 'together-ai';
247
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
388
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
248
389
  model: string;
249
390
  /**
250
391
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -252,20 +393,38 @@ export interface TogetherAIModel {
252
393
  * @max 2
253
394
  */
254
395
  temperature?: number;
396
+ /** These are the options for the knowledge base. */
397
+ knowledgeBase?: KnowledgeBase;
255
398
  /**
256
399
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
257
400
  * @min 50
258
401
  * @max 1000
259
402
  */
260
403
  maxTokens?: number;
404
+ /**
405
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
406
+ *
407
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
408
+ */
409
+ emotionRecognitionEnabled?: boolean;
261
410
  }
262
411
  export interface AnyscaleModel {
263
412
  /** This is the starting state for the conversation. */
264
413
  messages?: OpenAIMessage[];
265
- /** These are the tools functions that the assistant can execute during the call. */
266
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
414
+ /**
415
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
416
+ *
417
+ * Both `tools` and `toolIds` can be used together.
418
+ */
419
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
420
+ /**
421
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
422
+ *
423
+ * Both `tools` and `toolIds` can be used together.
424
+ */
425
+ toolIds?: string[];
267
426
  provider: 'anyscale';
268
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
427
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
269
428
  model: string;
270
429
  /**
271
430
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -273,20 +432,38 @@ export interface AnyscaleModel {
273
432
  * @max 2
274
433
  */
275
434
  temperature?: number;
435
+ /** These are the options for the knowledge base. */
436
+ knowledgeBase?: KnowledgeBase;
276
437
  /**
277
438
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
278
439
  * @min 50
279
440
  * @max 1000
280
441
  */
281
442
  maxTokens?: number;
443
+ /**
444
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
445
+ *
446
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
447
+ */
448
+ emotionRecognitionEnabled?: boolean;
282
449
  }
283
450
  export interface OpenRouterModel {
284
451
  /** This is the starting state for the conversation. */
285
452
  messages?: OpenAIMessage[];
286
- /** These are the tools functions that the assistant can execute during the call. */
287
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
453
+ /**
454
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
455
+ *
456
+ * Both `tools` and `toolIds` can be used together.
457
+ */
458
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
459
+ /**
460
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
461
+ *
462
+ * Both `tools` and `toolIds` can be used together.
463
+ */
464
+ toolIds?: string[];
288
465
  provider: 'openrouter';
289
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
466
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
290
467
  model: string;
291
468
  /**
292
469
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -294,20 +471,38 @@ export interface OpenRouterModel {
294
471
  * @max 2
295
472
  */
296
473
  temperature?: number;
474
+ /** These are the options for the knowledge base. */
475
+ knowledgeBase?: KnowledgeBase;
297
476
  /**
298
477
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
299
478
  * @min 50
300
479
  * @max 1000
301
480
  */
302
481
  maxTokens?: number;
482
+ /**
483
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
484
+ *
485
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
486
+ */
487
+ emotionRecognitionEnabled?: boolean;
303
488
  }
304
489
  export interface PerplexityAIModel {
305
490
  /** This is the starting state for the conversation. */
306
491
  messages?: OpenAIMessage[];
307
- /** These are the tools functions that the assistant can execute during the call. */
308
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
492
+ /**
493
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
494
+ *
495
+ * Both `tools` and `toolIds` can be used together.
496
+ */
497
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
498
+ /**
499
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
500
+ *
501
+ * Both `tools` and `toolIds` can be used together.
502
+ */
503
+ toolIds?: string[];
309
504
  provider: 'perplexity-ai';
310
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
505
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
311
506
  model: string;
312
507
  /**
313
508
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -315,20 +510,38 @@ export interface PerplexityAIModel {
315
510
  * @max 2
316
511
  */
317
512
  temperature?: number;
513
+ /** These are the options for the knowledge base. */
514
+ knowledgeBase?: KnowledgeBase;
318
515
  /**
319
516
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
320
517
  * @min 50
321
518
  * @max 1000
322
519
  */
323
520
  maxTokens?: number;
521
+ /**
522
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
523
+ *
524
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
525
+ */
526
+ emotionRecognitionEnabled?: boolean;
324
527
  }
325
528
  export interface DeepInfraModel {
326
529
  /** This is the starting state for the conversation. */
327
530
  messages?: OpenAIMessage[];
328
- /** These are the tools functions that the assistant can execute during the call. */
329
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
531
+ /**
532
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
533
+ *
534
+ * Both `tools` and `toolIds` can be used together.
535
+ */
536
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
537
+ /**
538
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
539
+ *
540
+ * Both `tools` and `toolIds` can be used together.
541
+ */
542
+ toolIds?: string[];
330
543
  provider: 'deepinfra';
331
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
544
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
332
545
  model: string;
333
546
  /**
334
547
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -336,25 +549,43 @@ export interface DeepInfraModel {
336
549
  * @max 2
337
550
  */
338
551
  temperature?: number;
552
+ /** These are the options for the knowledge base. */
553
+ knowledgeBase?: KnowledgeBase;
339
554
  /**
340
555
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
341
556
  * @min 50
342
557
  * @max 1000
343
558
  */
344
559
  maxTokens?: number;
560
+ /**
561
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
562
+ *
563
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
564
+ */
565
+ emotionRecognitionEnabled?: boolean;
345
566
  }
346
567
  export interface CustomLLMModel {
347
568
  /** This is the starting state for the conversation. */
348
569
  messages?: OpenAIMessage[];
349
- /** These are the tools functions that the assistant can execute during the call. */
350
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
351
- /** This is the provider that will be used for the model. Any service, including your own server, that is compatible with the OpenAI API can be used. */
352
- provider: 'custom-llm';
353
- /** These is the URL we'll use for the OpenAI client's `baseURL`. Ex. https://openrouter.ai/api/v1 */
354
- url: string;
570
+ /**
571
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
572
+ *
573
+ * Both `tools` and `toolIds` can be used together.
574
+ */
575
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
576
+ /**
577
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
578
+ *
579
+ * Both `tools` and `toolIds` can be used together.
580
+ */
581
+ toolIds?: string[];
582
+ /** This is the provider that will be used for the model. Any service, including your own server, that is compatible with the OpenAI API can be used. */
583
+ provider: 'custom-llm';
584
+ /** These is the URL we'll use for the OpenAI client's `baseURL`. Ex. https://openrouter.ai/api/v1 */
585
+ url: string;
355
586
  /** This sets whether the call object is sent in requests to the custom provider. Default is true. */
356
587
  urlRequestMetadataEnabled: boolean;
357
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
588
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
358
589
  model: string;
359
590
  /**
360
591
  * This is the temperature that will be used for calls. Default is 0 to leverage caching for lower latency.
@@ -362,19 +593,37 @@ export interface CustomLLMModel {
362
593
  * @max 2
363
594
  */
364
595
  temperature?: number;
596
+ /** These are the options for the knowledge base. */
597
+ knowledgeBase?: KnowledgeBase;
365
598
  /**
366
599
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
367
600
  * @min 50
368
601
  * @max 1000
369
602
  */
370
603
  maxTokens?: number;
604
+ /**
605
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
606
+ *
607
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
608
+ */
609
+ emotionRecognitionEnabled?: boolean;
371
610
  }
372
611
  export interface GroqModel {
373
612
  /** This is the starting state for the conversation. */
374
613
  messages?: OpenAIMessage[];
375
- /** These are the tools functions that the assistant can execute during the call. */
376
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
377
- /** The key of the model from the custom provider. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
614
+ /**
615
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
616
+ *
617
+ * Both `tools` and `toolIds` can be used together.
618
+ */
619
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
620
+ /**
621
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
622
+ *
623
+ * Both `tools` and `toolIds` can be used together.
624
+ */
625
+ toolIds?: string[];
626
+ /** This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b */
378
627
  model: 'mixtral-8x7b-32768' | 'llama3-8b-8192' | 'llama3-70b-8192';
379
628
  provider: 'groq';
380
629
  /**
@@ -383,18 +632,36 @@ export interface GroqModel {
383
632
  * @max 2
384
633
  */
385
634
  temperature?: number;
635
+ /** These are the options for the knowledge base. */
636
+ knowledgeBase?: KnowledgeBase;
386
637
  /**
387
638
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
388
639
  * @min 50
389
640
  * @max 1000
390
641
  */
391
642
  maxTokens?: number;
643
+ /**
644
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
645
+ *
646
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
647
+ */
648
+ emotionRecognitionEnabled?: boolean;
392
649
  }
393
650
  export interface AnthropicModel {
394
651
  /** This is the starting state for the conversation. */
395
652
  messages?: OpenAIMessage[];
396
- /** These are the tools functions that the assistant can execute during the call. */
397
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
653
+ /**
654
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
655
+ *
656
+ * Both `tools` and `toolIds` can be used together.
657
+ */
658
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
659
+ /**
660
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
661
+ *
662
+ * Both `tools` and `toolIds` can be used together.
663
+ */
664
+ toolIds?: string[];
398
665
  /** This is the Anthropic/Claude models that will be used. */
399
666
  model: 'claude-3-opus-20240229' | 'claude-3-sonnet-20240229' | 'claude-3-haiku-20240307';
400
667
  provider: 'anthropic';
@@ -404,12 +671,20 @@ export interface AnthropicModel {
404
671
  * @max 2
405
672
  */
406
673
  temperature?: number;
674
+ /** These are the options for the knowledge base. */
675
+ knowledgeBase?: KnowledgeBase;
407
676
  /**
408
677
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
409
678
  * @min 50
410
679
  * @max 1000
411
680
  */
412
681
  maxTokens?: number;
682
+ /**
683
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
684
+ *
685
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
686
+ */
687
+ emotionRecognitionEnabled?: boolean;
413
688
  }
414
689
  export interface DeepgramTranscriber {
415
690
  /** This is the transcription provider that will be used. */
@@ -417,7 +692,7 @@ export interface DeepgramTranscriber {
417
692
  /** This is the Deepgram model that will be used. A list of models can be found here: https://developers.deepgram.com/docs/models-languages-overview */
418
693
  model?: 'nova-2' | 'nova-2-general' | 'nova-2-meeting' | 'nova-2-phonecall' | 'nova-2-finance' | 'nova-2-conversationalai' | 'nova-2-voicemail' | 'nova-2-video' | 'nova-2-medical' | 'nova-2-drivethru' | 'nova-2-automotive' | 'nova' | 'nova-general' | 'nova-phonecall' | 'nova-medical' | 'enhanced' | 'enhanced-general' | 'enhanced-meeting' | 'enhanced-phonecall' | 'enhanced-finance' | 'base' | 'base-general' | 'base-meeting' | 'base-phonecall' | 'base-finance' | 'base-conversationalai' | 'base-voicemail' | 'base-video' | string;
419
694
  /** This is the language that will be set for the transcription. The list of languages Deepgram supports can be found here: https://developers.deepgram.com/docs/models-languages-overview */
420
- language?: 'cs' | 'da' | 'da-DK' | 'de-CH' | 'nl' | 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'nl-BE' | 'fr' | 'fr-CA' | 'de' | 'el' | 'hi' | 'hi-Latn' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'ru' | 'es' | 'es-419' | 'sv' | 'sv-SE' | 'tr' | 'uk' | 'zh' | 'zh-CN' | 'zh-TW';
695
+ language?: 'bg' | 'ro' | 'cs' | 'da' | 'da-DK' | 'de-CH' | 'nl' | 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'nl-BE' | 'fr' | 'fr-CA' | 'de' | 'el' | 'hi' | 'hi-Latn' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'ru' | 'es' | 'es-419' | 'sv' | 'sv-SE' | 'tr' | 'uk' | 'zh' | 'zh-CN' | 'zh-TW';
421
696
  /**
422
697
  * This will be use smart format option provided by Deepgram. It's default disabled because it can sometimes format numbers as times sometimes but it's getting better.
423
698
  * @example false
@@ -436,17 +711,29 @@ export interface TalkscriberTranscriber {
436
711
  }
437
712
  export interface ElevenLabsVoice {
438
713
  /**
439
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
714
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
715
+ * @example true
716
+ */
717
+ inputPreprocessingEnabled?: boolean;
718
+ /**
719
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
440
720
  * @min 1
441
721
  * @max 80
442
722
  * @example 10
443
723
  */
444
724
  inputMinCharacters?: number;
445
725
  /**
446
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
726
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
447
727
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
448
728
  */
449
729
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
730
+ /**
731
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
732
+ *
733
+ * Default `false` because you can achieve better results with prompting the model.
734
+ * @example false
735
+ */
736
+ fillerInjectionEnabled?: boolean;
450
737
  /** This is the voice provider that will be used. */
451
738
  provider: '11labs';
452
739
  /** This is the provider-specific ID that will be used. Ensure the Voice is present in your 11Labs Voice Library. */
@@ -478,28 +765,38 @@ export interface ElevenLabsVoice {
478
765
  */
479
766
  useSpeakerBoost?: boolean;
480
767
  /**
481
- * Defines the optimize streaming latency for voice settings.
768
+ * Defines the optimize streaming latency for voice settings. Defaults to 3.
482
769
  * @min 0
483
770
  * @max 4
484
- * @example 4
771
+ * @example 3
485
772
  */
486
- enableSsmlParsing?: boolean;
773
+ optimizeStreamingLatency?: number;
487
774
  /**
488
- * Defines whether SSML parsing is enabled.
489
- * @example true
775
+ * Defines the use of https://elevenlabs.io/docs/speech-synthesis/prompting#pronunciation. Disabled by default.
776
+ * @example false
490
777
  */
491
- optimizeStreamingLatency?: number;
778
+ enableSsmlParsing?: boolean;
492
779
  /**
493
- * This is the model that will be used. Defaults to 'eleven_multilingual_v2' if transcriber.language is non-English, otherwise 'eleven_turbo_v2'.
494
- * @example "eleven_turbo_v2"
780
+ * This is the model that will be used. Defaults to 'eleven_multilingual_v2' if transcriber.language is non-English, otherwise 'eleven_turbo_v2_5'.
781
+ * @example "eleven_turbo_v2_5"
495
782
  */
496
- model?: 'eleven_multilingual_v2' | 'eleven_turbo_v2' | 'eleven_monolingual_v1';
783
+ model?: 'eleven_multilingual_v2' | 'eleven_turbo_v2' | 'eleven_turbo_v2_5' | 'eleven_monolingual_v1';
497
784
  }
498
785
  export interface OpenAIModel {
499
786
  /** This is the starting state for the conversation. */
500
787
  messages?: OpenAIMessage[];
501
- /** These are the tools functions that the assistant can execute during the call. */
502
- tools?: (TransferTool | FunctionTool | EndCallTool | DtmfTool)[];
788
+ /**
789
+ * These are the tools that the assistant can use during the call. To use existing tools, use `toolIds`.
790
+ *
791
+ * Both `tools` and `toolIds` can be used together.
792
+ */
793
+ tools?: (CreateTransferCallToolDTO | CreateFunctionToolDTO | CreateEndCallToolDTO | CreateDtmfToolDTO | CreateMakeToolDTO | CreateGhlToolDTO)[];
794
+ /**
795
+ * These are the tools that the assistant can use during the call. To use transient tools, use `tools`.
796
+ *
797
+ * Both `tools` and `toolIds` can be used together.
798
+ */
799
+ toolIds?: string[];
503
800
  /** This is the provider that will be used for the model. */
504
801
  provider: 'openai';
505
802
  /** This is the OpenAI model that will be used. */
@@ -522,26 +819,46 @@ export interface OpenAIModel {
522
819
  * @max 2
523
820
  */
524
821
  temperature?: number;
822
+ /** These are the options for the knowledge base. */
823
+ knowledgeBase?: KnowledgeBase;
525
824
  /**
526
825
  * This is the max number of tokens that the assistant will be allowed to generate in each turn of the conversation. Default is 250.
527
826
  * @min 50
528
827
  * @max 1000
529
828
  */
530
829
  maxTokens?: number;
830
+ /**
831
+ * This determines whether we detect user's emotion while they speak and send it as an additional info to model.
832
+ *
833
+ * Default `false` because the model is usually are good at understanding the user's emotion from text.
834
+ */
835
+ emotionRecognitionEnabled?: boolean;
531
836
  }
532
837
  export interface PlayHTVoice {
533
838
  /**
534
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
839
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
840
+ * @example true
841
+ */
842
+ inputPreprocessingEnabled?: boolean;
843
+ /**
844
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
535
845
  * @min 1
536
846
  * @max 80
537
847
  * @example 10
538
848
  */
539
849
  inputMinCharacters?: number;
540
850
  /**
541
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
851
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
542
852
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
543
853
  */
544
854
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
855
+ /**
856
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
857
+ *
858
+ * Default `false` because you can achieve better results with prompting the model.
859
+ * @example false
860
+ */
861
+ fillerInjectionEnabled?: boolean;
545
862
  /** This is the voice provider that will be used. */
546
863
  provider: 'playht';
547
864
  /** This is the provider-specific ID that will be used. */
@@ -589,22 +906,40 @@ export interface PlayHTVoice {
589
906
  }
590
907
  export interface RimeAIVoice {
591
908
  /**
592
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
909
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
910
+ * @example true
911
+ */
912
+ inputPreprocessingEnabled?: boolean;
913
+ /**
914
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
593
915
  * @min 1
594
916
  * @max 80
595
917
  * @example 10
596
918
  */
597
919
  inputMinCharacters?: number;
598
920
  /**
599
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
921
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
600
922
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
601
923
  */
602
924
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
925
+ /**
926
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
927
+ *
928
+ * Default `false` because you can achieve better results with prompting the model.
929
+ * @example false
930
+ */
931
+ fillerInjectionEnabled?: boolean;
603
932
  /** This is the voice provider that will be used. */
604
933
  provider: 'rime-ai';
605
934
  /** This is the provider-specific ID that will be used. */
606
- voiceId: 'abbie' | 'allison' | 'ally' | 'alona' | 'amber' | 'ana' | 'antoine' | 'armon' | 'brenda' | 'brittany' | 'carol' | 'colin' | 'courtney' | 'elena' | 'elliot' | 'eva' | 'geoff' | 'gerald' | 'hank' | 'helen' | 'hera' | 'jen' | 'joe' | 'joy' | 'juan' | 'kendra' | 'kendrick' | 'kenneth' | 'kevin' | 'kris' | 'linda' | 'madison' | 'marge' | 'marina' | 'marissa' | 'marta' | 'maya' | 'nicholas' | 'nyles' | 'phil' | 'reba' | 'rex' | 'rick' | 'ritu' | 'rob' | 'rodney' | 'rohan' | 'rosco' | 'samantha' | 'sandy' | 'selena' | 'seth' | 'sharon' | 'stan' | 'tamra' | 'tanya' | 'tibur' | 'tj' | 'tyler' | 'viv' | 'yadira' | string;
935
+ voiceId: 'marsh' | 'bayou' | 'creek' | 'brook' | 'flower' | 'spore' | 'glacier' | 'gulch' | 'alpine' | 'cove' | 'lagoon' | 'tundra' | 'steppe' | 'mesa' | 'grove' | 'rainforest' | 'moraine' | 'wildflower' | 'peak' | 'boulder' | 'abbie' | 'allison' | 'ally' | 'alona' | 'amber' | 'ana' | 'antoine' | 'armon' | 'brenda' | 'brittany' | 'carol' | 'colin' | 'courtney' | 'elena' | 'elliot' | 'eva' | 'geoff' | 'gerald' | 'hank' | 'helen' | 'hera' | 'jen' | 'joe' | 'joy' | 'juan' | 'kendra' | 'kendrick' | 'kenneth' | 'kevin' | 'kris' | 'linda' | 'madison' | 'marge' | 'marina' | 'marissa' | 'marta' | 'maya' | 'nicholas' | 'nyles' | 'phil' | 'reba' | 'rex' | 'rick' | 'ritu' | 'rob' | 'rodney' | 'rohan' | 'rosco' | 'samantha' | 'sandy' | 'selena' | 'seth' | 'sharon' | 'stan' | 'tamra' | 'tanya' | 'tibur' | 'tj' | 'tyler' | 'viv' | 'yadira' | string;
936
+ /**
937
+ * This is the model that will be used. Defaults to 'v1' when not specified.
938
+ * @example "v1"
939
+ */
940
+ model?: 'v1' | 'mist';
607
941
  /**
942
+ * This is the speed multiplier that will be used.
608
943
  * @min 0.1
609
944
  * @example null
610
945
  */
@@ -612,17 +947,29 @@ export interface RimeAIVoice {
612
947
  }
613
948
  export interface OpenAIVoice {
614
949
  /**
615
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
950
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
951
+ * @example true
952
+ */
953
+ inputPreprocessingEnabled?: boolean;
954
+ /**
955
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
616
956
  * @min 1
617
957
  * @max 80
618
958
  * @example 10
619
959
  */
620
960
  inputMinCharacters?: number;
621
961
  /**
622
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
962
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
623
963
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
624
964
  */
625
965
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
966
+ /**
967
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
968
+ *
969
+ * Default `false` because you can achieve better results with prompting the model.
970
+ * @example false
971
+ */
972
+ fillerInjectionEnabled?: boolean;
626
973
  /** This is the voice provider that will be used. */
627
974
  provider: 'openai';
628
975
  /** This is the provider-specific ID that will be used. */
@@ -637,17 +984,29 @@ export interface OpenAIVoice {
637
984
  }
638
985
  export interface AzureVoice {
639
986
  /**
640
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
987
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
988
+ * @example true
989
+ */
990
+ inputPreprocessingEnabled?: boolean;
991
+ /**
992
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
641
993
  * @min 1
642
994
  * @max 80
643
995
  * @example 10
644
996
  */
645
997
  inputMinCharacters?: number;
646
998
  /**
647
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
999
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
648
1000
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
649
1001
  */
650
1002
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
1003
+ /**
1004
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1005
+ *
1006
+ * Default `false` because you can achieve better results with prompting the model.
1007
+ * @example false
1008
+ */
1009
+ fillerInjectionEnabled?: boolean;
651
1010
  /** This is the voice provider that will be used. */
652
1011
  provider: 'azure';
653
1012
  /** This is the provider-specific ID that will be used. */
@@ -661,17 +1020,29 @@ export interface AzureVoice {
661
1020
  }
662
1021
  export interface LMNTVoice {
663
1022
  /**
664
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1023
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1024
+ * @example true
1025
+ */
1026
+ inputPreprocessingEnabled?: boolean;
1027
+ /**
1028
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
665
1029
  * @min 1
666
1030
  * @max 80
667
1031
  * @example 10
668
1032
  */
669
1033
  inputMinCharacters?: number;
670
1034
  /**
671
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1035
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
672
1036
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
673
1037
  */
674
1038
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
1039
+ /**
1040
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1041
+ *
1042
+ * Default `false` because you can achieve better results with prompting the model.
1043
+ * @example false
1044
+ */
1045
+ fillerInjectionEnabled?: boolean;
675
1046
  /** This is the voice provider that will be used. */
676
1047
  provider: 'lmnt';
677
1048
  /** This is the provider-specific ID that will be used. */
@@ -686,29 +1057,153 @@ export interface LMNTVoice {
686
1057
  }
687
1058
  export interface NeetsVoice {
688
1059
  /**
689
- * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to 10.
1060
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1061
+ * @example true
1062
+ */
1063
+ inputPreprocessingEnabled?: boolean;
1064
+ /**
1065
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
690
1066
  * @min 1
691
1067
  * @max 80
692
1068
  * @example 10
693
1069
  */
694
1070
  inputMinCharacters?: number;
695
1071
  /**
696
- * These are the punctuations that are considered valid boundaries / "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the LLM tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1072
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
697
1073
  * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
698
1074
  */
699
1075
  inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
1076
+ /**
1077
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1078
+ *
1079
+ * Default `false` because you can achieve better results with prompting the model.
1080
+ * @example false
1081
+ */
1082
+ fillerInjectionEnabled?: boolean;
700
1083
  /** This is the voice provider that will be used. */
701
1084
  provider: 'neets';
702
1085
  /** This is the provider-specific ID that will be used. */
703
- voiceId: 'lily' | 'daniel' | string;
1086
+ voiceId: 'vits' | string;
704
1087
  }
705
- export interface ForwardingPhoneNumber {
706
- /** This is the number to forward to. Pass one of `number` or `sipUri`. */
707
- number?: string;
708
- /** This is the SIP URI to forward to. Pass one of `number` or `sipUri`. */
709
- sipUri?: string;
710
- /** This is the message that the assistant will say when the call is forwarded to this number. */
711
- message?: string;
1088
+ export interface CartesiaVoice {
1089
+ /**
1090
+ * This determines whether the model output is preprocessed before being sent to the voice provider. This includes things like giving better hints to the voice provider on how to pronounce complex structured text like phone numbers, emails and addresses. This might add latency as it waits for the model to output a full chunk before sending it to the voice provider. Defaults to true.
1091
+ * @example true
1092
+ */
1093
+ inputPreprocessingEnabled?: boolean;
1094
+ /**
1095
+ * This is the minimum number of characters that will be passed to the voice provider. This helps decides the minimum chunk size that is sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to 30.
1096
+ * @min 1
1097
+ * @max 80
1098
+ * @example 10
1099
+ */
1100
+ inputMinCharacters?: number;
1101
+ /**
1102
+ * These are the punctuations that are considered valid boundaries and "delimiters". This helps decides the chunks that are sent to the voice provider for the voice generation as the model tokens are streaming in. Defaults to ['。', ',', '.', '!', '?', ';', ')', '،', '۔', '।', '॥', '|', '||', ',', ':'].
1103
+ * @example ["。",",",".","!","?",";",")","،","۔","।","॥","|","||",",",":"]
1104
+ */
1105
+ inputPunctuationBoundaries?: '。' | ',' | '.' | '!' | '?' | ';' | ')' | '،' | '۔' | '।' | '॥' | '|' | '||' | ',' | ':';
1106
+ /**
1107
+ * This determines whether fillers are injected into the model output before inputting it into the voice provider.
1108
+ *
1109
+ * Default `false` because you can achieve better results with prompting the model.
1110
+ * @example false
1111
+ */
1112
+ fillerInjectionEnabled?: boolean;
1113
+ /** This is the voice provider that will be used. */
1114
+ provider: 'cartesia';
1115
+ /** This is the provider-specific ID that will be used. */
1116
+ voiceId: string;
1117
+ }
1118
+ export interface TwilioVoicemailDetection {
1119
+ provider: 'twilio';
1120
+ /**
1121
+ * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence'].
1122
+ * @example ["machine_end_beep","machine_end_silence"]
1123
+ */
1124
+ voicemailDetectionTypes?: 'machine_start' | 'human' | 'fax' | 'unknown' | 'machine_end_beep' | 'machine_end_silence' | 'machine_end_other';
1125
+ enabled?: boolean;
1126
+ /**
1127
+ * @min 3
1128
+ * @max 59
1129
+ */
1130
+ machineDetectionTimeout?: number;
1131
+ /**
1132
+ * @min 1000
1133
+ * @max 6000
1134
+ */
1135
+ machineDetectionSpeechThreshold?: number;
1136
+ /**
1137
+ * @min 500
1138
+ * @max 5000
1139
+ */
1140
+ machineDetectionSpeechEndThreshold?: number;
1141
+ /**
1142
+ * @min 2000
1143
+ * @max 10000
1144
+ */
1145
+ machineDetectionSilenceTimeout?: number;
1146
+ }
1147
+ export interface AnalysisPlan {
1148
+ /**
1149
+ * This is the prompt that's used to summarize the call. The output is stored in `call.analysis.summary`.
1150
+ *
1151
+ * Default is "You are an expert note-taker. You will be given a transcript of a call. Summarize the call in 2-3 sentences, if applicable.".
1152
+ *
1153
+ * Set to '' or 'off' to disable.
1154
+ * @maxLength 2000
1155
+ */
1156
+ summaryPrompt?: string;
1157
+ /**
1158
+ * This is the prompt that's used to evaluate if the call was successful. The output is stored in `call.analysis.successEvaluation`.
1159
+ *
1160
+ * Default is "You are an expert call evaluator. You will be given a transcript of a call and the system prompt of the AI participant. Determine if the call was successful based on the objectives inferred from the system prompt.".
1161
+ *
1162
+ * Set to '' or 'off' to disable.
1163
+ *
1164
+ * You can use this standalone or in combination with `successEvaluationRubric`. If both are provided, they are concatenated into appropriate instructions.
1165
+ * @maxLength 2000
1166
+ */
1167
+ successEvaluationPrompt?: string;
1168
+ /**
1169
+ * This enforces the rubric of the evaluation. The output is stored in `call.analysis.successEvaluation`.
1170
+ *
1171
+ * Options include:
1172
+ * - 'NumericScale': A scale of 1 to 10.
1173
+ * - 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.
1174
+ * - 'Checklist': A checklist of criteria and their status.
1175
+ * - 'Matrix': A grid that evaluates multiple criteria across different performance levels.
1176
+ * - 'PercentageScale': A scale of 0% to 100%.
1177
+ * - 'LikertScale': A scale of Strongly Agree, Agree, Neutral, Disagree, Strongly Disagree.
1178
+ * - 'AutomaticRubric': Automatically break down evaluation into several criteria, each with its own score.
1179
+ * - 'PassFail': A simple 'true' if call passed, 'false' if not.
1180
+ *
1181
+ * For 'Checklist' and 'Matrix', provide the criteria in `successEvaluationPrompt`.
1182
+ *
1183
+ * Default is 'PassFail' if `successEvaluationPrompt` is not provided, and null if `successEvaluationPrompt` is provided.
1184
+ *
1185
+ * You can use this standalone or in combination with `successEvaluationPrompt`. If both are provided, they are concatenated into appropriate instructions.
1186
+ */
1187
+ successEvaluationRubric?: 'NumericScale' | 'DescriptiveScale' | 'Checklist' | 'Matrix' | 'PercentageScale' | 'LikertScale' | 'AutomaticRubric' | 'PassFail';
1188
+ /**
1189
+ * This is the prompt that's used to extract structured data from the call. The output is stored in `call.analysis.structuredData`.
1190
+ *
1191
+ * Disabled by default.
1192
+ *
1193
+ * You can use this standalone or in combination with `structuredDataSchema`. If both are provided, they are concatenated into appropriate instructions.
1194
+ * @maxLength 2000
1195
+ */
1196
+ structuredDataPrompt?: string;
1197
+ /**
1198
+ * This enforces the schema of the structured data. This output is stored in `call.analysis.structuredData`.
1199
+ *
1200
+ * Complete guide on JSON Schema can be found [here](https://ajv.js.org/json-schema.html#json-data-type).
1201
+ *
1202
+ * Disabled by default.
1203
+ *
1204
+ * You can use this standalone or in combination with `structuredDataPrompt`. If both are provided, they are concatenated into appropriate instructions.
1205
+ */
1206
+ structuredDataSchema?: JsonSchema;
712
1207
  }
713
1208
  export interface CreateAssistantDTO {
714
1209
  /** These are the options for the assistant's transcriber. */
@@ -719,12 +1214,7 @@ export interface CreateAssistantDTO {
719
1214
  * These are the options for the assistant's voice.
720
1215
  * @default {"provider":"playht","voiceId":"jennifer"}
721
1216
  */
722
- voice?: AzureVoice | ElevenLabsVoice | PlayHTVoice | RimeAIVoice | DeepgramVoice | OpenAIVoice | LMNTVoice | NeetsVoice;
723
- /**
724
- * This is the number to forward to if assistant runs into issues.
725
- * @example null
726
- */
727
- forwardingPhoneNumber?: string;
1217
+ voice?: AzureVoice | DeepgramVoice | ElevenLabsVoice | LMNTVoice | NeetsVoice | OpenAIVoice | PlayHTVoice | RimeAIVoice | CartesiaVoice;
728
1218
  /**
729
1219
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
730
1220
  *
@@ -732,26 +1222,11 @@ export interface CreateAssistantDTO {
732
1222
  * @example "assistant-speaks-first"
733
1223
  */
734
1224
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
735
- /**
736
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
737
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
738
- */
739
- voicemailDetectionTypes?: 'machine_start' | 'human' | 'fax' | 'unknown' | 'machine_end_beep' | 'machine_end_silence' | 'machine_end_other';
740
1225
  /**
741
1226
  * This sets whether the assistant's calls are recorded. Defaults to true.
742
1227
  * @example true
743
1228
  */
744
1229
  recordingEnabled?: boolean;
745
- /**
746
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
747
- * @example false
748
- */
749
- endCallFunctionEnabled?: boolean;
750
- /**
751
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
752
- * @default null
753
- */
754
- dialKeypadFunctionEnabled?: boolean;
755
1230
  /**
756
1231
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
757
1232
  * @example false
@@ -761,12 +1236,12 @@ export interface CreateAssistantDTO {
761
1236
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
762
1237
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
763
1238
  */
764
- clientMessages?: ('status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input')[];
1239
+ clientMessages?: 'status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input';
765
1240
  /**
766
1241
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
767
1242
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
768
1243
  */
769
- serverMessages?: ('status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input')[];
1244
+ serverMessages?: 'status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input';
770
1245
  /**
771
1246
  * How many seconds of silence to wait before ending the call. Defaults to 30.
772
1247
  * @min 10
@@ -808,17 +1283,18 @@ export interface CreateAssistantDTO {
808
1283
  */
809
1284
  backgroundSound?: 'off' | 'office';
810
1285
  /**
811
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
1286
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
1287
+ *
1288
+ * Default `false` while in beta.
812
1289
  * @example true
813
1290
  */
814
1291
  backchannelingEnabled?: boolean;
815
1292
  /**
816
- * This is the name of the assistant. This is just for your own reference.
1293
+ * This is the name of the assistant.
1294
+ * This is only required to transfer calls between assistants.
817
1295
  * @maxLength 100
818
1296
  */
819
1297
  name?: string;
820
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
821
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
822
1298
  /**
823
1299
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
824
1300
  *
@@ -826,8 +1302,8 @@ export interface CreateAssistantDTO {
826
1302
  * @maxLength 1000
827
1303
  */
828
1304
  firstMessage?: string;
829
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
830
- voicemailDetectionEnabled?: boolean;
1305
+ /** These are the settings to configure or disable voicemail detection. */
1306
+ voicemailDetection?: TwilioVoicemailDetection;
831
1307
  /**
832
1308
  * This is the message that the assistant will say if the call is forwarded to voicemail.
833
1309
  *
@@ -857,18 +1333,10 @@ export interface CreateAssistantDTO {
857
1333
  /**
858
1334
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
859
1335
  *
860
- * Same precendence logic as serverUrl.
1336
+ * Same precedence logic as serverUrl.
861
1337
  */
862
1338
  serverUrlSecret?: string;
863
- /**
864
- * This is the prompt that's used to summarize the call at the end.
865
- *
866
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
867
- *
868
- * Set to '' or 'off' to disable post-call summarization.
869
- * @maxLength 2000
870
- */
871
- summaryPrompt?: string;
1339
+ analysisPlan?: AnalysisPlan;
872
1340
  }
873
1341
  export interface Assistant {
874
1342
  /** These are the options for the assistant's transcriber. */
@@ -879,12 +1347,7 @@ export interface Assistant {
879
1347
  * These are the options for the assistant's voice.
880
1348
  * @default {"provider":"playht","voiceId":"jennifer"}
881
1349
  */
882
- voice?: AzureVoice | ElevenLabsVoice | PlayHTVoice | RimeAIVoice | DeepgramVoice | OpenAIVoice | LMNTVoice | NeetsVoice;
883
- /**
884
- * This is the number to forward to if assistant runs into issues.
885
- * @example null
886
- */
887
- forwardingPhoneNumber?: string;
1350
+ voice?: AzureVoice | DeepgramVoice | ElevenLabsVoice | LMNTVoice | NeetsVoice | OpenAIVoice | PlayHTVoice | RimeAIVoice | CartesiaVoice;
888
1351
  /**
889
1352
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
890
1353
  *
@@ -892,26 +1355,11 @@ export interface Assistant {
892
1355
  * @example "assistant-speaks-first"
893
1356
  */
894
1357
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
895
- /**
896
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
897
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
898
- */
899
- voicemailDetectionTypes?: 'machine_start' | 'human' | 'fax' | 'unknown' | 'machine_end_beep' | 'machine_end_silence' | 'machine_end_other';
900
1358
  /**
901
1359
  * This sets whether the assistant's calls are recorded. Defaults to true.
902
1360
  * @example true
903
1361
  */
904
1362
  recordingEnabled?: boolean;
905
- /**
906
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
907
- * @example false
908
- */
909
- endCallFunctionEnabled?: boolean;
910
- /**
911
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
912
- * @default null
913
- */
914
- dialKeypadFunctionEnabled?: boolean;
915
1363
  /**
916
1364
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
917
1365
  * @example false
@@ -921,12 +1369,12 @@ export interface Assistant {
921
1369
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
922
1370
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
923
1371
  */
924
- clientMessages?: ('status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input')[];
1372
+ clientMessages?: 'status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input';
925
1373
  /**
926
1374
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
927
1375
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
928
1376
  */
929
- serverMessages?: ('status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input')[];
1377
+ serverMessages?: 'status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input';
930
1378
  /**
931
1379
  * How many seconds of silence to wait before ending the call. Defaults to 30.
932
1380
  * @min 10
@@ -968,17 +1416,18 @@ export interface Assistant {
968
1416
  */
969
1417
  backgroundSound?: 'off' | 'office';
970
1418
  /**
971
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
1419
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
1420
+ *
1421
+ * Default `false` while in beta.
972
1422
  * @example true
973
1423
  */
974
1424
  backchannelingEnabled?: boolean;
975
1425
  /**
976
- * This is the name of the assistant. This is just for your own reference.
1426
+ * This is the name of the assistant.
1427
+ * This is only required to transfer calls between assistants.
977
1428
  * @maxLength 100
978
1429
  */
979
1430
  name?: string;
980
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
981
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
982
1431
  /**
983
1432
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
984
1433
  *
@@ -986,8 +1435,8 @@ export interface Assistant {
986
1435
  * @maxLength 1000
987
1436
  */
988
1437
  firstMessage?: string;
989
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
990
- voicemailDetectionEnabled?: boolean;
1438
+ /** These are the settings to configure or disable voicemail detection. */
1439
+ voicemailDetection?: TwilioVoicemailDetection;
991
1440
  /**
992
1441
  * This is the message that the assistant will say if the call is forwarded to voicemail.
993
1442
  *
@@ -1017,18 +1466,10 @@ export interface Assistant {
1017
1466
  /**
1018
1467
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
1019
1468
  *
1020
- * Same precendence logic as serverUrl.
1469
+ * Same precedence logic as serverUrl.
1021
1470
  */
1022
1471
  serverUrlSecret?: string;
1023
- /**
1024
- * This is the prompt that's used to summarize the call at the end.
1025
- *
1026
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
1027
- *
1028
- * Set to '' or 'off' to disable post-call summarization.
1029
- * @maxLength 2000
1030
- */
1031
- summaryPrompt?: string;
1472
+ analysisPlan?: AnalysisPlan;
1032
1473
  /** This is the unique identifier for the assistant. */
1033
1474
  id: string;
1034
1475
  /** This is the unique identifier for the org that this assistant belongs to. */
@@ -1053,12 +1494,7 @@ export interface UpdateAssistantDTO {
1053
1494
  * These are the options for the assistant's voice.
1054
1495
  * @default {"provider":"playht","voiceId":"jennifer"}
1055
1496
  */
1056
- voice?: AzureVoice | ElevenLabsVoice | PlayHTVoice | RimeAIVoice | DeepgramVoice | OpenAIVoice | LMNTVoice | NeetsVoice;
1057
- /**
1058
- * This is the number to forward to if assistant runs into issues.
1059
- * @example null
1060
- */
1061
- forwardingPhoneNumber?: string;
1497
+ voice?: AzureVoice | DeepgramVoice | ElevenLabsVoice | LMNTVoice | NeetsVoice | OpenAIVoice | PlayHTVoice | RimeAIVoice | CartesiaVoice;
1062
1498
  /**
1063
1499
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
1064
1500
  *
@@ -1066,26 +1502,11 @@ export interface UpdateAssistantDTO {
1066
1502
  * @example "assistant-speaks-first"
1067
1503
  */
1068
1504
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
1069
- /**
1070
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
1071
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
1072
- */
1073
- voicemailDetectionTypes?: 'machine_start' | 'human' | 'fax' | 'unknown' | 'machine_end_beep' | 'machine_end_silence' | 'machine_end_other';
1074
1505
  /**
1075
1506
  * This sets whether the assistant's calls are recorded. Defaults to true.
1076
1507
  * @example true
1077
1508
  */
1078
1509
  recordingEnabled?: boolean;
1079
- /**
1080
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
1081
- * @example false
1082
- */
1083
- endCallFunctionEnabled?: boolean;
1084
- /**
1085
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
1086
- * @default null
1087
- */
1088
- dialKeypadFunctionEnabled?: boolean;
1089
1510
  /**
1090
1511
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
1091
1512
  * @example false
@@ -1095,12 +1516,12 @@ export interface UpdateAssistantDTO {
1095
1516
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
1096
1517
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
1097
1518
  */
1098
- clientMessages?: ('status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input')[];
1519
+ clientMessages?: 'status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input';
1099
1520
  /**
1100
1521
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
1101
1522
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
1102
1523
  */
1103
- serverMessages?: ('status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input')[];
1524
+ serverMessages?: 'status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input';
1104
1525
  /**
1105
1526
  * How many seconds of silence to wait before ending the call. Defaults to 30.
1106
1527
  * @min 10
@@ -1142,17 +1563,18 @@ export interface UpdateAssistantDTO {
1142
1563
  */
1143
1564
  backgroundSound?: 'off' | 'office';
1144
1565
  /**
1145
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
1566
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
1567
+ *
1568
+ * Default `false` while in beta.
1146
1569
  * @example true
1147
1570
  */
1148
1571
  backchannelingEnabled?: boolean;
1149
1572
  /**
1150
- * This is the name of the assistant. This is just for your own reference.
1573
+ * This is the name of the assistant.
1574
+ * This is only required to transfer calls between assistants.
1151
1575
  * @maxLength 100
1152
1576
  */
1153
1577
  name?: string;
1154
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
1155
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
1156
1578
  /**
1157
1579
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
1158
1580
  *
@@ -1160,8 +1582,8 @@ export interface UpdateAssistantDTO {
1160
1582
  * @maxLength 1000
1161
1583
  */
1162
1584
  firstMessage?: string;
1163
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
1164
- voicemailDetectionEnabled?: boolean;
1585
+ /** These are the settings to configure or disable voicemail detection. */
1586
+ voicemailDetection?: TwilioVoicemailDetection;
1165
1587
  /**
1166
1588
  * This is the message that the assistant will say if the call is forwarded to voicemail.
1167
1589
  *
@@ -1191,18 +1613,30 @@ export interface UpdateAssistantDTO {
1191
1613
  /**
1192
1614
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
1193
1615
  *
1194
- * Same precendence logic as serverUrl.
1616
+ * Same precedence logic as serverUrl.
1195
1617
  */
1196
1618
  serverUrlSecret?: string;
1197
- /**
1198
- * This is the prompt that's used to summarize the call at the end.
1199
- *
1200
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
1201
- *
1202
- * Set to '' or 'off' to disable post-call summarization.
1203
- * @maxLength 2000
1204
- */
1205
- summaryPrompt?: string;
1619
+ analysisPlan?: AnalysisPlan;
1620
+ }
1621
+ export interface AnalysisCostBreakdown {
1622
+ /** This is the cost to summarize the call. */
1623
+ summary?: number;
1624
+ /** This is the number of prompt tokens used to summarize the call. */
1625
+ summaryPromptTokens?: number;
1626
+ /** This is the number of completion tokens used to summarize the call. */
1627
+ summaryCompletionTokens?: number;
1628
+ /** This is the cost to extract structured data from the call. */
1629
+ structuredData?: number;
1630
+ /** This is the number of prompt tokens used to extract structured data from the call. */
1631
+ structuredDataPromptTokens?: number;
1632
+ /** This is the number of completion tokens used to extract structured data from the call. */
1633
+ structuredDataCompletionTokens?: number;
1634
+ /** This is the cost to evaluate if the call was successful. */
1635
+ successEvaluation?: number;
1636
+ /** This is the number of prompt tokens used to evaluate if the call was successful. */
1637
+ successEvaluationPromptTokens?: number;
1638
+ /** This is the number of completion tokens used to evaluate if the call was successful. */
1639
+ successEvaluationCompletionTokens?: number;
1206
1640
  }
1207
1641
  export interface CostBreakdown {
1208
1642
  /** This is the cost of the transport provider, like Twilio or Vonage. */
@@ -1223,6 +1657,16 @@ export interface CostBreakdown {
1223
1657
  llmCompletionTokens?: number;
1224
1658
  /** This is the TTS characters used for the call. */
1225
1659
  ttsCharacters?: number;
1660
+ /** This is the cost of the analysis. */
1661
+ analysisCostBreakdown?: AnalysisCostBreakdown;
1662
+ }
1663
+ export interface Analysis {
1664
+ /** This is the summary of the call. Customize by setting `assistant.analysisPlan.summaryPrompt`. */
1665
+ summary?: string;
1666
+ /** This is the structured data extracted from the call. Customize by setting `assistant.analysisPlan.structuredDataPrompt` and/or `assistant.analysisPlan.structuredDataSchema`. */
1667
+ structuredData?: string;
1668
+ /** This is the evaluation of the call. Customize by setting `assistant.analysisPlan.successEvaluationPrompt` and/or `assistant.analysisPlan.successEvaluationRubric`. */
1669
+ successEvaluation?: string;
1226
1670
  }
1227
1671
  export interface PhoneCallTwilioDetails {
1228
1672
  statusCallbackEvent?: 'initiated' | 'ringing' | 'answered' | 'completed';
@@ -1231,6 +1675,26 @@ export interface PhoneCallTwilioDetails {
1231
1675
  from: string;
1232
1676
  twiml?: string;
1233
1677
  statusCallback?: string;
1678
+ /** The number of seconds that we should attempt to detect an answering machine before timing out and sending a voice request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds. */
1679
+ machineDetectionTimeout?: number;
1680
+ /**
1681
+ * The number of milliseconds that is used as the measuring stick for the length of the speech activity, where durations lower than this value will be interpreted as a human and longer than this value as a machine. Possible Values: 1000-6000. Default: 2400.
1682
+ * @min 1000
1683
+ * @max 6000
1684
+ */
1685
+ machineDetectionSpeechThreshold?: number;
1686
+ /**
1687
+ * The number of milliseconds of silence after speech activity at which point the speech activity is considered complete. Possible Values: 500-5000. Default: 1200.
1688
+ * @min 500
1689
+ * @max 5000
1690
+ */
1691
+ machineDetectionSpeechEndThreshold?: number;
1692
+ /**
1693
+ * The number of milliseconds of initial silence after which an `unknown` AnsweredBy result will be returned. Possible Values: 2000-10000. Default: 5000.
1694
+ * @min 2000
1695
+ * @max 10000
1696
+ */
1697
+ machineDetectionSilenceTimeout?: number;
1234
1698
  asyncAmd?: string;
1235
1699
  asyncAmdStatusCallback?: string;
1236
1700
  record?: boolean;
@@ -1244,12 +1708,7 @@ export interface OverrideAssistantDTO {
1244
1708
  * These are the options for the assistant's voice.
1245
1709
  * @default {"provider":"playht","voiceId":"jennifer"}
1246
1710
  */
1247
- voice?: AzureVoice | ElevenLabsVoice | PlayHTVoice | RimeAIVoice | DeepgramVoice | OpenAIVoice | LMNTVoice | NeetsVoice;
1248
- /**
1249
- * This is the number to forward to if assistant runs into issues.
1250
- * @example null
1251
- */
1252
- forwardingPhoneNumber?: string;
1711
+ voice?: AzureVoice | DeepgramVoice | ElevenLabsVoice | LMNTVoice | NeetsVoice | OpenAIVoice | PlayHTVoice | RimeAIVoice | CartesiaVoice;
1253
1712
  /**
1254
1713
  * This is the mode for the first message. Default is 'assistant-speaks-first'.
1255
1714
  *
@@ -1257,26 +1716,11 @@ export interface OverrideAssistantDTO {
1257
1716
  * @example "assistant-speaks-first"
1258
1717
  */
1259
1718
  firstMessageMode?: 'assistant-speaks-first' | 'assistant-waits-for-user';
1260
- /**
1261
- * These are the AMD messages from Twilio that are considered as voicemail. Default is ['machine_end_beep', 'machine_end_silence', 'machine_end_other'].
1262
- * @example ["machine_end_beep","machine_end_silence","machine_end_other"]
1263
- */
1264
- voicemailDetectionTypes?: 'machine_start' | 'human' | 'fax' | 'unknown' | 'machine_end_beep' | 'machine_end_silence' | 'machine_end_other';
1265
1719
  /**
1266
1720
  * This sets whether the assistant's calls are recorded. Defaults to true.
1267
1721
  * @example true
1268
1722
  */
1269
1723
  recordingEnabled?: boolean;
1270
- /**
1271
- * This sets whether the assistant will be able to hang up the call. Defaults to false.
1272
- * @example false
1273
- */
1274
- endCallFunctionEnabled?: boolean;
1275
- /**
1276
- * This sets whether the assistant can dial digits on the keypad. Defaults to false.
1277
- * @default null
1278
- */
1279
- dialKeypadFunctionEnabled?: boolean;
1280
1724
  /**
1281
1725
  * When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
1282
1726
  * @example false
@@ -1286,12 +1730,12 @@ export interface OverrideAssistantDTO {
1286
1730
  * These are the messages that will be sent to the Client SDKs. Default is ['transcript', 'hang', 'tool-calls', 'speech-update', 'metadata', 'conversation-update']
1287
1731
  * @example ["transcript","hang","tool-calls","speech-update","metadata","conversation-update"]
1288
1732
  */
1289
- clientMessages?: ('status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input')[];
1733
+ clientMessages?: 'status-update' | 'speech-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'metadata' | 'conversation-update' | 'model-output' | 'voice-input';
1290
1734
  /**
1291
1735
  * These are the messages that will be sent to your Server URL. Default is ['end-of-call-report', 'status-update', 'hang', 'tool-calls']
1292
1736
  * @example ["end-of-call-report","status-update","hang","tool-calls"]
1293
1737
  */
1294
- serverMessages?: ('status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input')[];
1738
+ serverMessages?: 'status-update' | 'transcript' | 'hang' | 'function-call' | 'tool-calls' | 'end-of-call-report' | 'conversation-update' | 'phone-call-control' | 'model-output' | 'voice-input';
1295
1739
  /**
1296
1740
  * How many seconds of silence to wait before ending the call. Defaults to 30.
1297
1741
  * @min 10
@@ -1333,19 +1777,20 @@ export interface OverrideAssistantDTO {
1333
1777
  */
1334
1778
  backgroundSound?: 'off' | 'office';
1335
1779
  /**
1336
- * backchanneling is the bot say while listening like 'mhmm', 'ahem' etc. this make the conversation sounds natural. Default True
1780
+ * This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
1781
+ *
1782
+ * Default `false` while in beta.
1337
1783
  * @example true
1338
1784
  */
1339
1785
  backchannelingEnabled?: boolean;
1340
1786
  /** These are template variables that will be replaced in the assistant messages and prompts. */
1341
1787
  variableValues?: object;
1342
1788
  /**
1343
- * This is the name of the assistant. This is just for your own reference.
1789
+ * This is the name of the assistant.
1790
+ * This is only required to transfer calls between assistants.
1344
1791
  * @maxLength 100
1345
1792
  */
1346
1793
  name?: string;
1347
- /** You can provide a set of phone numbers to forward to. You'll want to tell the assistant when to use each of these numbers in the system prompt. */
1348
- forwardingPhoneNumbers?: ForwardingPhoneNumber[];
1349
1794
  /**
1350
1795
  * This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
1351
1796
  *
@@ -1353,8 +1798,8 @@ export interface OverrideAssistantDTO {
1353
1798
  * @maxLength 1000
1354
1799
  */
1355
1800
  firstMessage?: string;
1356
- /** This sets whether the assistant should detect voicemail. Defaults to true. */
1357
- voicemailDetectionEnabled?: boolean;
1801
+ /** These are the settings to configure or disable voicemail detection. */
1802
+ voicemailDetection?: TwilioVoicemailDetection;
1358
1803
  /**
1359
1804
  * This is the message that the assistant will say if the call is forwarded to voicemail.
1360
1805
  *
@@ -1384,18 +1829,30 @@ export interface OverrideAssistantDTO {
1384
1829
  /**
1385
1830
  * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
1386
1831
  *
1387
- * Same precendence logic as serverUrl.
1832
+ * Same precedence logic as serverUrl.
1388
1833
  */
1389
1834
  serverUrlSecret?: string;
1835
+ analysisPlan?: AnalysisPlan;
1836
+ }
1837
+ export interface SquadMemberDTO {
1838
+ /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
1839
+ assistantId?: string | null;
1840
+ /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
1841
+ assistant?: CreateAssistantDTO;
1842
+ /** Overrides for a single assistant's settings and template variables. */
1843
+ assistantOverrides?: OverrideAssistantDTO;
1390
1844
  /**
1391
- * This is the prompt that's used to summarize the call at the end.
1392
- *
1393
- * Default is 'You are an expert note-taker. You will be given a transcript of a conversation. Please summarize the conversation in 4-5 sentences if applicable.'
1394
- *
1395
- * Set to '' or 'off' to disable post-call summarization.
1396
- * @maxLength 2000
1845
+ * These are the others assistants that this assistant can transfer to.
1846
+ * These destinations are in addition to destinations that already exist in the assistant's TransferCall tool.
1397
1847
  */
1398
- summaryPrompt?: string;
1848
+ assistantDestinations?: AssistantTransferDestination[];
1849
+ }
1850
+ export interface CreateSquadDTO {
1851
+ /**
1852
+ * The list of assistant members in the squad. By default, the call will start
1853
+ * with the first assistant supplied in the list.
1854
+ */
1855
+ members: SquadMemberDTO[];
1399
1856
  }
1400
1857
  export interface CreateCustomerDTO {
1401
1858
  /** This is the number of the customer. */
@@ -1462,14 +1919,7 @@ export interface Call {
1462
1919
  /** This is the status of the call. */
1463
1920
  status?: 'queued' | 'ringing' | 'in-progress' | 'forwarding' | 'ended';
1464
1921
  /** This is the explanation for how the call ended. */
1465
- endedReason?: 'assistant-error' | 'assistant-not-found' | 'db-error' | 'no-server-available' | 'pipeline-error-extra-function-failed' | 'pipeline-error-first-message-failed' | 'pipeline-error-function-filler-failed' | 'pipeline-error-function-failed' | 'pipeline-error-openai-llm-failed' | 'pipeline-error-azure-openai-llm-failed' | 'pipeline-error-together-ai-llm-failed' | 'pipeline-error-anyscale-llm-failed' | 'pipeline-error-openrouter-llm-failed' | 'pipeline-error-perplexity-ai-llm-failed' | 'pipeline-error-deepinfra-llm-failed' | 'pipeline-error-runpod-llm-failed' | 'pipeline-error-groq-llm-failed' | 'pipeline-error-anthropic-llm-failed' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-deepgram-transcriber-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-neets-voice-failed' | 'pipeline-no-available-llm-model' | 'server-shutdown' | 'twilio-failed-to-connect-call' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'vapi-error-phone-call-worker-setup-socket-error' | 'vapi-error-phone-call-worker-worker-setup-socket-timeout' | 'vapi-error-phone-call-worker-could-not-find-call' | 'vapi-error-phone-call-worker-call-never-connected' | 'vapi-error-web-call-worker-setup-failed' | 'assistant-not-invalid' | 'assistant-not-provided' | 'assistant-request-returned-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'pipeline-error-custom-llm-llm-failed' | 'silence-timed-out' | 'voicemail' | 'vonage-rejected';
1466
- /**
1467
- * This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.
1468
- * @min 10
1469
- * @max 3600
1470
- * @example 1800
1471
- */
1472
- maxDurationSeconds?: number;
1922
+ endedReason?: 'assistant-error' | 'assistant-not-found' | 'db-error' | 'no-server-available' | 'pipeline-error-extra-function-failed' | 'pipeline-error-first-message-failed' | 'pipeline-error-function-filler-failed' | 'pipeline-error-function-failed' | 'pipeline-error-openai-llm-failed' | 'pipeline-error-azure-openai-llm-failed' | 'pipeline-error-together-ai-llm-failed' | 'pipeline-error-anyscale-llm-failed' | 'pipeline-error-openrouter-llm-failed' | 'pipeline-error-perplexity-ai-llm-failed' | 'pipeline-error-deepinfra-llm-failed' | 'pipeline-error-runpod-llm-failed' | 'pipeline-error-groq-llm-failed' | 'pipeline-error-anthropic-llm-failed' | 'pipeline-error-openai-voice-failed' | 'pipeline-error-cartesia-voice-failed' | 'pipeline-error-deepgram-transcriber-failed' | 'pipeline-error-deepgram-voice-failed' | 'pipeline-error-eleven-labs-voice-failed' | 'pipeline-error-playht-voice-failed' | 'pipeline-error-lmnt-voice-failed' | 'pipeline-error-azure-voice-failed' | 'pipeline-error-rime-ai-voice-failed' | 'pipeline-error-neets-voice-failed' | 'pipeline-no-available-llm-model' | 'server-shutdown' | 'twilio-failed-to-connect-call' | 'unknown-error' | 'vonage-disconnected' | 'vonage-failed-to-connect-call' | 'phone-call-provider-bypass-enabled-but-no-call-received' | 'vapi-error-phone-call-worker-setup-socket-error' | 'vapi-error-phone-call-worker-worker-setup-socket-timeout' | 'vapi-error-phone-call-worker-could-not-find-call' | 'vapi-error-phone-call-worker-call-never-connected' | 'vapi-error-web-call-worker-setup-failed' | 'assistant-not-invalid' | 'assistant-not-provided' | 'assistant-request-returned-error' | 'assistant-request-returned-invalid-assistant' | 'assistant-request-returned-no-assistant' | 'assistant-request-returned-forwarding-phone-number' | 'assistant-ended-call' | 'assistant-said-end-call-phrase' | 'assistant-forwarded-call' | 'assistant-join-timed-out' | 'customer-busy' | 'customer-ended-call' | 'customer-did-not-answer' | 'customer-did-not-give-microphone-permission' | 'incoming-client-message-say-ended-call' | 'exceeded-max-duration' | 'manually-canceled' | 'phone-call-provider-closed-websocket' | 'pipeline-error-custom-llm-llm-failed' | 'pipeline-error-eleven-labs-voice-not-found' | 'pipeline-error-eleven-labs-quota-exceeded' | 'pipeline-error-eleven-labs-blocked-free-plan' | 'pipeline-error-eleven-labs-blocked-concurrent-requests' | 'pipeline-error-eleven-labs-unauthorized-access' | 'pipeline-error-eleven-labs-system-busy-and-requested-upgrade' | 'pipeline-error-eleven-labs-voice-not-fine-tuned' | 'pipeline-error-eleven-labs-invalid-api-key' | 'pipeline-error-playht-request-timed-out' | 'pipeline-error-playht-invalid-voice' | 'pipeline-error-playht-unexpected-error' | 'pipeline-error-playht-out-of-credits' | 'pipeline-error-playht-rate-limit-exceeded' | 'pipeline-error-playht-502-gateway-error' | 'pipeline-error-playht-504-gateway-error' | 'silence-timed-out' | 'voicemail' | 'vonage-rejected';
1473
1923
  /** This is the unique identifier for the call. */
1474
1924
  id: string;
1475
1925
  /** This is the unique identifier for the org that this call belongs to. */
@@ -1504,8 +1954,8 @@ export interface Call {
1504
1954
  recordingUrl?: string;
1505
1955
  /** This is the URL of the recording of the call in two channels. */
1506
1956
  stereoRecordingUrl?: string;
1507
- /** This is the summary of the call. */
1508
- summary?: string;
1957
+ /** This is the analysis of the call. Customize the analysis by setting `assistant.analysisPlan`. */
1958
+ analysis?: Analysis;
1509
1959
  /** These are the messages that were spoken during the call. */
1510
1960
  messages?: object[];
1511
1961
  /**
@@ -1538,10 +1988,14 @@ export interface Call {
1538
1988
  forwardedPhoneNumber?: string;
1539
1989
  /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
1540
1990
  assistantId?: string | null;
1541
- /** Overrides for the assistant's settings and template variables. */
1542
- assistantOverrides?: OverrideAssistantDTO;
1543
1991
  /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
1544
1992
  assistant?: CreateAssistantDTO;
1993
+ /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
1994
+ assistantOverrides?: OverrideAssistantDTO;
1995
+ /** This is the squad that will be used for the call. To use a transient squad, use `squad` instead. */
1996
+ squadId?: string;
1997
+ /** This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. */
1998
+ squad?: CreateSquadDTO;
1545
1999
  /**
1546
2000
  * This is the customer that will be called. To call a transient customer , use `customer` instead.
1547
2001
  *
@@ -1570,19 +2024,6 @@ export interface Call {
1570
2024
  metadata?: object;
1571
2025
  }
1572
2026
  export interface CreateOutboundCallDTO {
1573
- /**
1574
- * This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.
1575
- * @min 10
1576
- * @max 3600
1577
- * @example 1800
1578
- */
1579
- maxDurationSeconds?: number;
1580
- /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
1581
- assistantId?: string | null;
1582
- /** Overrides for the assistant's settings and template variables. */
1583
- assistantOverrides?: OverrideAssistantDTO;
1584
- /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
1585
- assistant?: CreateAssistantDTO;
1586
2027
  /**
1587
2028
  * This is the customer that will be called. To call a transient customer , use `customer` instead.
1588
2029
  *
@@ -1609,11 +2050,121 @@ export interface CreateOutboundCallDTO {
1609
2050
  phoneNumber?: ImportTwilioPhoneNumberDTO;
1610
2051
  /** This is the metadata associated with the call. */
1611
2052
  metadata?: object;
2053
+ /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2054
+ assistantId?: string | null;
2055
+ /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2056
+ assistant?: CreateAssistantDTO;
2057
+ /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
2058
+ assistantOverrides?: OverrideAssistantDTO;
2059
+ /** This is the squad that will be used for the call. To use a transient squad, use `squad` instead. */
2060
+ squadId?: string;
2061
+ /** This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. */
2062
+ squad?: CreateSquadDTO;
1612
2063
  }
1613
- export interface TwilioCredential {
1614
- provider: 'twilio';
2064
+ export interface CreateWebCallDTO {
2065
+ /** This will expose SIP URI you can use to connect to the call. Disabled by default. */
2066
+ sipEnabled?: boolean;
2067
+ /** This is the metadata associated with the call. */
2068
+ metadata?: object;
2069
+ /** This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead. */
2070
+ assistantId?: string | null;
2071
+ /** This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead. */
2072
+ assistant?: CreateAssistantDTO;
2073
+ /** These are the overrides for the `assistant` or `assistantId`'s settings and template variables. */
2074
+ assistantOverrides?: OverrideAssistantDTO;
2075
+ /** This is the squad that will be used for the call. To use a transient squad, use `squad` instead. */
2076
+ squadId?: string;
2077
+ /** This is a squad that will be used for the call. To use an existing squad, use `squadId` instead. */
2078
+ squad?: CreateSquadDTO;
2079
+ }
2080
+ export interface UpdateCallDTO {
2081
+ /** This is the metadata associated with the call. */
2082
+ metadata?: object;
2083
+ }
2084
+ export interface AnyscaleCredential {
2085
+ provider: 'anyscale';
1615
2086
  /** This is not returned in the API. */
1616
- authToken: string;
2087
+ apiKey: string;
2088
+ /** This is the unique identifier for the credential. */
2089
+ id: string;
2090
+ /** This is the unique identifier for the org that this credential belongs to. */
2091
+ orgId: string;
2092
+ /**
2093
+ * This is the ISO 8601 date-time string of when the credential was created.
2094
+ * @format date-time
2095
+ */
2096
+ createdAt: string;
2097
+ /**
2098
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2099
+ * @format date-time
2100
+ */
2101
+ updatedAt: string;
2102
+ }
2103
+ export interface AnthropicCredential {
2104
+ provider: 'anthropic';
2105
+ /** This is not returned in the API. */
2106
+ apiKey: string;
2107
+ /** This is the unique identifier for the credential. */
2108
+ id: string;
2109
+ /** This is the unique identifier for the org that this credential belongs to. */
2110
+ orgId: string;
2111
+ /**
2112
+ * This is the ISO 8601 date-time string of when the credential was created.
2113
+ * @format date-time
2114
+ */
2115
+ createdAt: string;
2116
+ /**
2117
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2118
+ * @format date-time
2119
+ */
2120
+ updatedAt: string;
2121
+ }
2122
+ export interface AzureOpenAICredential {
2123
+ provider: 'azure-openai';
2124
+ region: 'australia' | 'canada' | 'eastus2' | 'eastus' | 'france' | 'india' | 'japan' | 'northcentralus' | 'norway' | 'southcentralus' | 'sweden' | 'switzerland' | 'uk' | 'westus' | 'westus3';
2125
+ /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
2126
+ models: 'gpt-4o-2024-05-13' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4-0613' | 'gpt-35-turbo-0125' | 'gpt-35-turbo-1106';
2127
+ /** This is not returned in the API. */
2128
+ openAIKey: string;
2129
+ /** This is the unique identifier for the credential. */
2130
+ id: string;
2131
+ /** This is the unique identifier for the org that this credential belongs to. */
2132
+ orgId: string;
2133
+ /**
2134
+ * This is the ISO 8601 date-time string of when the credential was created.
2135
+ * @format date-time
2136
+ */
2137
+ createdAt: string;
2138
+ /**
2139
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2140
+ * @format date-time
2141
+ */
2142
+ updatedAt: string;
2143
+ openAIEndpoint: string;
2144
+ }
2145
+ export interface CartesiaCredential {
2146
+ provider: 'cartesia';
2147
+ /** This is not returned in the API. */
2148
+ apiKey: string;
2149
+ /** This is the unique identifier for the credential. */
2150
+ id: string;
2151
+ /** This is the unique identifier for the org that this credential belongs to. */
2152
+ orgId: string;
2153
+ /**
2154
+ * This is the ISO 8601 date-time string of when the credential was created.
2155
+ * @format date-time
2156
+ */
2157
+ createdAt: string;
2158
+ /**
2159
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2160
+ * @format date-time
2161
+ */
2162
+ updatedAt: string;
2163
+ }
2164
+ export interface CustomLLMCredential {
2165
+ provider: 'custom-llm';
2166
+ /** This is not returned in the API. */
2167
+ apiKey: string;
1617
2168
  /** This is the unique identifier for the credential. */
1618
2169
  id: string;
1619
2170
  /** This is the unique identifier for the org that this credential belongs to. */
@@ -1628,7 +2179,6 @@ export interface TwilioCredential {
1628
2179
  * @format date-time
1629
2180
  */
1630
2181
  updatedAt: string;
1631
- accountSid: string;
1632
2182
  }
1633
2183
  export interface DeepgramCredential {
1634
2184
  provider: 'deepgram';
@@ -1649,6 +2199,25 @@ export interface DeepgramCredential {
1649
2199
  */
1650
2200
  updatedAt: string;
1651
2201
  }
2202
+ export interface DeepInfraCredential {
2203
+ provider: 'deepinfra';
2204
+ /** This is not returned in the API. */
2205
+ apiKey: string;
2206
+ /** This is the unique identifier for the credential. */
2207
+ id: string;
2208
+ /** This is the unique identifier for the org that this credential belongs to. */
2209
+ orgId: string;
2210
+ /**
2211
+ * This is the ISO 8601 date-time string of when the credential was created.
2212
+ * @format date-time
2213
+ */
2214
+ createdAt: string;
2215
+ /**
2216
+ * This is the ISO 8601 date-time string of when the assistant was last updated.
2217
+ * @format date-time
2218
+ */
2219
+ updatedAt: string;
2220
+ }
1652
2221
  export interface ElevenLabsCredential {
1653
2222
  provider: '11labs';
1654
2223
  /** This is not returned in the API. */
@@ -1668,8 +2237,8 @@ export interface ElevenLabsCredential {
1668
2237
  */
1669
2238
  updatedAt: string;
1670
2239
  }
1671
- export interface PlayHTCredential {
1672
- provider: 'playht';
2240
+ export interface GoHighLevelCredential {
2241
+ provider: 'gohighlevel';
1673
2242
  /** This is not returned in the API. */
1674
2243
  apiKey: string;
1675
2244
  /** This is the unique identifier for the credential. */
@@ -1686,10 +2255,9 @@ export interface PlayHTCredential {
1686
2255
  * @format date-time
1687
2256
  */
1688
2257
  updatedAt: string;
1689
- userId: string;
1690
2258
  }
1691
- export interface RimeAICredential {
1692
- provider: 'rime-ai';
2259
+ export interface GroqCredential {
2260
+ provider: 'groq';
1693
2261
  /** This is not returned in the API. */
1694
2262
  apiKey: string;
1695
2263
  /** This is the unique identifier for the credential. */
@@ -1707,8 +2275,8 @@ export interface RimeAICredential {
1707
2275
  */
1708
2276
  updatedAt: string;
1709
2277
  }
1710
- export interface OpenAICredential {
1711
- provider: 'openai';
2278
+ export interface LmntCredential {
2279
+ provider: 'lmnt';
1712
2280
  /** This is not returned in the API. */
1713
2281
  apiKey: string;
1714
2282
  /** This is the unique identifier for the credential. */
@@ -1726,8 +2294,12 @@ export interface OpenAICredential {
1726
2294
  */
1727
2295
  updatedAt: string;
1728
2296
  }
1729
- export interface TogetherAICredential {
1730
- provider: 'together-ai';
2297
+ export interface MakeCredential {
2298
+ provider: 'make';
2299
+ /** Team ID */
2300
+ teamId: string;
2301
+ /** Region of your application. For example: eu1, eu2, us1, us2 */
2302
+ region: string;
1731
2303
  /** This is not returned in the API. */
1732
2304
  apiKey: string;
1733
2305
  /** This is the unique identifier for the credential. */
@@ -1745,8 +2317,8 @@ export interface TogetherAICredential {
1745
2317
  */
1746
2318
  updatedAt: string;
1747
2319
  }
1748
- export interface AnyscaleCredential {
1749
- provider: 'anyscale';
2320
+ export interface OpenAICredential {
2321
+ provider: 'openai';
1750
2322
  /** This is not returned in the API. */
1751
2323
  apiKey: string;
1752
2324
  /** This is the unique identifier for the credential. */
@@ -1802,8 +2374,8 @@ export interface PerplexityAICredential {
1802
2374
  */
1803
2375
  updatedAt: string;
1804
2376
  }
1805
- export interface DeepInfraCredential {
1806
- provider: 'deepinfra';
2377
+ export interface PlayHTCredential {
2378
+ provider: 'playht';
1807
2379
  /** This is not returned in the API. */
1808
2380
  apiKey: string;
1809
2381
  /** This is the unique identifier for the credential. */
@@ -1820,9 +2392,10 @@ export interface DeepInfraCredential {
1820
2392
  * @format date-time
1821
2393
  */
1822
2394
  updatedAt: string;
2395
+ userId: string;
1823
2396
  }
1824
- export interface CustomLLMCredential {
1825
- provider: 'custom-llm';
2397
+ export interface RimeAICredential {
2398
+ provider: 'rime-ai';
1826
2399
  /** This is not returned in the API. */
1827
2400
  apiKey: string;
1828
2401
  /** This is the unique identifier for the credential. */
@@ -1859,8 +2432,8 @@ export interface RunpodCredential {
1859
2432
  */
1860
2433
  updatedAt: string;
1861
2434
  }
1862
- export interface GroqCredential {
1863
- provider: 'groq';
2435
+ export interface TogetherAICredential {
2436
+ provider: 'together-ai';
1864
2437
  /** This is not returned in the API. */
1865
2438
  apiKey: string;
1866
2439
  /** This is the unique identifier for the credential. */
@@ -1878,10 +2451,10 @@ export interface GroqCredential {
1878
2451
  */
1879
2452
  updatedAt: string;
1880
2453
  }
1881
- export interface AnthropicCredential {
1882
- provider: 'anthropic';
2454
+ export interface TwilioCredential {
2455
+ provider: 'twilio';
1883
2456
  /** This is not returned in the API. */
1884
- apiKey: string;
2457
+ authToken: string;
1885
2458
  /** This is the unique identifier for the credential. */
1886
2459
  id: string;
1887
2460
  /** This is the unique identifier for the org that this credential belongs to. */
@@ -1896,6 +2469,7 @@ export interface AnthropicCredential {
1896
2469
  * @format date-time
1897
2470
  */
1898
2471
  updatedAt: string;
2472
+ accountSid: string;
1899
2473
  }
1900
2474
  export interface VonageCredential {
1901
2475
  provider: 'vonage';
@@ -1929,54 +2503,86 @@ export interface VonageCredential {
1929
2503
  vonageApplicationPrivateKey: string;
1930
2504
  apiKey: string;
1931
2505
  }
1932
- export interface CreateTwilioCredentialDTO {
1933
- provider: 'twilio';
2506
+ export interface CreateAnyscaleCredentialDTO {
2507
+ provider: 'anyscale';
1934
2508
  /** This is not returned in the API. */
1935
- authToken: string;
1936
- accountSid: string;
2509
+ apiKey: string;
2510
+ }
2511
+ export interface CreateAnthropicCredentialDTO {
2512
+ provider: 'anthropic';
2513
+ /** This is not returned in the API. */
2514
+ apiKey: string;
2515
+ }
2516
+ export interface CreateAzureOpenAICredentialDTO {
2517
+ provider: 'azure-openai';
2518
+ region: 'australia' | 'canada' | 'eastus2' | 'eastus' | 'france' | 'india' | 'japan' | 'northcentralus' | 'norway' | 'southcentralus' | 'sweden' | 'switzerland' | 'uk' | 'westus' | 'westus3';
2519
+ /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
2520
+ models: 'gpt-4o-2024-05-13' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4-0613' | 'gpt-35-turbo-0125' | 'gpt-35-turbo-1106';
2521
+ /** This is not returned in the API. */
2522
+ openAIKey: string;
2523
+ openAIEndpoint: string;
2524
+ }
2525
+ export interface CreateCartesiaCredentialDTO {
2526
+ provider: 'cartesia';
2527
+ /** This is not returned in the API. */
2528
+ apiKey: string;
2529
+ }
2530
+ export interface CreateCustomLLMCredentialDTO {
2531
+ provider: 'custom-llm';
2532
+ /** This is not returned in the API. */
2533
+ apiKey: string;
1937
2534
  }
1938
2535
  export interface CreateDeepgramCredentialDTO {
1939
2536
  provider: 'deepgram';
1940
2537
  /** This is not returned in the API. */
1941
2538
  apiKey: string;
1942
2539
  }
1943
- export interface CreateOpenAICredentialDTO {
1944
- provider: 'openai';
2540
+ export interface CreateDeepInfraCredentialDTO {
2541
+ provider: 'deepinfra';
1945
2542
  /** This is not returned in the API. */
1946
2543
  apiKey: string;
1947
2544
  }
1948
- export interface CreateTogetherAICredentialDTO {
1949
- provider: 'together-ai';
2545
+ export interface CreateElevenLabsCredentialDTO {
2546
+ provider: '11labs';
1950
2547
  /** This is not returned in the API. */
1951
2548
  apiKey: string;
1952
2549
  }
1953
- export interface CreateAnyscaleCredentialDTO {
1954
- provider: 'anyscale';
2550
+ export interface CreateGoHighLevelCredentialDTO {
2551
+ provider: 'gohighlevel';
1955
2552
  /** This is not returned in the API. */
1956
2553
  apiKey: string;
1957
2554
  }
1958
- export interface CreateOpenRouterCredentialDTO {
1959
- provider: 'openrouter';
2555
+ export interface CreateGroqCredentialDTO {
2556
+ provider: 'groq';
1960
2557
  /** This is not returned in the API. */
1961
2558
  apiKey: string;
1962
2559
  }
1963
- export interface CreatePerplexityAICredentialDTO {
1964
- provider: 'perplexity-ai';
2560
+ export interface CreateLmntCredentialDTO {
2561
+ provider: 'lmnt';
1965
2562
  /** This is not returned in the API. */
1966
2563
  apiKey: string;
1967
2564
  }
1968
- export interface CreateDeepInfraCredentialDTO {
1969
- provider: 'deepinfra';
2565
+ export interface CreateMakeCredentialDTO {
2566
+ provider: 'make';
2567
+ /** Team ID */
2568
+ teamId: string;
2569
+ /** Region of your application. For example: eu1, eu2, us1, us2 */
2570
+ region: string;
1970
2571
  /** This is not returned in the API. */
1971
2572
  apiKey: string;
1972
2573
  }
1973
- export interface CreateCustomLLMCredentialDTO {
1974
- provider: 'custom-llm';
2574
+ export interface CreateOpenAICredentialDTO {
2575
+ provider: 'openai';
1975
2576
  /** This is not returned in the API. */
1976
2577
  apiKey: string;
1977
2578
  }
1978
- export interface CreateElevenLabsCredentialDTO {
1979
- provider: '11labs';
2579
+ export interface CreateOpenRouterCredentialDTO {
2580
+ provider: 'openrouter';
2581
+ /** This is not returned in the API. */
2582
+ apiKey: string;
2583
+ }
2584
+ export interface CreatePerplexityAICredentialDTO {
2585
+ provider: 'perplexity-ai';
1980
2586
  /** This is not returned in the API. */
1981
2587
  apiKey: string;
1982
2588
  }
@@ -1996,15 +2602,16 @@ export interface CreateRunpodCredentialDTO {
1996
2602
  /** This is not returned in the API. */
1997
2603
  apiKey: string;
1998
2604
  }
1999
- export interface CreateGroqCredentialDTO {
2000
- provider: 'groq';
2605
+ export interface CreateTogetherAICredentialDTO {
2606
+ provider: 'together-ai';
2001
2607
  /** This is not returned in the API. */
2002
2608
  apiKey: string;
2003
2609
  }
2004
- export interface CreateAnthropicCredentialDTO {
2005
- provider: 'anthropic';
2610
+ export interface CreateTwilioCredentialDTO {
2611
+ provider: 'twilio';
2006
2612
  /** This is not returned in the API. */
2007
- apiKey: string;
2613
+ authToken: string;
2614
+ accountSid: string;
2008
2615
  }
2009
2616
  export interface CreateVonageCredentialDTO {
2010
2617
  provider: 'vonage';
@@ -2012,54 +2619,86 @@ export interface CreateVonageCredentialDTO {
2012
2619
  apiSecret: string;
2013
2620
  apiKey: string;
2014
2621
  }
2015
- export interface UpdateTwilioCredentialDTO {
2016
- provider: 'twilio';
2622
+ export interface UpdateAnyscaleCredentialDTO {
2623
+ provider: 'anyscale';
2017
2624
  /** This is not returned in the API. */
2018
- authToken: string;
2019
- accountSid: string;
2625
+ apiKey: string;
2020
2626
  }
2021
- export interface UpdateDeepgramCredentialDTO {
2022
- provider: 'deepgram';
2627
+ export interface UpdateAnthropicCredentialDTO {
2628
+ provider: 'anthropic';
2023
2629
  /** This is not returned in the API. */
2024
2630
  apiKey: string;
2025
2631
  }
2026
- export interface UpdateOpenAICredentialDTO {
2027
- provider: 'openai';
2632
+ export interface UpdateAzureOpenAICredentialDTO {
2633
+ provider: 'azure-openai';
2634
+ region: 'australia' | 'canada' | 'eastus2' | 'eastus' | 'france' | 'india' | 'japan' | 'northcentralus' | 'norway' | 'southcentralus' | 'sweden' | 'switzerland' | 'uk' | 'westus' | 'westus3';
2635
+ /** @example ["gpt-4-0125-preview","gpt-4-0613"] */
2636
+ models: 'gpt-4o-2024-05-13' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4-0613' | 'gpt-35-turbo-0125' | 'gpt-35-turbo-1106';
2028
2637
  /** This is not returned in the API. */
2029
- apiKey: string;
2638
+ openAIKey: string;
2639
+ openAIEndpoint: string;
2030
2640
  }
2031
- export interface UpdateTogetherAICredentialDTO {
2032
- provider: 'together-ai';
2641
+ export interface UpdateCartesiaCredentialDTO {
2642
+ provider: 'cartesia';
2033
2643
  /** This is not returned in the API. */
2034
2644
  apiKey: string;
2035
2645
  }
2036
- export interface UpdateAnyscaleCredentialDTO {
2037
- provider: 'anyscale';
2646
+ export interface UpdateCustomLLMCredentialDTO {
2647
+ provider: 'custom-llm';
2038
2648
  /** This is not returned in the API. */
2039
2649
  apiKey: string;
2040
2650
  }
2041
- export interface UpdateOpenRouterCredentialDTO {
2042
- provider: 'openrouter';
2651
+ export interface UpdateDeepInfraCredentialDTO {
2652
+ provider: 'deepinfra';
2043
2653
  /** This is not returned in the API. */
2044
2654
  apiKey: string;
2045
2655
  }
2046
- export interface UpdatePerplexityAICredentialDTO {
2047
- provider: 'perplexity-ai';
2656
+ export interface UpdateDeepgramCredentialDTO {
2657
+ provider: 'deepgram';
2048
2658
  /** This is not returned in the API. */
2049
2659
  apiKey: string;
2050
2660
  }
2051
- export interface UpdateDeepInfraCredentialDTO {
2052
- provider: 'deepinfra';
2661
+ export interface UpdateElevenLabsCredentialDTO {
2662
+ provider: '11labs';
2053
2663
  /** This is not returned in the API. */
2054
2664
  apiKey: string;
2055
2665
  }
2056
- export interface UpdateCustomLLMCredentialDTO {
2057
- provider: 'custom-llm';
2666
+ export interface UpdateGoHighLevelCredentialDTO {
2667
+ provider: 'gohighlevel';
2058
2668
  /** This is not returned in the API. */
2059
2669
  apiKey: string;
2060
2670
  }
2061
- export interface UpdateElevenLabsCredentialDTO {
2062
- provider: '11labs';
2671
+ export interface UpdateGroqCredentialDTO {
2672
+ provider: 'groq';
2673
+ /** This is not returned in the API. */
2674
+ apiKey: string;
2675
+ }
2676
+ export interface UpdateLmntCredentialDTO {
2677
+ provider: 'lmnt';
2678
+ /** This is not returned in the API. */
2679
+ apiKey: string;
2680
+ }
2681
+ export interface UpdateMakeCredentialDTO {
2682
+ provider: 'make';
2683
+ /** Team ID */
2684
+ teamId: string;
2685
+ /** Region of your application. For example: eu1, eu2, us1, us2 */
2686
+ region: string;
2687
+ /** This is not returned in the API. */
2688
+ apiKey: string;
2689
+ }
2690
+ export interface UpdateOpenAICredentialDTO {
2691
+ provider: 'openai';
2692
+ /** This is not returned in the API. */
2693
+ apiKey: string;
2694
+ }
2695
+ export interface UpdateOpenRouterCredentialDTO {
2696
+ provider: 'openrouter';
2697
+ /** This is not returned in the API. */
2698
+ apiKey: string;
2699
+ }
2700
+ export interface UpdatePerplexityAICredentialDTO {
2701
+ provider: 'perplexity-ai';
2063
2702
  /** This is not returned in the API. */
2064
2703
  apiKey: string;
2065
2704
  }
@@ -2079,15 +2718,16 @@ export interface UpdateRunpodCredentialDTO {
2079
2718
  /** This is not returned in the API. */
2080
2719
  apiKey: string;
2081
2720
  }
2082
- export interface UpdateGroqCredentialDTO {
2083
- provider: 'groq';
2721
+ export interface UpdateTogetherAICredentialDTO {
2722
+ provider: 'together-ai';
2084
2723
  /** This is not returned in the API. */
2085
2724
  apiKey: string;
2086
2725
  }
2087
- export interface UpdateAnthropicCredentialDTO {
2088
- provider: 'anthropic';
2726
+ export interface UpdateTwilioCredentialDTO {
2727
+ provider: 'twilio';
2089
2728
  /** This is not returned in the API. */
2090
- apiKey: string;
2729
+ authToken: string;
2730
+ accountSid: string;
2091
2731
  }
2092
2732
  export interface UpdateVonageCredentialDTO {
2093
2733
  provider: 'vonage';
@@ -2106,244 +2746,491 @@ export interface BuyPhoneNumberDTO {
2106
2746
  * This is the name of the phone number. This is just for your own reference.
2107
2747
  * @maxLength 40
2108
2748
  */
2109
- name?: string;
2749
+ name?: string;
2750
+ /**
2751
+ * This is the assistant that will be used for incoming calls to this phone number.
2752
+ *
2753
+ * If this is not set, then the phone number will not handle incoming calls.
2754
+ */
2755
+ assistantId?: string | null;
2756
+ /**
2757
+ * This is the server URL that will be used to handle this phone number.
2758
+ *
2759
+ * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
2760
+ *
2761
+ * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
2762
+ */
2763
+ serverUrl?: string;
2764
+ /**
2765
+ * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
2766
+ *
2767
+ * Same precendence logic as serverUrl.
2768
+ */
2769
+ serverUrlSecret?: string;
2770
+ }
2771
+ export interface PhoneNumber {
2772
+ /** This is the unique identifier for the phone number. */
2773
+ id: string;
2774
+ /** This is the unique identifier for the org that this phone number belongs to. */
2775
+ orgId: string;
2776
+ /**
2777
+ * This is the ISO 8601 date-time string of when the phone number was created.
2778
+ * @format date-time
2779
+ */
2780
+ createdAt: string;
2781
+ /**
2782
+ * This is the ISO 8601 date-time string of when the phone number was last updated.
2783
+ * @format date-time
2784
+ */
2785
+ updatedAt: string;
2786
+ /** This is the subscription for the phone number. */
2787
+ stripeSubscriptionId?: string;
2788
+ /** This is the subscription's status. */
2789
+ stripeSubscriptionStatus?: string;
2790
+ /**
2791
+ * This is the subscription's current period start.
2792
+ * @format date-time
2793
+ */
2794
+ stripeSubscriptionCurrentPeriodStart?: string;
2795
+ /** These are the digits of the phone number. */
2796
+ number: string;
2797
+ /**
2798
+ * This is the Twilio Account SID for the phone number.
2799
+ *
2800
+ * This is for numbers not bought on Vapi.
2801
+ */
2802
+ twilioAccountSid?: string;
2803
+ /**
2804
+ * This is the Twilio Auth Token for the phone number.
2805
+ *
2806
+ * This is for numbers not bought on Vapi.
2807
+ */
2808
+ twilioAuthToken?: string;
2809
+ /**
2810
+ * This is the credential that will be used to handle this phone number.
2811
+ *
2812
+ * This is for numbers not bought on Vapi.
2813
+ */
2814
+ credentialId?: string;
2815
+ /**
2816
+ * This is the name of the phone number. This is just for your own reference.
2817
+ * @maxLength 40
2818
+ */
2819
+ name?: string;
2820
+ /**
2821
+ * This is the assistant that will be used for incoming calls to this phone number.
2822
+ *
2823
+ * If this is not set, then the phone number will not handle incoming calls.
2824
+ */
2825
+ assistantId?: string | null;
2826
+ /**
2827
+ * This is the server URL that will be used to handle this phone number.
2828
+ *
2829
+ * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
2830
+ *
2831
+ * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
2832
+ */
2833
+ serverUrl?: string;
2834
+ /**
2835
+ * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
2836
+ *
2837
+ * Same precendence logic as serverUrl.
2838
+ */
2839
+ serverUrlSecret?: string;
2840
+ }
2841
+ export interface ImportVonagePhoneNumberDTO {
2842
+ /** These are the digits of the phone number you own on your Vonage. */
2843
+ vonagePhoneNumber: string;
2844
+ /**
2845
+ * This is the credential that will be used to handle this phone number.
2846
+ *
2847
+ * You can add the Vonage credentials in the Provider Keys page on the dashboard to get the credentialId.
2848
+ */
2849
+ credentialId: string;
2850
+ /**
2851
+ * This is the name of the phone number. This is just for your own reference.
2852
+ * @maxLength 40
2853
+ */
2854
+ name?: string;
2855
+ /**
2856
+ * This is the assistant that will be used for incoming calls to this phone number.
2857
+ *
2858
+ * If this is not set, then the phone number will not handle incoming calls.
2859
+ */
2860
+ assistantId?: string | null;
2861
+ /**
2862
+ * This is the server URL that will be used to handle this phone number.
2863
+ *
2864
+ * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
2865
+ *
2866
+ * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
2867
+ */
2868
+ serverUrl?: string;
2869
+ /**
2870
+ * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
2871
+ *
2872
+ * Same precendence logic as serverUrl.
2873
+ */
2874
+ serverUrlSecret?: string;
2875
+ }
2876
+ export interface UpdatePhoneNumberDTO {
2877
+ /**
2878
+ * This is the name of the phone number. This is just for your own reference.
2879
+ * @maxLength 40
2880
+ */
2881
+ name?: string;
2882
+ /**
2883
+ * This is the assistant that will be used for incoming calls to this phone number.
2884
+ *
2885
+ * If this is not set, then the phone number will not handle incoming calls.
2886
+ */
2887
+ assistantId?: string | null;
2888
+ /**
2889
+ * This is the server URL that will be used to handle this phone number.
2890
+ *
2891
+ * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
2892
+ *
2893
+ * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
2894
+ */
2895
+ serverUrl?: string;
2896
+ /**
2897
+ * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
2898
+ *
2899
+ * Same precendence logic as serverUrl.
2900
+ */
2901
+ serverUrlSecret?: string;
2902
+ }
2903
+ export interface Metrics {
2904
+ orgId: string;
2905
+ rangeStart: string;
2906
+ rangeEnd: string;
2907
+ bill: number;
2908
+ billWithinBillingLimit: boolean;
2909
+ billDailyBreakdown: object;
2910
+ callActive: string;
2911
+ callActiveWithinConcurrencyLimit: boolean;
2912
+ callMinutes: string;
2913
+ callMinutesDailyBreakdown: object;
2914
+ callMinutesAverage: string;
2915
+ callMinutesAverageDailyBreakdown: object;
2916
+ callCount: string;
2917
+ callCountDailyBreakdown: object;
2918
+ }
2919
+ export interface CallLogPrivileged {
2920
+ /** This is the unique identifier for the call. */
2921
+ callId: string;
2922
+ /** This is the unique identifier for the org that this call log belongs to. */
2923
+ orgId: string;
2924
+ /** This is the log message associated with the call. */
2925
+ log: string;
2926
+ /** This is the level of the log message. */
2927
+ level: 'INFO' | 'LOG' | 'WARN' | 'ERROR' | 'CHECKPOINT';
2928
+ /**
2929
+ * This is the ISO 8601 date-time string of when the log was created.
2930
+ * @format date-time
2931
+ */
2932
+ time: string;
2933
+ }
2934
+ export interface PaginationMeta {
2935
+ itemsPerPage: number;
2936
+ totalItems: number;
2937
+ currentPage: number;
2938
+ }
2939
+ export interface CallLogsPaginatedResponse {
2940
+ results: CallLogPrivileged[];
2941
+ metadata: PaginationMeta;
2942
+ }
2943
+ export interface MakeTool {
2944
+ /**
2945
+ * This determines if the tool is async.
2946
+ *
2947
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
2948
+ *
2949
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
2950
+ *
2951
+ * Defaults to synchronous (`false`).
2952
+ * @example false
2953
+ */
2954
+ async?: boolean;
2955
+ /**
2956
+ * These are the messages that will be spoken to the user as the tool is running.
2957
+ *
2958
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
2959
+ */
2960
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
2961
+ /** The type of tool. "make" for Make tool. */
2962
+ type: 'make';
2963
+ /** The unique identifier for the tool library. */
2964
+ id: string;
2965
+ /** The unique identifier for the organization that this tool library belongs to. */
2966
+ orgId: string;
2967
+ /**
2968
+ * The ISO 8601 date-time string of when the tool library was created.
2969
+ * @format date-time
2970
+ */
2971
+ createdAt: string;
2972
+ /**
2973
+ * The ISO 8601 date-time string of when the tool library was last updated.
2974
+ * @format date-time
2975
+ */
2976
+ updatedAt: string;
2977
+ /**
2978
+ * This is the function definition of the tool.
2979
+ *
2980
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
2981
+ */
2982
+ function?: OpenAIFunction;
2983
+ /**
2984
+ * This is the server that will be hit when this tool is requested by the model.
2985
+ *
2986
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
2987
+ *
2988
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
2989
+ */
2990
+ server?: Server;
2991
+ metadata: MakeToolMetadata;
2992
+ }
2993
+ export interface GhlTool {
2994
+ /**
2995
+ * This determines if the tool is async.
2996
+ *
2997
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
2998
+ *
2999
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
3000
+ *
3001
+ * Defaults to synchronous (`false`).
3002
+ * @example false
3003
+ */
3004
+ async?: boolean;
3005
+ /**
3006
+ * These are the messages that will be spoken to the user as the tool is running.
3007
+ *
3008
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
3009
+ */
3010
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
3011
+ /** The type of tool. "ghl" for GHL tool. */
3012
+ type: 'ghl';
3013
+ /** The unique identifier for the tool library. */
3014
+ id: string;
3015
+ /** The unique identifier for the organization that this tool library belongs to. */
3016
+ orgId: string;
3017
+ /**
3018
+ * The ISO 8601 date-time string of when the tool library was created.
3019
+ * @format date-time
3020
+ */
3021
+ createdAt: string;
3022
+ /**
3023
+ * The ISO 8601 date-time string of when the tool library was last updated.
3024
+ * @format date-time
3025
+ */
3026
+ updatedAt: string;
3027
+ /**
3028
+ * This is the function definition of the tool.
3029
+ *
3030
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
3031
+ */
3032
+ function?: OpenAIFunction;
2110
3033
  /**
2111
- * This is the assistant that will be used for incoming calls to this phone number.
3034
+ * This is the server that will be hit when this tool is requested by the model.
2112
3035
  *
2113
- * If this is not set, then the phone number will not handle incoming calls.
3036
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
3037
+ *
3038
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
2114
3039
  */
2115
- assistantId?: string | null;
3040
+ server?: Server;
3041
+ metadata: GhlToolMetadata;
3042
+ }
3043
+ export interface FunctionTool {
2116
3044
  /**
2117
- * This is the server URL that will be used to handle this phone number.
3045
+ * This determines if the tool is async.
2118
3046
  *
2119
- * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
3047
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
2120
3048
  *
2121
- * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
3049
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
3050
+ *
3051
+ * Defaults to synchronous (`false`).
3052
+ * @example false
2122
3053
  */
2123
- serverUrl?: string;
3054
+ async?: boolean;
2124
3055
  /**
2125
- * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
3056
+ * These are the messages that will be spoken to the user as the tool is running.
2126
3057
  *
2127
- * Same precendence logic as serverUrl.
3058
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
2128
3059
  */
2129
- serverUrlSecret?: string;
2130
- }
2131
- export interface PhoneNumber {
2132
- /** This is the unique identifier for the phone number. */
3060
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
3061
+ /** The type of tool. "function" for Function tool. */
3062
+ type: 'function';
3063
+ /** The unique identifier for the tool library. */
2133
3064
  id: string;
2134
- /** This is the unique identifier for the org that this phone number belongs to. */
3065
+ /** The unique identifier for the organization that this tool library belongs to. */
2135
3066
  orgId: string;
2136
3067
  /**
2137
- * This is the ISO 8601 date-time string of when the phone number was created.
3068
+ * The ISO 8601 date-time string of when the tool library was created.
2138
3069
  * @format date-time
2139
3070
  */
2140
3071
  createdAt: string;
2141
3072
  /**
2142
- * This is the ISO 8601 date-time string of when the phone number was last updated.
3073
+ * The ISO 8601 date-time string of when the tool library was last updated.
2143
3074
  * @format date-time
2144
3075
  */
2145
3076
  updatedAt: string;
2146
- /** This is the subscription for the phone number. */
2147
- stripeSubscriptionId?: string;
2148
- /** This is the subscription's status. */
2149
- stripeSubscriptionStatus?: string;
2150
3077
  /**
2151
- * This is the subscription's current period start.
2152
- * @format date-time
2153
- */
2154
- stripeSubscriptionCurrentPeriodStart?: string;
2155
- /** These are the digits of the phone number. */
2156
- number: string;
2157
- /**
2158
- * This is the Twilio Account SID for the phone number.
3078
+ * This is the function definition of the tool.
2159
3079
  *
2160
- * This is for numbers not bought on Vapi.
3080
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
2161
3081
  */
2162
- twilioAccountSid?: string;
3082
+ function?: OpenAIFunction;
2163
3083
  /**
2164
- * This is the Twilio Auth Token for the phone number.
3084
+ * This is the server that will be hit when this tool is requested by the model.
2165
3085
  *
2166
- * This is for numbers not bought on Vapi.
2167
- */
2168
- twilioAuthToken?: string;
2169
- /**
2170
- * This is the credential that will be used to handle this phone number.
3086
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
2171
3087
  *
2172
- * This is for numbers not bought on Vapi.
3088
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
2173
3089
  */
2174
- credentialId?: string;
3090
+ server?: Server;
3091
+ }
3092
+ export interface UpdateMakeToolDTO {
2175
3093
  /**
2176
- * This is the name of the phone number. This is just for your own reference.
2177
- * @maxLength 40
3094
+ * This determines if the tool is async.
3095
+ *
3096
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
3097
+ *
3098
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
3099
+ *
3100
+ * Defaults to synchronous (`false`).
3101
+ * @example false
2178
3102
  */
2179
- name?: string;
3103
+ async?: boolean;
2180
3104
  /**
2181
- * This is the assistant that will be used for incoming calls to this phone number.
3105
+ * These are the messages that will be spoken to the user as the tool is running.
2182
3106
  *
2183
- * If this is not set, then the phone number will not handle incoming calls.
3107
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
2184
3108
  */
2185
- assistantId?: string | null;
3109
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
3110
+ /** The type of tool. "make" for Make tool. */
3111
+ type: 'make';
3112
+ metadata: MakeToolMetadata;
2186
3113
  /**
2187
- * This is the server URL that will be used to handle this phone number.
2188
- *
2189
- * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
3114
+ * This is the function definition of the tool.
2190
3115
  *
2191
- * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
3116
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
2192
3117
  */
2193
- serverUrl?: string;
3118
+ function?: OpenAIFunction;
2194
3119
  /**
2195
- * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
3120
+ * This is the server that will be hit when this tool is requested by the model.
2196
3121
  *
2197
- * Same precendence logic as serverUrl.
3122
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
3123
+ *
3124
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
2198
3125
  */
2199
- serverUrlSecret?: string;
3126
+ server?: Server;
2200
3127
  }
2201
- export interface ImportVonagePhoneNumberDTO {
2202
- /** These are the digits of the phone number you own on your Vonage. */
2203
- vonagePhoneNumber: string;
3128
+ export interface UpdateGhlToolDTO {
2204
3129
  /**
2205
- * This is the credential that will be used to handle this phone number.
3130
+ * This determines if the tool is async.
2206
3131
  *
2207
- * You can add the Vonage credentials in the Provider Keys page on the dashboard to get the credentialId.
2208
- */
2209
- credentialId: string;
2210
- /**
2211
- * This is the name of the phone number. This is just for your own reference.
2212
- * @maxLength 40
3132
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
3133
+ *
3134
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
3135
+ *
3136
+ * Defaults to synchronous (`false`).
3137
+ * @example false
2213
3138
  */
2214
- name?: string;
3139
+ async?: boolean;
2215
3140
  /**
2216
- * This is the assistant that will be used for incoming calls to this phone number.
3141
+ * These are the messages that will be spoken to the user as the tool is running.
2217
3142
  *
2218
- * If this is not set, then the phone number will not handle incoming calls.
3143
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
2219
3144
  */
2220
- assistantId?: string | null;
3145
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
3146
+ /** The type of tool. "ghl" for GHL tool. */
3147
+ type: 'ghl';
3148
+ metadata: GhlToolMetadata;
2221
3149
  /**
2222
- * This is the server URL that will be used to handle this phone number.
3150
+ * This is the function definition of the tool.
2223
3151
  *
2224
- * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
2225
- *
2226
- * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
3152
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
2227
3153
  */
2228
- serverUrl?: string;
3154
+ function?: OpenAIFunction;
2229
3155
  /**
2230
- * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
3156
+ * This is the server that will be hit when this tool is requested by the model.
2231
3157
  *
2232
- * Same precendence logic as serverUrl.
3158
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
3159
+ *
3160
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
2233
3161
  */
2234
- serverUrlSecret?: string;
3162
+ server?: Server;
2235
3163
  }
2236
- export interface UpdatePhoneNumberDTO {
3164
+ export interface UpdateFunctionToolDTO {
2237
3165
  /**
2238
- * This is the name of the phone number. This is just for your own reference.
2239
- * @maxLength 40
3166
+ * This determines if the tool is async.
3167
+ *
3168
+ * If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
3169
+ *
3170
+ * If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
3171
+ *
3172
+ * Defaults to synchronous (`false`).
3173
+ * @example false
2240
3174
  */
2241
- name?: string;
3175
+ async?: boolean;
2242
3176
  /**
2243
- * This is the assistant that will be used for incoming calls to this phone number.
3177
+ * These are the messages that will be spoken to the user as the tool is running.
2244
3178
  *
2245
- * If this is not set, then the phone number will not handle incoming calls.
3179
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
2246
3180
  */
2247
- assistantId?: string | null;
3181
+ messages?: (ToolMessageStart | ToolMessageComplete | ToolMessageFailed | ToolMessageDelayed)[];
3182
+ /** The type of tool. "function" for Function tool. */
3183
+ type: 'function';
2248
3184
  /**
2249
- * This is the server URL that will be used to handle this phone number.
2250
- *
2251
- * All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
3185
+ * This is the function definition of the tool.
2252
3186
  *
2253
- * This overrides the serverUrl set on the org. Order of precedence: function.serverUrl > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
3187
+ * For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, this is a custom function definition.
2254
3188
  */
2255
- serverUrl?: string;
3189
+ function?: OpenAIFunction;
2256
3190
  /**
2257
- * This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
3191
+ * This is the server that will be hit when this tool is requested by the model.
2258
3192
  *
2259
- * Same precendence logic as serverUrl.
3193
+ * All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
3194
+ *
3195
+ * This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
2260
3196
  */
2261
- serverUrlSecret?: string;
3197
+ server?: Server;
2262
3198
  }
2263
- export interface Metrics {
2264
- orgId: string;
2265
- rangeStart: string;
2266
- rangeEnd: string;
2267
- bill: number;
2268
- billWithinBillingLimit: boolean;
2269
- billDailyBreakdown: object;
2270
- callActive: string;
2271
- callActiveWithinConcurrencyLimit: boolean;
2272
- callMinutes: string;
2273
- callMinutesDailyBreakdown: object;
2274
- callMinutesAverage: string;
2275
- callMinutesAverageDailyBreakdown: object;
2276
- callCount: string;
2277
- callCountDailyBreakdown: object;
3199
+ export interface CreateFileDTO {
3200
+ /** @format binary */
3201
+ file: File;
2278
3202
  }
2279
- export interface VoiceLibrary {
2280
- /** This is the voice provider that will be used. */
2281
- provider?: '11labs' | 'playht' | 'rime-ai' | 'deepgram' | 'openai' | 'azure' | 'lmnt' | 'neets';
2282
- /** The ID of the voice provided by the provider. */
2283
- providerId?: string;
2284
- /** The unique slug of the voice. */
2285
- slug?: string;
2286
- /** The name of the voice. */
3203
+ export interface File {
3204
+ /** This is the name of the file. This is just for your own reference. */
2287
3205
  name?: string;
2288
- /** The language of the voice. */
2289
- language?: string;
2290
- /** The language code of the voice. */
2291
- languageCode?: string;
2292
- /** The model of the voice. */
2293
- model?: string;
2294
- /** The supported models of the voice. */
2295
- supportedModels?: string;
2296
- /** The gender of the voice. */
2297
- gender?: 'male' | 'female';
2298
- /** The accent of the voice. */
2299
- accent?: string;
2300
- /** The preview URL of the voice. */
2301
- previewUrl?: string;
2302
- /** The credential ID of the voice. */
2303
- credentialId?: string;
2304
- /** The deletion status of the voice. */
2305
- isDeleted: boolean;
2306
- /** The unique identifier for the voice library. */
3206
+ originalName?: string;
3207
+ /** @default "file" */
3208
+ object?: 'file';
3209
+ bytes?: number;
3210
+ purpose?: string;
3211
+ mimetype?: string;
3212
+ url?: string;
3213
+ metadata?: object;
3214
+ status?: 'indexed' | 'not_indexed';
3215
+ key?: string;
3216
+ path?: string;
3217
+ /** @default "files" */
3218
+ bucket?: string;
3219
+ /** This is the unique identifier for the file. */
2307
3220
  id: string;
2308
- /** The unique identifier for the organization that this voice library belongs to. */
3221
+ /** This is the unique identifier for the org that this file belongs to. */
2309
3222
  orgId: string;
2310
- /** The Public voice is shared accross all the organizations. */
2311
- isPublic: boolean;
2312
3223
  /**
2313
- * The ISO 8601 date-time string of when the voice library was created.
3224
+ * This is the ISO 8601 date-time string of when the file was created.
2314
3225
  * @format date-time
2315
3226
  */
2316
3227
  createdAt: string;
2317
3228
  /**
2318
- * The ISO 8601 date-time string of when the voice library was last updated.
3229
+ * This is the ISO 8601 date-time string of when the file was last updated.
2319
3230
  * @format date-time
2320
3231
  */
2321
3232
  updatedAt: string;
2322
3233
  }
2323
- export interface CallLogPrivileged {
2324
- /** This is the unique identifier for the call. */
2325
- callId: string;
2326
- /** This is the unique identifier for the org that this call log belongs to. */
2327
- orgId: string;
2328
- /** This is the log message associated with the call. */
2329
- log: string;
2330
- /** This is the level of the log message. */
2331
- level: 'INFO' | 'LOG' | 'WARN' | 'ERROR' | 'CHECKPOINT';
2332
- /**
2333
- * This is the ISO 8601 date-time string of when the log was created.
2334
- * @format date-time
2335
- */
2336
- time: string;
2337
- }
2338
- export interface PaginationMeta {
2339
- itemsPerPage: number;
2340
- totalItems: number;
2341
- currentPage: number;
2342
- }
2343
- export interface CallLogsPaginatedResponse {
2344
- results: CallLogPrivileged[];
2345
- metadata: PaginationMeta;
2346
- }
2347
3234
  export type QueryParamsType = Record<string | number, any>;
2348
3235
  export type ResponseFormat = keyof Omit<Body, 'body' | 'bodyUsed'>;
2349
3236
  export interface FullRequestParams extends Omit<RequestInit, 'body'> {
@@ -2590,6 +3477,26 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
2590
3477
  * @secure
2591
3478
  */
2592
3479
  callControllerFindOne: (id: string, params?: RequestParams) => Promise<HttpResponse<Call, any>>;
3480
+ /**
3481
+ * No description
3482
+ *
3483
+ * @tags Calls
3484
+ * @name CallControllerDeleteCallData
3485
+ * @summary Delete Call Data
3486
+ * @request DELETE:/call/{id}
3487
+ * @secure
3488
+ */
3489
+ callControllerDeleteCallData: (id: string, params?: RequestParams) => Promise<HttpResponse<Call, any>>;
3490
+ /**
3491
+ * No description
3492
+ *
3493
+ * @tags Calls
3494
+ * @name CallControllerUpdate
3495
+ * @summary Update Call
3496
+ * @request PATCH:/call/{id}
3497
+ * @secure
3498
+ */
3499
+ callControllerUpdate: (id: string, data: UpdateCallDTO, params?: RequestParams) => Promise<HttpResponse<Call, any>>;
2593
3500
  /**
2594
3501
  * No description
2595
3502
  *
@@ -2622,68 +3529,88 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
2622
3529
  * @secure
2623
3530
  */
2624
3531
  credentialControllerCreate: (data: ({
2625
- provider: 'twilio';
2626
- } & CreateTwilioCredentialDTO) | ({
3532
+ provider: '11labs';
3533
+ } & CreateElevenLabsCredentialDTO) | ({
3534
+ provider: 'anthropic';
3535
+ } & CreateAnthropicCredentialDTO) | ({
3536
+ provider: 'anyscale';
3537
+ } & CreateAnyscaleCredentialDTO) | ({
3538
+ provider: 'azure-openai';
3539
+ } & CreateAzureOpenAICredentialDTO) | ({
3540
+ provider: 'cartesia';
3541
+ } & CreateCartesiaCredentialDTO) | ({
3542
+ provider: 'custom-llm';
3543
+ } & CreateCustomLLMCredentialDTO) | ({
2627
3544
  provider: 'deepgram';
2628
3545
  } & CreateDeepgramCredentialDTO) | ({
3546
+ provider: 'deepinfra';
3547
+ } & CreateDeepInfraCredentialDTO) | ({
3548
+ provider: 'gohighlevel';
3549
+ } & CreateGoHighLevelCredentialDTO) | ({
3550
+ provider: 'groq';
3551
+ } & CreateGroqCredentialDTO) | ({
3552
+ provider: 'lmnt';
3553
+ } & CreateLmntCredentialDTO) | ({
3554
+ provider: 'make';
3555
+ } & CreateMakeCredentialDTO) | ({
2629
3556
  provider: 'openai';
2630
3557
  } & CreateOpenAICredentialDTO) | ({
2631
- provider: 'together-ai';
2632
- } & CreateTogetherAICredentialDTO) | ({
2633
- provider: 'anyscale';
2634
- } & CreateAnyscaleCredentialDTO) | ({
2635
3558
  provider: 'openrouter';
2636
3559
  } & CreateOpenRouterCredentialDTO) | ({
2637
3560
  provider: 'perplexity-ai';
2638
3561
  } & CreatePerplexityAICredentialDTO) | ({
2639
- provider: 'deepinfra';
2640
- } & CreateDeepInfraCredentialDTO) | ({
2641
- provider: 'custom-llm';
2642
- } & CreateCustomLLMCredentialDTO) | ({
2643
- provider: '11labs';
2644
- } & CreateElevenLabsCredentialDTO) | ({
2645
3562
  provider: 'playht';
2646
3563
  } & CreatePlayHTCredentialDTO) | ({
2647
3564
  provider: 'rime-ai';
2648
3565
  } & CreateRimeAICredentialDTO) | ({
2649
3566
  provider: 'runpod';
2650
3567
  } & CreateRunpodCredentialDTO) | ({
2651
- provider: 'groq';
2652
- } & CreateGroqCredentialDTO) | ({
2653
- provider: 'anthropic';
2654
- } & CreateAnthropicCredentialDTO) | ({
3568
+ provider: 'together-ai';
3569
+ } & CreateTogetherAICredentialDTO) | ({
3570
+ provider: 'twilio';
3571
+ } & CreateTwilioCredentialDTO) | ({
2655
3572
  provider: 'vonage';
2656
3573
  } & CreateVonageCredentialDTO), params?: RequestParams) => Promise<HttpResponse<({
2657
- provider: 'twilio';
2658
- } & TwilioCredential) | ({
3574
+ provider: '11labs';
3575
+ } & ElevenLabsCredential) | ({
3576
+ provider: 'anthropic';
3577
+ } & AnthropicCredential) | ({
3578
+ provider: 'anyscale';
3579
+ } & AnyscaleCredential) | ({
3580
+ provider: 'azure-openai';
3581
+ } & AzureOpenAICredential) | ({
3582
+ provider: 'cartesia';
3583
+ } & CartesiaCredential) | ({
3584
+ provider: 'custom-llm';
3585
+ } & CustomLLMCredential) | ({
2659
3586
  provider: 'deepgram';
2660
3587
  } & DeepgramCredential) | ({
3588
+ provider: 'deepinfra';
3589
+ } & DeepInfraCredential) | ({
3590
+ provider: 'gohighlevel';
3591
+ } & GoHighLevelCredential) | ({
3592
+ provider: 'groq';
3593
+ } & GroqCredential) | ({
3594
+ provider: 'lmnt';
3595
+ } & LmntCredential) | ({
3596
+ provider: 'make';
3597
+ } & MakeCredential) | ({
2661
3598
  provider: 'openai';
2662
3599
  } & OpenAICredential) | ({
2663
- provider: 'together-ai';
2664
- } & TogetherAICredential) | ({
2665
- provider: 'anyscale';
2666
- } & AnyscaleCredential) | ({
2667
3600
  provider: 'openrouter';
2668
3601
  } & OpenRouterCredential) | ({
2669
3602
  provider: 'perplexity-ai';
2670
3603
  } & PerplexityAICredential) | ({
2671
- provider: 'deepinfra';
2672
- } & DeepInfraCredential) | ({
2673
- provider: 'custom-llm';
2674
- } & CustomLLMCredential) | ({
2675
- provider: '11labs';
2676
- } & ElevenLabsCredential) | ({
2677
3604
  provider: 'playht';
2678
3605
  } & PlayHTCredential) | ({
2679
3606
  provider: 'rime-ai';
2680
3607
  } & RimeAICredential) | ({
2681
3608
  provider: 'runpod';
2682
3609
  } & RunpodCredential) | ({
2683
- provider: 'groq';
2684
- } & GroqCredential) | ({
2685
- provider: 'anthropic';
2686
- } & AnthropicCredential) | ({
3610
+ provider: 'together-ai';
3611
+ } & TogetherAICredential) | ({
3612
+ provider: 'twilio';
3613
+ } & TwilioCredential) | ({
2687
3614
  provider: 'vonage';
2688
3615
  } & VonageCredential), any>>;
2689
3616
  /**
@@ -2743,36 +3670,46 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
2743
3670
  */
2744
3671
  updatedAtLe?: string;
2745
3672
  }, params?: RequestParams) => Promise<HttpResponse<(({
2746
- provider: 'twilio';
2747
- } & TwilioCredential) | ({
3673
+ provider: '11labs';
3674
+ } & ElevenLabsCredential) | ({
3675
+ provider: 'anthropic';
3676
+ } & AnthropicCredential) | ({
3677
+ provider: 'anyscale';
3678
+ } & AnyscaleCredential) | ({
3679
+ provider: 'azure-openai';
3680
+ } & AzureOpenAICredential) | ({
3681
+ provider: 'cartesia';
3682
+ } & CartesiaCredential) | ({
3683
+ provider: 'custom-llm';
3684
+ } & CustomLLMCredential) | ({
2748
3685
  provider: 'deepgram';
2749
3686
  } & DeepgramCredential) | ({
3687
+ provider: 'deepinfra';
3688
+ } & DeepInfraCredential) | ({
3689
+ provider: 'gohighlevel';
3690
+ } & GoHighLevelCredential) | ({
3691
+ provider: 'groq';
3692
+ } & GroqCredential) | ({
3693
+ provider: 'lmnt';
3694
+ } & LmntCredential) | ({
3695
+ provider: 'make';
3696
+ } & MakeCredential) | ({
2750
3697
  provider: 'openai';
2751
3698
  } & OpenAICredential) | ({
2752
- provider: 'together-ai';
2753
- } & TogetherAICredential) | ({
2754
- provider: 'anyscale';
2755
- } & AnyscaleCredential) | ({
2756
3699
  provider: 'openrouter';
2757
3700
  } & OpenRouterCredential) | ({
2758
3701
  provider: 'perplexity-ai';
2759
3702
  } & PerplexityAICredential) | ({
2760
- provider: 'deepinfra';
2761
- } & DeepInfraCredential) | ({
2762
- provider: 'custom-llm';
2763
- } & CustomLLMCredential) | ({
2764
- provider: '11labs';
2765
- } & ElevenLabsCredential) | ({
2766
3703
  provider: 'playht';
2767
3704
  } & PlayHTCredential) | ({
2768
3705
  provider: 'rime-ai';
2769
3706
  } & RimeAICredential) | ({
2770
3707
  provider: 'runpod';
2771
3708
  } & RunpodCredential) | ({
2772
- provider: 'groq';
2773
- } & GroqCredential) | ({
2774
- provider: 'anthropic';
2775
- } & AnthropicCredential) | ({
3709
+ provider: 'together-ai';
3710
+ } & TogetherAICredential) | ({
3711
+ provider: 'twilio';
3712
+ } & TwilioCredential) | ({
2776
3713
  provider: 'vonage';
2777
3714
  } & VonageCredential))[], any>>;
2778
3715
  /**
@@ -2785,36 +3722,46 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
2785
3722
  * @secure
2786
3723
  */
2787
3724
  credentialControllerFindOne: (id: string, params?: RequestParams) => Promise<HttpResponse<({
2788
- provider: 'twilio';
2789
- } & TwilioCredential) | ({
3725
+ provider: '11labs';
3726
+ } & ElevenLabsCredential) | ({
3727
+ provider: 'anthropic';
3728
+ } & AnthropicCredential) | ({
3729
+ provider: 'anyscale';
3730
+ } & AnyscaleCredential) | ({
3731
+ provider: 'azure-openai';
3732
+ } & AzureOpenAICredential) | ({
3733
+ provider: 'cartesia';
3734
+ } & CartesiaCredential) | ({
3735
+ provider: 'custom-llm';
3736
+ } & CustomLLMCredential) | ({
2790
3737
  provider: 'deepgram';
2791
3738
  } & DeepgramCredential) | ({
3739
+ provider: 'deepinfra';
3740
+ } & DeepInfraCredential) | ({
3741
+ provider: 'gohighlevel';
3742
+ } & GoHighLevelCredential) | ({
3743
+ provider: 'groq';
3744
+ } & GroqCredential) | ({
3745
+ provider: 'lmnt';
3746
+ } & LmntCredential) | ({
3747
+ provider: 'make';
3748
+ } & MakeCredential) | ({
2792
3749
  provider: 'openai';
2793
3750
  } & OpenAICredential) | ({
2794
- provider: 'together-ai';
2795
- } & TogetherAICredential) | ({
2796
- provider: 'anyscale';
2797
- } & AnyscaleCredential) | ({
2798
3751
  provider: 'openrouter';
2799
3752
  } & OpenRouterCredential) | ({
2800
3753
  provider: 'perplexity-ai';
2801
3754
  } & PerplexityAICredential) | ({
2802
- provider: 'deepinfra';
2803
- } & DeepInfraCredential) | ({
2804
- provider: 'custom-llm';
2805
- } & CustomLLMCredential) | ({
2806
- provider: '11labs';
2807
- } & ElevenLabsCredential) | ({
2808
3755
  provider: 'playht';
2809
3756
  } & PlayHTCredential) | ({
2810
3757
  provider: 'rime-ai';
2811
3758
  } & RimeAICredential) | ({
2812
3759
  provider: 'runpod';
2813
3760
  } & RunpodCredential) | ({
2814
- provider: 'groq';
2815
- } & GroqCredential) | ({
2816
- provider: 'anthropic';
2817
- } & AnthropicCredential) | ({
3761
+ provider: 'together-ai';
3762
+ } & TogetherAICredential) | ({
3763
+ provider: 'twilio';
3764
+ } & TwilioCredential) | ({
2818
3765
  provider: 'vonage';
2819
3766
  } & VonageCredential), any>>;
2820
3767
  /**
@@ -2827,68 +3774,88 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
2827
3774
  * @secure
2828
3775
  */
2829
3776
  credentialControllerUpdate: (id: string, data: ({
2830
- provider: 'twilio';
2831
- } & UpdateTwilioCredentialDTO) | ({
3777
+ provider: '11labs';
3778
+ } & UpdateElevenLabsCredentialDTO) | ({
3779
+ provider: 'anthropic';
3780
+ } & UpdateAnthropicCredentialDTO) | ({
3781
+ provider: 'anyscale';
3782
+ } & UpdateAnyscaleCredentialDTO) | ({
3783
+ provider: 'azure-openai';
3784
+ } & UpdateAzureOpenAICredentialDTO) | ({
3785
+ provider: 'cartesia';
3786
+ } & UpdateCartesiaCredentialDTO) | ({
3787
+ provider: 'custom-llm';
3788
+ } & UpdateCustomLLMCredentialDTO) | ({
2832
3789
  provider: 'deepgram';
2833
3790
  } & UpdateDeepgramCredentialDTO) | ({
3791
+ provider: 'deepinfra';
3792
+ } & UpdateDeepInfraCredentialDTO) | ({
3793
+ provider: 'gohighlevel';
3794
+ } & UpdateGoHighLevelCredentialDTO) | ({
3795
+ provider: 'groq';
3796
+ } & UpdateGroqCredentialDTO) | ({
3797
+ provider: 'lmnt';
3798
+ } & UpdateLmntCredentialDTO) | ({
3799
+ provider: 'make';
3800
+ } & UpdateMakeCredentialDTO) | ({
2834
3801
  provider: 'openai';
2835
3802
  } & UpdateOpenAICredentialDTO) | ({
2836
- provider: 'together-ai';
2837
- } & UpdateTogetherAICredentialDTO) | ({
2838
- provider: 'anyscale';
2839
- } & UpdateAnyscaleCredentialDTO) | ({
2840
3803
  provider: 'openrouter';
2841
3804
  } & UpdateOpenRouterCredentialDTO) | ({
2842
3805
  provider: 'perplexity-ai';
2843
3806
  } & UpdatePerplexityAICredentialDTO) | ({
2844
- provider: 'deepinfra';
2845
- } & UpdateDeepInfraCredentialDTO) | ({
2846
- provider: 'custom-llm';
2847
- } & UpdateCustomLLMCredentialDTO) | ({
2848
- provider: '11labs';
2849
- } & UpdateElevenLabsCredentialDTO) | ({
2850
3807
  provider: 'playht';
2851
3808
  } & UpdatePlayHTCredentialDTO) | ({
2852
3809
  provider: 'rime-ai';
2853
3810
  } & UpdateRimeAICredentialDTO) | ({
2854
3811
  provider: 'runpod';
2855
3812
  } & UpdateRunpodCredentialDTO) | ({
2856
- provider: 'groq';
2857
- } & UpdateGroqCredentialDTO) | ({
2858
- provider: 'anthropic';
2859
- } & UpdateAnthropicCredentialDTO) | ({
3813
+ provider: 'together-ai';
3814
+ } & UpdateTogetherAICredentialDTO) | ({
3815
+ provider: 'twilio';
3816
+ } & UpdateTwilioCredentialDTO) | ({
2860
3817
  provider: 'vonage';
2861
3818
  } & UpdateVonageCredentialDTO), params?: RequestParams) => Promise<HttpResponse<({
2862
- provider: 'twilio';
2863
- } & TwilioCredential) | ({
3819
+ provider: '11labs';
3820
+ } & ElevenLabsCredential) | ({
3821
+ provider: 'anthropic';
3822
+ } & AnthropicCredential) | ({
3823
+ provider: 'anyscale';
3824
+ } & AnyscaleCredential) | ({
3825
+ provider: 'azure-openai';
3826
+ } & AzureOpenAICredential) | ({
3827
+ provider: 'cartesia';
3828
+ } & CartesiaCredential) | ({
3829
+ provider: 'custom-llm';
3830
+ } & CustomLLMCredential) | ({
2864
3831
  provider: 'deepgram';
2865
3832
  } & DeepgramCredential) | ({
3833
+ provider: 'deepinfra';
3834
+ } & DeepInfraCredential) | ({
3835
+ provider: 'gohighlevel';
3836
+ } & GoHighLevelCredential) | ({
3837
+ provider: 'groq';
3838
+ } & GroqCredential) | ({
3839
+ provider: 'lmnt';
3840
+ } & LmntCredential) | ({
3841
+ provider: 'make';
3842
+ } & MakeCredential) | ({
2866
3843
  provider: 'openai';
2867
3844
  } & OpenAICredential) | ({
2868
- provider: 'together-ai';
2869
- } & TogetherAICredential) | ({
2870
- provider: 'anyscale';
2871
- } & AnyscaleCredential) | ({
2872
3845
  provider: 'openrouter';
2873
3846
  } & OpenRouterCredential) | ({
2874
3847
  provider: 'perplexity-ai';
2875
3848
  } & PerplexityAICredential) | ({
2876
- provider: 'deepinfra';
2877
- } & DeepInfraCredential) | ({
2878
- provider: 'custom-llm';
2879
- } & CustomLLMCredential) | ({
2880
- provider: '11labs';
2881
- } & ElevenLabsCredential) | ({
2882
3849
  provider: 'playht';
2883
3850
  } & PlayHTCredential) | ({
2884
3851
  provider: 'rime-ai';
2885
3852
  } & RimeAICredential) | ({
2886
3853
  provider: 'runpod';
2887
3854
  } & RunpodCredential) | ({
2888
- provider: 'groq';
2889
- } & GroqCredential) | ({
2890
- provider: 'anthropic';
2891
- } & AnthropicCredential) | ({
3855
+ provider: 'together-ai';
3856
+ } & TogetherAICredential) | ({
3857
+ provider: 'twilio';
3858
+ } & TwilioCredential) | ({
2892
3859
  provider: 'vonage';
2893
3860
  } & VonageCredential), any>>;
2894
3861
  /**
@@ -2901,36 +3868,46 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
2901
3868
  * @secure
2902
3869
  */
2903
3870
  credentialControllerRemove: (id: string, params?: RequestParams) => Promise<HttpResponse<({
2904
- provider: 'twilio';
2905
- } & TwilioCredential) | ({
3871
+ provider: '11labs';
3872
+ } & ElevenLabsCredential) | ({
3873
+ provider: 'anthropic';
3874
+ } & AnthropicCredential) | ({
3875
+ provider: 'anyscale';
3876
+ } & AnyscaleCredential) | ({
3877
+ provider: 'azure-openai';
3878
+ } & AzureOpenAICredential) | ({
3879
+ provider: 'cartesia';
3880
+ } & CartesiaCredential) | ({
3881
+ provider: 'custom-llm';
3882
+ } & CustomLLMCredential) | ({
2906
3883
  provider: 'deepgram';
2907
3884
  } & DeepgramCredential) | ({
3885
+ provider: 'deepinfra';
3886
+ } & DeepInfraCredential) | ({
3887
+ provider: 'gohighlevel';
3888
+ } & GoHighLevelCredential) | ({
3889
+ provider: 'groq';
3890
+ } & GroqCredential) | ({
3891
+ provider: 'lmnt';
3892
+ } & LmntCredential) | ({
3893
+ provider: 'make';
3894
+ } & MakeCredential) | ({
2908
3895
  provider: 'openai';
2909
3896
  } & OpenAICredential) | ({
2910
- provider: 'together-ai';
2911
- } & TogetherAICredential) | ({
2912
- provider: 'anyscale';
2913
- } & AnyscaleCredential) | ({
2914
3897
  provider: 'openrouter';
2915
3898
  } & OpenRouterCredential) | ({
2916
3899
  provider: 'perplexity-ai';
2917
3900
  } & PerplexityAICredential) | ({
2918
- provider: 'deepinfra';
2919
- } & DeepInfraCredential) | ({
2920
- provider: 'custom-llm';
2921
- } & CustomLLMCredential) | ({
2922
- provider: '11labs';
2923
- } & ElevenLabsCredential) | ({
2924
3901
  provider: 'playht';
2925
3902
  } & PlayHTCredential) | ({
2926
3903
  provider: 'rime-ai';
2927
3904
  } & RimeAICredential) | ({
2928
3905
  provider: 'runpod';
2929
3906
  } & RunpodCredential) | ({
2930
- provider: 'groq';
2931
- } & GroqCredential) | ({
2932
- provider: 'anthropic';
2933
- } & AnthropicCredential) | ({
3907
+ provider: 'together-ai';
3908
+ } & TogetherAICredential) | ({
3909
+ provider: 'twilio';
3910
+ } & TwilioCredential) | ({
2934
3911
  provider: 'vonage';
2935
3912
  } & VonageCredential), any>>;
2936
3913
  };
@@ -3085,45 +4062,106 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
3085
4062
  rangeEnd?: string;
3086
4063
  }, params?: RequestParams) => Promise<HttpResponse<Metrics[], any>>;
3087
4064
  };
3088
- voiceLibrary: {
4065
+ log: {
3089
4066
  /**
3090
4067
  * No description
3091
4068
  *
3092
- * @tags Voice Library
3093
- * @name VoiceLibraryControllerVoiceGetByProvider
3094
- * @summary Get voices in Voice Library by Providers
3095
- * @request GET:/voice-library/{provider}
4069
+ * @tags Logs
4070
+ * @name LoggingControllerGetLogs
4071
+ * @summary Get Call Logs
4072
+ * @request GET:/log
3096
4073
  * @secure
3097
4074
  */
3098
- voiceLibraryControllerVoiceGetByProvider: (provider: '11labs' | 'playht' | 'rime-ai' | 'deepgram' | 'openai' | 'azure' | 'lmnt' | 'neets', params?: RequestParams) => Promise<HttpResponse<VoiceLibrary[], any>>;
4075
+ loggingControllerGetLogs: (query: {
4076
+ callId: string;
4077
+ /**
4078
+ * This is the page number to return. Defaults to 1.
4079
+ * @min 1
4080
+ */
4081
+ page?: number;
4082
+ /** This is the sort order for pagination. Defaults to 'ASC'. */
4083
+ sortOrder?: 'ASC' | 'DESC';
4084
+ /**
4085
+ * This is the maximum number of items to return. Defaults to 100.
4086
+ * @min 0
4087
+ * @max 1000
4088
+ */
4089
+ limit?: number;
4090
+ /**
4091
+ * This will return items where the createdAt is greater than the specified value.
4092
+ * @format date-time
4093
+ */
4094
+ createdAtGt?: string;
4095
+ /**
4096
+ * This will return items where the createdAt is less than the specified value.
4097
+ * @format date-time
4098
+ */
4099
+ createdAtLt?: string;
4100
+ /**
4101
+ * This will return items where the createdAt is greater than or equal to the specified value.
4102
+ * @format date-time
4103
+ */
4104
+ createdAtGe?: string;
4105
+ /**
4106
+ * This will return items where the createdAt is less than or equal to the specified value.
4107
+ * @format date-time
4108
+ */
4109
+ createdAtLe?: string;
4110
+ /**
4111
+ * This will return items where the updatedAt is greater than the specified value.
4112
+ * @format date-time
4113
+ */
4114
+ updatedAtGt?: string;
4115
+ /**
4116
+ * This will return items where the updatedAt is less than the specified value.
4117
+ * @format date-time
4118
+ */
4119
+ updatedAtLt?: string;
4120
+ /**
4121
+ * This will return items where the updatedAt is greater than or equal to the specified value.
4122
+ * @format date-time
4123
+ */
4124
+ updatedAtGe?: string;
4125
+ /**
4126
+ * This will return items where the updatedAt is less than or equal to the specified value.
4127
+ * @format date-time
4128
+ */
4129
+ updatedAtLe?: string;
4130
+ }, params?: RequestParams) => Promise<HttpResponse<CallLogsPaginatedResponse, any>>;
4131
+ };
4132
+ tool: {
3099
4133
  /**
3100
4134
  * No description
3101
4135
  *
3102
- * @tags Voice Library
3103
- * @name VoiceLibraryControllerVoiceLibrarySyncByProvider
3104
- * @summary Sync voices in Voice Library by Providers
3105
- * @request POST:/voice-library/sync/{provider}
4136
+ * @tags Tools
4137
+ * @name ToolControllerCreate
4138
+ * @summary Create Tool
4139
+ * @request POST:/tool
3106
4140
  * @secure
3107
4141
  */
3108
- voiceLibraryControllerVoiceLibrarySyncByProvider: (provider: '11labs' | 'playht' | 'rime-ai' | 'deepgram' | 'openai' | 'azure' | 'lmnt' | 'neets', params?: RequestParams) => Promise<HttpResponse<VoiceLibrary[], any>>;
3109
- };
3110
- logging: {
4142
+ toolControllerCreate: (data: ({
4143
+ type: 'make';
4144
+ } & CreateMakeToolDTO) | ({
4145
+ type: 'ghl';
4146
+ } & CreateGhlToolDTO) | ({
4147
+ type: 'function';
4148
+ } & CreateFunctionToolDTO), params?: RequestParams) => Promise<HttpResponse<({
4149
+ type: 'make';
4150
+ } & MakeTool) | ({
4151
+ type: 'ghl';
4152
+ } & GhlTool) | ({
4153
+ type: 'function';
4154
+ } & FunctionTool), any>>;
3111
4155
  /**
3112
4156
  * No description
3113
4157
  *
3114
- * @tags Logging
3115
- * @name LoggingControllerGetLogs
3116
- * @summary Get Logging Logs
3117
- * @request GET:/logging
4158
+ * @tags Tools
4159
+ * @name ToolControllerFindAll
4160
+ * @summary List Tools
4161
+ * @request GET:/tool
3118
4162
  * @secure
3119
4163
  */
3120
- loggingControllerGetLogs: (query: {
3121
- callId: string;
3122
- /**
3123
- * This is the page number to return. Defaults to 1.
3124
- * @min 1
3125
- */
3126
- page?: number;
4164
+ toolControllerFindAll: (query?: {
3127
4165
  /**
3128
4166
  * This is the maximum number of items to return. Defaults to 100.
3129
4167
  * @min 0
@@ -3170,7 +4208,109 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
3170
4208
  * @format date-time
3171
4209
  */
3172
4210
  updatedAtLe?: string;
3173
- }, params?: RequestParams) => Promise<HttpResponse<CallLogsPaginatedResponse, any>>;
4211
+ }, params?: RequestParams) => Promise<HttpResponse<(({
4212
+ type: 'make';
4213
+ } & MakeTool) | ({
4214
+ type: 'ghl';
4215
+ } & GhlTool) | ({
4216
+ type: 'function';
4217
+ } & FunctionTool))[], any>>;
4218
+ /**
4219
+ * No description
4220
+ *
4221
+ * @tags Tools
4222
+ * @name ToolControllerFindOne
4223
+ * @summary Get Tool
4224
+ * @request GET:/tool/{id}
4225
+ * @secure
4226
+ */
4227
+ toolControllerFindOne: (id: string, params?: RequestParams) => Promise<HttpResponse<({
4228
+ type: 'make';
4229
+ } & MakeTool) | ({
4230
+ type: 'ghl';
4231
+ } & GhlTool) | ({
4232
+ type: 'function';
4233
+ } & FunctionTool), any>>;
4234
+ /**
4235
+ * No description
4236
+ *
4237
+ * @tags Tools
4238
+ * @name ToolControllerUpdate
4239
+ * @summary Update Tool
4240
+ * @request PATCH:/tool/{id}
4241
+ * @secure
4242
+ */
4243
+ toolControllerUpdate: (id: string, data: ({
4244
+ type: 'make';
4245
+ } & UpdateMakeToolDTO) | ({
4246
+ type: 'ghl';
4247
+ } & UpdateGhlToolDTO) | ({
4248
+ type: 'function';
4249
+ } & UpdateFunctionToolDTO), params?: RequestParams) => Promise<HttpResponse<({
4250
+ type: 'make';
4251
+ } & MakeTool) | ({
4252
+ type: 'ghl';
4253
+ } & GhlTool) | ({
4254
+ type: 'function';
4255
+ } & FunctionTool), any>>;
4256
+ /**
4257
+ * No description
4258
+ *
4259
+ * @tags Tools
4260
+ * @name ToolControllerRemove
4261
+ * @summary Delete Tool
4262
+ * @request DELETE:/tool/{id}
4263
+ * @secure
4264
+ */
4265
+ toolControllerRemove: (id: string, params?: RequestParams) => Promise<HttpResponse<({
4266
+ type: 'make';
4267
+ } & MakeTool) | ({
4268
+ type: 'ghl';
4269
+ } & GhlTool) | ({
4270
+ type: 'function';
4271
+ } & FunctionTool), any>>;
4272
+ };
4273
+ file: {
4274
+ /**
4275
+ * No description
4276
+ *
4277
+ * @tags Files
4278
+ * @name FileControllerCreate
4279
+ * @summary Upload File
4280
+ * @request POST:/file/upload
4281
+ * @secure
4282
+ */
4283
+ fileControllerCreate: (data: CreateFileDTO, params?: RequestParams) => Promise<HttpResponse<File, void>>;
4284
+ /**
4285
+ * No description
4286
+ *
4287
+ * @tags Files
4288
+ * @name FileControllerFindAll
4289
+ * @summary List Files
4290
+ * @request GET:/file
4291
+ * @secure
4292
+ */
4293
+ fileControllerFindAll: (params?: RequestParams) => Promise<HttpResponse<File[], any>>;
4294
+ /**
4295
+ * No description
4296
+ *
4297
+ * @tags Files
4298
+ * @name FileControllerFindOne
4299
+ * @summary Get File
4300
+ * @request GET:/file/{id}
4301
+ * @secure
4302
+ */
4303
+ fileControllerFindOne: (id: string, params?: RequestParams) => Promise<HttpResponse<File, any>>;
4304
+ /**
4305
+ * No description
4306
+ *
4307
+ * @tags Files
4308
+ * @name FileControllerRemove
4309
+ * @summary Delete File
4310
+ * @request DELETE:/file/{id}
4311
+ * @secure
4312
+ */
4313
+ fileControllerRemove: (id: string, params?: RequestParams) => Promise<HttpResponse<File, any>>;
3174
4314
  };
3175
4315
  }
3176
4316
  export {};