@apicity/elevenlabs 0.6.5 → 0.6.7

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/src/zod.js CHANGED
@@ -57,6 +57,87 @@ export const ElevenLabsGetVoiceRequestSchema = z.object({
57
57
  with_settings: z.boolean().optional(),
58
58
  });
59
59
  // ---------------------------------------------------------------------------
60
+ // GET /v1/voices
61
+ // ---------------------------------------------------------------------------
62
+ export const ElevenLabsListV1VoicesRequestSchema = z.object({
63
+ show_legacy: z.boolean().nullable().optional(),
64
+ });
65
+ // ---------------------------------------------------------------------------
66
+ // POST /v1/voices/add
67
+ // ---------------------------------------------------------------------------
68
+ export const ElevenLabsAddVoiceRequestSchema = z.object({
69
+ name: z.string(),
70
+ files: z.array(z.custom((value) => value instanceof Blob)).min(1),
71
+ remove_background_noise: z.boolean().optional(),
72
+ description: z.string().nullable().optional(),
73
+ labels: z
74
+ .union([z.record(z.string(), z.string()), z.string()])
75
+ .nullable()
76
+ .optional(),
77
+ });
78
+ // ---------------------------------------------------------------------------
79
+ // POST /v1/voices/:voice_id/edit
80
+ // ---------------------------------------------------------------------------
81
+ export const ElevenLabsEditVoiceRequestSchema = z.object({
82
+ name: z.string(),
83
+ files: z.array(z.custom((value) => value instanceof Blob)).optional(),
84
+ remove_background_noise: z.boolean().optional(),
85
+ description: z.string().nullable().optional(),
86
+ labels: z
87
+ .union([z.record(z.string(), z.string()), z.string()])
88
+ .nullable()
89
+ .optional(),
90
+ moderate_metadata: z.boolean().optional(),
91
+ });
92
+ // ---------------------------------------------------------------------------
93
+ // POST /v1/voices/:voice_id/settings/edit
94
+ // ---------------------------------------------------------------------------
95
+ export const ElevenLabsEditVoiceSettingsRequestSchema = z.object({
96
+ stability: z.number().nullable().optional(),
97
+ use_speaker_boost: z.boolean().nullable().optional(),
98
+ similarity_boost: z.number().nullable().optional(),
99
+ style: z.number().nullable().optional(),
100
+ speed: z.number().nullable().optional(),
101
+ });
102
+ // ---------------------------------------------------------------------------
103
+ // POST /v1/voices/add/:public_user_id/:voice_id
104
+ // ---------------------------------------------------------------------------
105
+ export const ElevenLabsAddSharedVoiceRequestSchema = z.object({
106
+ new_name: z.string(),
107
+ bookmarked: z.boolean().optional(),
108
+ });
109
+ // ---------------------------------------------------------------------------
110
+ // GET /v1/shared-voices
111
+ // ---------------------------------------------------------------------------
112
+ export const ElevenLabsSharedVoicesRequestSchema = z.object({
113
+ page_size: z.number().int().optional(),
114
+ category: z.string().nullable().optional(),
115
+ gender: z.string().nullable().optional(),
116
+ age: z.string().nullable().optional(),
117
+ accent: z.string().nullable().optional(),
118
+ language: z.string().nullable().optional(),
119
+ locale: z.string().nullable().optional(),
120
+ search: z.string().nullable().optional(),
121
+ use_cases: z.array(z.string()).nullable().optional(),
122
+ descriptives: z.array(z.string()).nullable().optional(),
123
+ featured: z.boolean().optional(),
124
+ min_notice_period_days: z.number().int().nullable().optional(),
125
+ include_custom_rates: z.boolean().nullable().optional(),
126
+ include_live_moderated: z.boolean().nullable().optional(),
127
+ reader_app_enabled: z.boolean().optional(),
128
+ owner_id: z.string().nullable().optional(),
129
+ sort: z.string().nullable().optional(),
130
+ page: z.number().int().optional(),
131
+ });
132
+ // ---------------------------------------------------------------------------
133
+ // POST /v1/similar-voices
134
+ // ---------------------------------------------------------------------------
135
+ export const ElevenLabsSimilarVoicesRequestSchema = z.object({
136
+ audio_file: z.custom((value) => value instanceof Blob).optional(),
137
+ similarity_threshold: z.number().nullable().optional(),
138
+ top_k: z.number().int().nullable().optional(),
139
+ });
140
+ // ---------------------------------------------------------------------------
60
141
  // POST /v1/voices/pvc
61
142
  // ---------------------------------------------------------------------------
62
143
  export const ElevenLabsCreatePvcVoiceRequestSchema = z.object({
@@ -66,6 +147,28 @@ export const ElevenLabsCreatePvcVoiceRequestSchema = z.object({
66
147
  labels: z.record(z.string(), z.string()).nullable().optional(),
67
148
  });
68
149
  // ---------------------------------------------------------------------------
150
+ // POST /v1/voices/pvc/:voice_id
151
+ // ---------------------------------------------------------------------------
152
+ export const ElevenLabsEditPvcVoiceRequestSchema = z.object({
153
+ name: z.string().max(100),
154
+ language: z.string(),
155
+ description: z.string().max(500).nullable().optional(),
156
+ labels: z.record(z.string(), z.string()).nullable().optional(),
157
+ });
158
+ // ---------------------------------------------------------------------------
159
+ // POST /v1/voices/pvc/:voice_id/samples
160
+ // ---------------------------------------------------------------------------
161
+ export const ElevenLabsAddPvcSamplesRequestSchema = z.object({
162
+ files: z.array(z.custom((value) => value instanceof Blob)).min(1),
163
+ remove_background_noise: z.boolean().optional(),
164
+ });
165
+ // ---------------------------------------------------------------------------
166
+ // GET /v1/voices/pvc/:voice_id/samples/:sample_id/audio
167
+ // ---------------------------------------------------------------------------
168
+ export const ElevenLabsGetPvcSampleAudioRequestSchema = z.object({
169
+ remove_background_noise: z.boolean().optional(),
170
+ });
171
+ // ---------------------------------------------------------------------------
69
172
  // POST /v1/voices/pvc/:voice_id/captcha
70
173
  // ---------------------------------------------------------------------------
71
174
  export const ElevenLabsPvcVoiceCaptchaRequestSchema = z.object({
@@ -160,6 +263,7 @@ export const ElevenLabsTextToDialogueRequestSchema = z.object({
160
263
  seed: z.number().int().min(0).max(4294967295).nullable().optional(),
161
264
  apply_text_normalization: z.enum(["auto", "on", "off"]).optional(),
162
265
  output_format: z.string().optional(),
266
+ enable_logging: z.boolean().optional(),
163
267
  });
164
268
  // ---------------------------------------------------------------------------
165
269
  // POST /v1/speech-to-text
@@ -206,6 +310,651 @@ export const ElevenLabsSpeechToTextRequestSchema = z.object({
206
310
  enable_logging: z.boolean().optional(),
207
311
  });
208
312
  // ---------------------------------------------------------------------------
313
+ // POST /v1/speech-to-speech/{voiceId} (and /stream)
314
+ // ---------------------------------------------------------------------------
315
+ // Multipart form: `audio` is the source recording whose content/emotion drives
316
+ // the conversion. `output_format` and `enable_logging` are query-string params;
317
+ // the factory strips them from the body and moves them to the URL.
318
+ // `voice_settings` must be sent as a JSON-encoded string in the form body; the
319
+ // factory accepts either a settings object (serialized for you) or a string.
320
+ export const ElevenLabsSpeechToSpeechRequestSchema = z.object({
321
+ audio: z.custom(),
322
+ model_id: z.string().optional(),
323
+ voice_settings: z
324
+ .union([ElevenLabsVoiceSettingsSchema, z.string()])
325
+ .nullable()
326
+ .optional(),
327
+ seed: z.number().int().min(0).max(4294967295).nullable().optional(),
328
+ remove_background_noise: z.boolean().optional(),
329
+ file_format: z.enum(["pcm_s16le_16", "other"]).nullable().optional(),
330
+ output_format: z.string().optional(),
331
+ enable_logging: z.boolean().optional(),
332
+ });
333
+ // ---------------------------------------------------------------------------
334
+ // POST /v1/audio-isolation (and /stream)
335
+ // ---------------------------------------------------------------------------
336
+ const ElevenLabsAudioIsolationFileFormatSchema = z.enum([
337
+ "pcm_s16le_16",
338
+ "other",
339
+ ]);
340
+ export const ElevenLabsAudioIsolationRequestSchema = z.object({
341
+ audio: z.custom((value) => value instanceof Blob),
342
+ file_format: ElevenLabsAudioIsolationFileFormatSchema.nullable().optional(),
343
+ preview_b64: z.string().nullable().optional(),
344
+ });
345
+ export const ElevenLabsAudioIsolationStreamRequestSchema = z.object({
346
+ audio: z.custom((value) => value instanceof Blob),
347
+ file_format: ElevenLabsAudioIsolationFileFormatSchema.nullable().optional(),
348
+ });
349
+ // ---------------------------------------------------------------------------
350
+ // GET /v1/audio-isolation/history
351
+ // ---------------------------------------------------------------------------
352
+ export const ElevenLabsAudioIsolationHistoryListRequestSchema = z.object({
353
+ page_size: z.number().int().min(1).max(1000).optional(),
354
+ page: z.number().int().min(1).optional(),
355
+ search: z.string().nullable().optional(),
356
+ });
357
+ // ---------------------------------------------------------------------------
358
+ // POST /v1/audio-native
359
+ // ---------------------------------------------------------------------------
360
+ const ElevenLabsAudioNativeTextNormalizationSchema = z.enum([
361
+ "auto",
362
+ "on",
363
+ "off",
364
+ "apply_english",
365
+ ]);
366
+ export const ElevenLabsAudioNativeCreateProjectRequestSchema = z.object({
367
+ name: z.string(),
368
+ image: z.string().nullable().optional(),
369
+ author: z.string().nullable().optional(),
370
+ title: z.string().nullable().optional(),
371
+ small: z.boolean().optional(),
372
+ text_color: z.string().nullable().optional(),
373
+ background_color: z.string().nullable().optional(),
374
+ sessionization: z.number().int().optional(),
375
+ voice_id: z.string().nullable().optional(),
376
+ model_id: z.string().nullable().optional(),
377
+ file: z.custom((value) => value instanceof Blob).optional(),
378
+ auto_convert: z.boolean().optional(),
379
+ apply_text_normalization: ElevenLabsAudioNativeTextNormalizationSchema.nullable().optional(),
380
+ pronunciation_dictionary_locators: z.array(z.string()).optional(),
381
+ });
382
+ // ---------------------------------------------------------------------------
383
+ // POST /v1/audio-native/content
384
+ // ---------------------------------------------------------------------------
385
+ export const ElevenLabsAudioNativeUpdateContentFromUrlRequestSchema = z.object({
386
+ url: z.string().url(),
387
+ author: z.string().nullable().optional(),
388
+ title: z.string().nullable().optional(),
389
+ });
390
+ // ---------------------------------------------------------------------------
391
+ // POST /v1/audio-native/:project_id/content
392
+ // ---------------------------------------------------------------------------
393
+ export const ElevenLabsAudioNativeUpdateProjectContentRequestSchema = z.object({
394
+ file: z.custom((value) => value instanceof Blob).optional(),
395
+ auto_convert: z.boolean().optional(),
396
+ auto_publish: z.boolean().optional(),
397
+ });
398
+ // ---------------------------------------------------------------------------
399
+ // POST /v1/forced-alignment
400
+ // ---------------------------------------------------------------------------
401
+ export const ElevenLabsForcedAlignmentRequestSchema = z.object({
402
+ file: z.custom((value) => value instanceof Blob),
403
+ text: z.string(),
404
+ });
405
+ // ---------------------------------------------------------------------------
406
+ // Music shared schemas
407
+ // ---------------------------------------------------------------------------
408
+ const ElevenLabsMusicTimeRangeSchema = z.object({
409
+ start_ms: z.number().int(),
410
+ end_ms: z.number().int(),
411
+ });
412
+ const ElevenLabsMusicSongSectionSchema = z.object({
413
+ section_name: z.string(),
414
+ positive_local_styles: z.array(z.string()),
415
+ negative_local_styles: z.array(z.string()),
416
+ duration_ms: z.number().int(),
417
+ lines: z.array(z.string()),
418
+ source_from: z
419
+ .object({
420
+ song_id: z.string(),
421
+ range: ElevenLabsMusicTimeRangeSchema,
422
+ negative_ranges: z.array(ElevenLabsMusicTimeRangeSchema).optional(),
423
+ })
424
+ .nullable()
425
+ .optional(),
426
+ });
427
+ const ElevenLabsMusicPromptSchema = z.object({
428
+ positive_global_styles: z.array(z.string()),
429
+ negative_global_styles: z.array(z.string()),
430
+ sections: z.array(ElevenLabsMusicSongSectionSchema),
431
+ });
432
+ const ElevenLabsMusicAudioRefChunkSchema = z.object({
433
+ song_id: z.string(),
434
+ range: ElevenLabsMusicTimeRangeSchema,
435
+ });
436
+ const ElevenLabsMusicGenerationChunkSchema = z.object({
437
+ text: z.string(),
438
+ duration_ms: z.number().int(),
439
+ positive_styles: z.array(z.string()),
440
+ negative_styles: z.array(z.string()).optional(),
441
+ context_adherence: z.enum(["low", "medium", "high"]).optional(),
442
+ conditioning_ref: ElevenLabsMusicAudioRefChunkSchema.nullable().optional(),
443
+ condition_strength: z
444
+ .enum(["low", "medium", "high", "xhigh"])
445
+ .nullable()
446
+ .optional(),
447
+ });
448
+ const ElevenLabsCompositionPlanSchema = z.object({
449
+ chunks: z.array(z.union([
450
+ ElevenLabsMusicGenerationChunkSchema,
451
+ ElevenLabsMusicAudioRefChunkSchema,
452
+ ])),
453
+ });
454
+ const ElevenLabsMusicCompositionPlanSchema = z.union([
455
+ ElevenLabsMusicPromptSchema,
456
+ ElevenLabsCompositionPlanSchema,
457
+ ]);
458
+ const ElevenLabsMusicModelIdSchema = z.enum(["music_v1", "music_v2"]);
459
+ // `output_format` is a query-string parameter, not a body field. As with the
460
+ // other audio endpoints, it is carried on the same request object and the
461
+ // factory strips it out and moves it to the URL query.
462
+ const musicComposeBaseShape = {
463
+ prompt: z.string().max(4100).nullable().optional(),
464
+ generation_mode: z
465
+ .enum(["track", "loop", "ambience", "video_to_music"])
466
+ .nullable()
467
+ .optional(),
468
+ lyrics_text: z.string().max(4000).nullable().optional(),
469
+ composition_plan: ElevenLabsMusicCompositionPlanSchema.nullable().optional(),
470
+ music_length_ms: z.number().int().min(3000).max(600000).nullable().optional(),
471
+ model_id: ElevenLabsMusicModelIdSchema.optional(),
472
+ seed: z.number().int().min(0).max(2147483647).nullable().optional(),
473
+ force_instrumental: z.boolean().optional(),
474
+ finetune_id: z.string().max(100).nullable().optional(),
475
+ finetune_strength: z.number().optional(),
476
+ use_phonetic_names: z.boolean().optional(),
477
+ store_for_inpainting: z.boolean().optional(),
478
+ };
479
+ // ---------------------------------------------------------------------------
480
+ // POST /v1/music
481
+ // ---------------------------------------------------------------------------
482
+ export const ElevenLabsComposeMusicRequestSchema = z.object({
483
+ ...musicComposeBaseShape,
484
+ respect_sections_durations: z.boolean().optional(),
485
+ sign_with_c2pa: z.boolean().optional(),
486
+ output_format: z.string().optional(),
487
+ });
488
+ // ---------------------------------------------------------------------------
489
+ // POST /v1/music/detailed
490
+ // ---------------------------------------------------------------------------
491
+ export const ElevenLabsComposeMusicDetailedRequestSchema = z.object({
492
+ ...musicComposeBaseShape,
493
+ respect_sections_durations: z.boolean().optional(),
494
+ with_timestamps: z.boolean().optional(),
495
+ sign_with_c2pa: z.boolean().optional(),
496
+ output_format: z.string().optional(),
497
+ });
498
+ // ---------------------------------------------------------------------------
499
+ // POST /v1/music/stream
500
+ // ---------------------------------------------------------------------------
501
+ export const ElevenLabsComposeMusicStreamRequestSchema = z.object({
502
+ ...musicComposeBaseShape,
503
+ output_format: z.string().optional(),
504
+ });
505
+ // ---------------------------------------------------------------------------
506
+ // POST /v1/music/plan
507
+ // ---------------------------------------------------------------------------
508
+ export const ElevenLabsMusicPlanRequestSchema = z.object({
509
+ prompt: z.string().max(4100),
510
+ music_length_ms: z.number().int().min(3000).max(600000).nullable().optional(),
511
+ source_composition_plan: ElevenLabsMusicCompositionPlanSchema.nullable().optional(),
512
+ model_id: ElevenLabsMusicModelIdSchema.optional(),
513
+ });
514
+ // ---------------------------------------------------------------------------
515
+ // POST /v1/music/stem-separation
516
+ // ---------------------------------------------------------------------------
517
+ export const ElevenLabsMusicStemSeparationRequestSchema = z.object({
518
+ file: z.custom((value) => value instanceof Blob),
519
+ stem_variation_id: z.enum(["two_stems_v1", "six_stems_v1"]).optional(),
520
+ sign_with_c2pa: z.boolean().optional(),
521
+ output_format: z.string().optional(),
522
+ });
523
+ // ---------------------------------------------------------------------------
524
+ // POST /v1/music/upload
525
+ // ---------------------------------------------------------------------------
526
+ export const ElevenLabsMusicUploadRequestSchema = z.object({
527
+ file: z.custom((value) => value instanceof Blob),
528
+ extract_composition_plan: z
529
+ .union([z.boolean(), z.enum(["music_v1", "music_v2"])])
530
+ .optional(),
531
+ with_timestamps: z.boolean().optional(),
532
+ });
533
+ // ---------------------------------------------------------------------------
534
+ // POST /v1/music/video-to-music
535
+ // ---------------------------------------------------------------------------
536
+ export const ElevenLabsVideoToMusicRequestSchema = z.object({
537
+ videos: z
538
+ .array(z.custom((value) => value instanceof Blob))
539
+ .min(1)
540
+ .max(10),
541
+ description: z.string().min(1).max(1000).nullable().optional(),
542
+ tags: z.array(z.string()).max(10).optional(),
543
+ model_id: ElevenLabsMusicModelIdSchema.optional(),
544
+ sign_with_c2pa: z.boolean().optional(),
545
+ output_format: z.string().optional(),
546
+ });
547
+ // ---------------------------------------------------------------------------
548
+ // Workspace administration shared schemas
549
+ // ---------------------------------------------------------------------------
550
+ const ElevenLabsWorkspaceSeatTypeSchema = z.enum([
551
+ "workspace_admin",
552
+ "workspace_member",
553
+ "workspace_lite_member",
554
+ ]);
555
+ const ElevenLabsWorkspaceResourceTypeSchema = z.enum([
556
+ "voice",
557
+ "voice_collection",
558
+ "pronunciation_dictionary",
559
+ "dubbing",
560
+ "project",
561
+ "convai_agents",
562
+ "convai_knowledge_base_documents",
563
+ "convai_tools",
564
+ "convai_settings",
565
+ "convai_secrets",
566
+ "workspace_auth_connections",
567
+ "convai_phone_numbers",
568
+ "convai_mcp_servers",
569
+ "convai_api_integration_connections",
570
+ "convai_api_integration_trigger_connections",
571
+ "convai_batch_calls",
572
+ "convai_agent_response_tests",
573
+ "convai_test_suite_invocations",
574
+ "convai_crawl_jobs",
575
+ "convai_crawl_tasks",
576
+ "convai_whatsapp_accounts",
577
+ "convai_agent_versions",
578
+ "convai_agent_branches",
579
+ "convai_agent_versions_deployments",
580
+ "convai_memory_entries",
581
+ "convai_coaching_proposals",
582
+ "convai_templates",
583
+ "dashboard",
584
+ "dashboard_configuration",
585
+ "convai_agent_drafts",
586
+ "resource_locators",
587
+ "assets",
588
+ "content_generations",
589
+ "content_templates",
590
+ "songs",
591
+ "transcription_tasks",
592
+ "avatars",
593
+ "avatar_video_generations",
594
+ "resource_collection",
595
+ "studio_projects",
596
+ ]);
597
+ const ElevenLabsWorkspaceResourceRoleSchema = z.enum([
598
+ "admin",
599
+ "editor",
600
+ "commenter",
601
+ "viewer",
602
+ ]);
603
+ const ElevenLabsWorkspaceWebhookHmacSettingsSchema = z.object({
604
+ auth_type: z.literal("hmac"),
605
+ name: z.string(),
606
+ webhook_url: z.string(),
607
+ request_headers: z.record(z.string(), z.string()).nullable().optional(),
608
+ });
609
+ const ElevenLabsWorkspaceAuthAlgorithmSchema = z.enum([
610
+ "HS256",
611
+ "HS384",
612
+ "HS512",
613
+ "RS256",
614
+ "RS384",
615
+ "RS512",
616
+ ]);
617
+ const ElevenLabsWorkspaceAuthTokenResponseFieldSchema = z.enum([
618
+ "access_token",
619
+ "id_token",
620
+ ]);
621
+ const ElevenLabsWorkspaceAuthStringMapSchema = z.record(z.string(), z.string());
622
+ // ---------------------------------------------------------------------------
623
+ // GET /v1/workspace/audit-logs
624
+ // ---------------------------------------------------------------------------
625
+ export const ElevenLabsListWorkspaceAuditLogsRequestSchema = z.object({
626
+ limit: z.number().int().min(1).max(100).optional(),
627
+ cursor: z.string().nullable().optional(),
628
+ time_from_unix_ms: z.number().int().nullable().optional(),
629
+ time_to_unix_ms: z.number().int().nullable().optional(),
630
+ actor_uid: z.string().nullable().optional(),
631
+ class_name: z.string().nullable().optional(),
632
+ activity_name: z.string().nullable().optional(),
633
+ });
634
+ // ---------------------------------------------------------------------------
635
+ // GET /v1/workspace/groups/search
636
+ // ---------------------------------------------------------------------------
637
+ export const ElevenLabsSearchWorkspaceGroupsRequestSchema = z.object({
638
+ name: z.string(),
639
+ });
640
+ // ---------------------------------------------------------------------------
641
+ // POST /v1/workspace/groups/:group_id/members
642
+ // ---------------------------------------------------------------------------
643
+ export const ElevenLabsAddWorkspaceGroupMemberRequestSchema = z.object({
644
+ email: z.string(),
645
+ });
646
+ // ---------------------------------------------------------------------------
647
+ // POST /v1/workspace/groups/:group_id/members/remove
648
+ // ---------------------------------------------------------------------------
649
+ export const ElevenLabsRemoveWorkspaceGroupMemberRequestSchema = z.object({
650
+ email: z.string(),
651
+ });
652
+ // ---------------------------------------------------------------------------
653
+ // POST /v1/workspace/members
654
+ // ---------------------------------------------------------------------------
655
+ export const ElevenLabsUpdateWorkspaceMemberRequestSchema = z.object({
656
+ email: z.string(),
657
+ is_locked: z.boolean().nullable().optional(),
658
+ workspace_role: ElevenLabsWorkspaceSeatTypeSchema.nullable().optional(),
659
+ workspace_seat_type: ElevenLabsWorkspaceSeatTypeSchema.nullable().optional(),
660
+ });
661
+ // ---------------------------------------------------------------------------
662
+ // POST /v1/workspace/invites/add
663
+ // ---------------------------------------------------------------------------
664
+ export const ElevenLabsAddWorkspaceInviteRequestSchema = z.object({
665
+ email: z.string(),
666
+ workspace_permission: z.string().nullable().optional(),
667
+ seat_type: ElevenLabsWorkspaceSeatTypeSchema.nullable().optional(),
668
+ group_ids: z.array(z.string()).nullable().optional(),
669
+ });
670
+ // ---------------------------------------------------------------------------
671
+ // POST /v1/workspace/invites/add-bulk
672
+ // ---------------------------------------------------------------------------
673
+ export const ElevenLabsAddWorkspaceInvitesBulkRequestSchema = z.object({
674
+ emails: z.array(z.string()),
675
+ seat_type: ElevenLabsWorkspaceSeatTypeSchema.nullable().optional(),
676
+ group_ids: z.array(z.string()).nullable().optional(),
677
+ });
678
+ // ---------------------------------------------------------------------------
679
+ // DELETE /v1/workspace/invites
680
+ // ---------------------------------------------------------------------------
681
+ export const ElevenLabsDeleteWorkspaceInviteRequestSchema = z.object({
682
+ email: z.string(),
683
+ });
684
+ // ---------------------------------------------------------------------------
685
+ // GET /v1/workspace/resources/:resource_id
686
+ // ---------------------------------------------------------------------------
687
+ export const ElevenLabsGetWorkspaceResourceRequestSchema = z.object({
688
+ resource_type: ElevenLabsWorkspaceResourceTypeSchema,
689
+ });
690
+ // ---------------------------------------------------------------------------
691
+ // POST /v1/workspace/resources/:resource_id/share
692
+ // ---------------------------------------------------------------------------
693
+ export const ElevenLabsShareWorkspaceResourceRequestSchema = z.object({
694
+ role: ElevenLabsWorkspaceResourceRoleSchema,
695
+ resource_type: ElevenLabsWorkspaceResourceTypeSchema,
696
+ user_email: z.string().nullable().optional(),
697
+ group_id: z.string().nullable().optional(),
698
+ workspace_api_key_id: z.string().nullable().optional(),
699
+ });
700
+ // ---------------------------------------------------------------------------
701
+ // POST /v1/workspace/resources/:resource_id/unshare
702
+ // ---------------------------------------------------------------------------
703
+ export const ElevenLabsUnshareWorkspaceResourceRequestSchema = z.object({
704
+ resource_type: ElevenLabsWorkspaceResourceTypeSchema,
705
+ user_email: z.string().nullable().optional(),
706
+ group_id: z.string().nullable().optional(),
707
+ workspace_api_key_id: z.string().nullable().optional(),
708
+ });
709
+ // ---------------------------------------------------------------------------
710
+ // GET /v1/workspace/webhooks
711
+ // ---------------------------------------------------------------------------
712
+ export const ElevenLabsListWorkspaceWebhooksRequestSchema = z.object({
713
+ include_usages: z.boolean().optional(),
714
+ });
715
+ // ---------------------------------------------------------------------------
716
+ // POST /v1/workspace/webhooks
717
+ // ---------------------------------------------------------------------------
718
+ export const ElevenLabsCreateWorkspaceWebhookRequestSchema = z.object({
719
+ settings: ElevenLabsWorkspaceWebhookHmacSettingsSchema,
720
+ });
721
+ // ---------------------------------------------------------------------------
722
+ // PATCH /v1/workspace/webhooks/:webhook_id
723
+ // ---------------------------------------------------------------------------
724
+ export const ElevenLabsUpdateWorkspaceWebhookRequestSchema = z.object({
725
+ is_disabled: z.boolean(),
726
+ name: z.string(),
727
+ retry_enabled: z.boolean().nullable().optional(),
728
+ request_headers: z.record(z.string(), z.string()).nullable().optional(),
729
+ });
730
+ const ElevenLabsCreateOAuth2ClientCredsRequestSchema = z.object({
731
+ name: z.string(),
732
+ auth_type: z.literal("oauth2_client_credentials").optional(),
733
+ provider: z.string(),
734
+ client_id: z.string(),
735
+ token_url: z.string(),
736
+ scopes: z.array(z.string()).optional(),
737
+ extra_params: ElevenLabsWorkspaceAuthStringMapSchema.optional(),
738
+ basic_auth_in_header: z.boolean().optional(),
739
+ client_secret: z.string(),
740
+ custom_headers: ElevenLabsWorkspaceAuthStringMapSchema.optional(),
741
+ });
742
+ const ElevenLabsCreateCustomHeaderAuthRequestSchema = z.object({
743
+ name: z.string(),
744
+ auth_type: z.literal("custom_header_auth").optional(),
745
+ provider: z.string(),
746
+ header_name: z.string(),
747
+ token: z.string(),
748
+ });
749
+ const ElevenLabsCreateBasicAuthRequestSchema = z.object({
750
+ name: z.string(),
751
+ auth_type: z.literal("basic_auth").optional(),
752
+ provider: z.string(),
753
+ username: z.string(),
754
+ password: z.string(),
755
+ });
756
+ const ElevenLabsCreateBearerAuthRequestSchema = z.object({
757
+ name: z.string(),
758
+ auth_type: z.literal("bearer_auth").optional(),
759
+ provider: z.string(),
760
+ token: z.string(),
761
+ });
762
+ const ElevenLabsCreateOAuth2JwtRequestSchema = z.object({
763
+ name: z.string(),
764
+ auth_type: z.literal("oauth2_jwt").optional(),
765
+ provider: z.string(),
766
+ algorithm: ElevenLabsWorkspaceAuthAlgorithmSchema.optional(),
767
+ key_id: z.string().nullable().optional(),
768
+ issuer: z.string(),
769
+ audience: z.string(),
770
+ subject: z.string(),
771
+ expiration_seconds: z.number().int().min(60).max(86400).optional(),
772
+ extra_params: ElevenLabsWorkspaceAuthStringMapSchema.optional(),
773
+ token_url: z.string(),
774
+ scopes: z.array(z.string()).optional(),
775
+ token_response_field: ElevenLabsWorkspaceAuthTokenResponseFieldSchema.optional(),
776
+ secret_key: z.string(),
777
+ });
778
+ const ElevenLabsCreatePrivateKeyJwtRequestSchema = z.object({
779
+ name: z.string(),
780
+ auth_type: z.literal("private_key_jwt").optional(),
781
+ provider: z.string(),
782
+ algorithm: ElevenLabsWorkspaceAuthAlgorithmSchema.optional(),
783
+ key_id: z.string().nullable().optional(),
784
+ issuer: z.string(),
785
+ audience: z.string(),
786
+ subject: z.string(),
787
+ expiration_seconds: z.number().int().min(60).max(86400).optional(),
788
+ extra_params: ElevenLabsWorkspaceAuthStringMapSchema.optional(),
789
+ secret_key: z.string(),
790
+ });
791
+ const ElevenLabsCreateMtlsAuthRequestSchema = z.object({
792
+ name: z.string(),
793
+ auth_type: z.literal("mtls").optional(),
794
+ provider: z.string(),
795
+ client_certificate: z.string(),
796
+ client_key: z.string(),
797
+ ca_certificate: z.string().nullable().optional(),
798
+ key_passphrase: z.string().nullable().optional(),
799
+ });
800
+ // ---------------------------------------------------------------------------
801
+ // POST /v1/workspace/auth-connections
802
+ // ---------------------------------------------------------------------------
803
+ export const ElevenLabsCreateWorkspaceAuthConnectionRequestSchema = z.union([
804
+ ElevenLabsCreateOAuth2ClientCredsRequestSchema,
805
+ ElevenLabsCreateCustomHeaderAuthRequestSchema,
806
+ ElevenLabsCreateBasicAuthRequestSchema,
807
+ ElevenLabsCreateBearerAuthRequestSchema,
808
+ ElevenLabsCreateOAuth2JwtRequestSchema,
809
+ ElevenLabsCreatePrivateKeyJwtRequestSchema,
810
+ ElevenLabsCreateMtlsAuthRequestSchema,
811
+ ]);
812
+ const ElevenLabsUpdateOAuth2ClientCredsRequestSchema = z.object({
813
+ auth_type: z.literal("oauth2_client_credentials").optional(),
814
+ provider: z.string().nullable().optional(),
815
+ client_id: z.string().nullable().optional(),
816
+ scopes: z.array(z.string()).nullable().optional(),
817
+ extra_params: ElevenLabsWorkspaceAuthStringMapSchema.nullable().optional(),
818
+ basic_auth_in_header: z.boolean().nullable().optional(),
819
+ client_secret: z.string().nullable().optional(),
820
+ custom_headers: ElevenLabsWorkspaceAuthStringMapSchema.nullable().optional(),
821
+ });
822
+ const ElevenLabsUpdateBasicAuthRequestSchema = z.object({
823
+ auth_type: z.literal("basic_auth").optional(),
824
+ provider: z.string().nullable().optional(),
825
+ username: z.string().nullable().optional(),
826
+ password: z.string().nullable().optional(),
827
+ });
828
+ const ElevenLabsUpdateBearerAuthRequestSchema = z.object({
829
+ auth_type: z.literal("bearer_auth").optional(),
830
+ provider: z.string().nullable().optional(),
831
+ token: z.string().nullable().optional(),
832
+ });
833
+ const ElevenLabsUpdateOAuth2JwtRequestSchema = z.object({
834
+ auth_type: z.literal("oauth2_jwt").optional(),
835
+ provider: z.string().nullable().optional(),
836
+ algorithm: ElevenLabsWorkspaceAuthAlgorithmSchema.nullable().optional(),
837
+ key_id: z.string().nullable().optional(),
838
+ issuer: z.string().nullable().optional(),
839
+ audience: z.string().nullable().optional(),
840
+ subject: z.string().nullable().optional(),
841
+ expiration_seconds: z.number().int().min(60).max(86400).nullable().optional(),
842
+ extra_params: ElevenLabsWorkspaceAuthStringMapSchema.nullable().optional(),
843
+ scopes: z.array(z.string()).nullable().optional(),
844
+ token_response_field: ElevenLabsWorkspaceAuthTokenResponseFieldSchema.nullable().optional(),
845
+ secret_key: z.string().nullable().optional(),
846
+ });
847
+ // ---------------------------------------------------------------------------
848
+ // PATCH /v1/workspace/auth-connections/:auth_connection_id
849
+ // ---------------------------------------------------------------------------
850
+ export const ElevenLabsUpdateWorkspaceAuthConnectionRequestSchema = z.union([
851
+ ElevenLabsUpdateOAuth2ClientCredsRequestSchema,
852
+ ElevenLabsUpdateBasicAuthRequestSchema,
853
+ ElevenLabsUpdateBearerAuthRequestSchema,
854
+ ElevenLabsUpdateOAuth2JwtRequestSchema,
855
+ ]);
856
+ // ---------------------------------------------------------------------------
857
+ // POST /v1/workspaces/api-keys/disable
858
+ // ---------------------------------------------------------------------------
859
+ export const ElevenLabsDisableWorkspaceApiKeyRequestSchema = z.object({
860
+ api_key_name: z.literal("self"),
861
+ });
862
+ // ---------------------------------------------------------------------------
863
+ // POST /v1/workspaces/api-keys/third-party-disabling
864
+ // ---------------------------------------------------------------------------
865
+ export const ElevenLabsSetWorkspaceApiKeyThirdPartyDisablingRequestSchema = z.object({
866
+ third_party_disable_allowed: z.boolean().nullable().optional(),
867
+ });
868
+ // ---------------------------------------------------------------------------
869
+ // Service account shared schemas
870
+ // ---------------------------------------------------------------------------
871
+ const ElevenLabsServiceAccountPermissionSchema = z.enum([
872
+ "text_to_speech",
873
+ "speech_to_speech",
874
+ "speech_to_text",
875
+ "models_read",
876
+ "models_write",
877
+ "voices_read",
878
+ "voices_write",
879
+ "speech_history_read",
880
+ "speech_history_write",
881
+ "sound_generation",
882
+ "audio_isolation",
883
+ "voice_generation",
884
+ "dubbing_read",
885
+ "dubbing_write",
886
+ "pronunciation_dictionaries_read",
887
+ "pronunciation_dictionaries_write",
888
+ "user_read",
889
+ "user_write",
890
+ "projects_read",
891
+ "projects_write",
892
+ "audio_native_read",
893
+ "audio_native_write",
894
+ "workspace_read",
895
+ "workspace_write",
896
+ "forced_alignment",
897
+ "convai_read",
898
+ "convai_write",
899
+ "music_generation",
900
+ "image_video_generation",
901
+ "add_voice_from_voice_library",
902
+ "create_instant_voice_clone",
903
+ "create_professional_voice_clone",
904
+ "publish_voice_to_voice_library",
905
+ "share_voice_externally",
906
+ "create_user_api_key",
907
+ "workspace_analytics_full_read",
908
+ "webhooks_write",
909
+ "service_account_write",
910
+ "group_members_manage",
911
+ "workspace_members_read",
912
+ "workspace_members_invite",
913
+ "workspace_members_remove",
914
+ "terms_of_service_accept",
915
+ "audit_log_read",
916
+ "conversation_privacy_manage",
917
+ "copy_resources_cross_workspace",
918
+ "synthid_detector",
919
+ ]);
920
+ const ElevenLabsServiceAccountPermissionsSchema = z.union([
921
+ z.array(ElevenLabsServiceAccountPermissionSchema),
922
+ z.literal("all"),
923
+ ]);
924
+ const ElevenLabsAllowedIpsSchema = z.array(z.string()).min(1).max(100);
925
+ // ---------------------------------------------------------------------------
926
+ // POST /v1/service-accounts/:service_account_user_id/api-keys
927
+ // ---------------------------------------------------------------------------
928
+ export const ElevenLabsCreateServiceAccountApiKeyRequestSchema = z.object({
929
+ name: z.string(),
930
+ permissions: ElevenLabsServiceAccountPermissionsSchema,
931
+ character_limit: z.number().int().nullable().optional(),
932
+ allowed_ips: ElevenLabsAllowedIpsSchema.nullable().optional(),
933
+ third_party_disable_allowed: z.boolean().nullable().optional(),
934
+ });
935
+ // ---------------------------------------------------------------------------
936
+ // PATCH /v1/service-accounts/:service_account_user_id/api-keys/:api_key_id
937
+ // ---------------------------------------------------------------------------
938
+ export const ElevenLabsUpdateServiceAccountApiKeyRequestSchema = z.object({
939
+ is_enabled: z.union([z.boolean(), z.literal("no_update")]).optional(),
940
+ name: z.string().nullable().optional(),
941
+ permissions: z
942
+ .union([
943
+ z.array(ElevenLabsServiceAccountPermissionSchema),
944
+ z.enum(["all", "no_update"]),
945
+ ])
946
+ .optional(),
947
+ character_limit: z
948
+ .union([z.number().int(), z.literal("no_update"), z.null()])
949
+ .optional(),
950
+ allowed_ips: z
951
+ .union([ElevenLabsAllowedIpsSchema, z.enum(["clear", "no_update"])])
952
+ .optional(),
953
+ third_party_disable_allowed: z
954
+ .union([z.boolean(), z.enum(["clear", "no_update"])])
955
+ .optional(),
956
+ });
957
+ // ---------------------------------------------------------------------------
209
958
  // Workspace analytics shared schemas
210
959
  // ---------------------------------------------------------------------------
211
960
  const ElevenLabsWorkspaceAnalyticsGroupBySchema = z.enum([
@@ -351,61 +1100,661 @@ export const ElevenLabsGetAgentWidgetRequestSchema = z.object({
351
1100
  conversation_signature: z.string().optional(),
352
1101
  });
353
1102
  // ---------------------------------------------------------------------------
354
- // Agents Platform (Conversational AI) — Tools
1103
+ // GET /v1/convai/agents/:agent_id/branches
355
1104
  // ---------------------------------------------------------------------------
356
- // `tool_config` is a discriminated union over four tool types (client, webhook,
357
- // system, mcp), each a large nested config tree; `response_mocks` are equally
358
- // open-ended. We keep both as permissive records so the schema stays a thin
359
- // metadata surface — callers compose the nested config themselves and the
360
- // server passes it straight through.
361
- const ElevenLabsToolConfigObjectSchema = z.record(z.string(), z.unknown());
1105
+ export const ElevenLabsListAgentBranchesRequestSchema = z.object({
1106
+ include_archived: z.boolean().optional(),
1107
+ limit: z.number().int().optional(),
1108
+ });
362
1109
  // ---------------------------------------------------------------------------
363
- // POST /v1/convai/tools
1110
+ // GET /v1/convai/agents/summaries
364
1111
  // ---------------------------------------------------------------------------
365
- export const ElevenLabsCreateToolRequestSchema = z.object({
366
- tool_config: ElevenLabsToolConfigObjectSchema,
367
- response_mocks: z
368
- .array(ElevenLabsToolConfigObjectSchema)
369
- .nullable()
370
- .optional(),
1112
+ export const ElevenLabsGetAgentSummariesRequestSchema = z.object({
1113
+ agent_ids: z.array(z.string()).max(100),
371
1114
  });
372
1115
  // ---------------------------------------------------------------------------
373
- // GET /v1/convai/tools
1116
+ // POST /v1/convai/agents/:agent_id/duplicate
374
1117
  // ---------------------------------------------------------------------------
375
- export const ElevenLabsListToolsRequestSchema = z.object({
376
- search: z.string().nullable().optional(),
377
- page_size: z.number().int().min(1).max(100).optional(),
378
- show_only_owned_documents: z.boolean().optional(),
379
- created_by_user_id: z.string().nullable().optional(),
380
- types: z
381
- .array(z.enum(["webhook", "client", "api_integration_webhook"]))
382
- .nullable()
383
- .optional(),
384
- sort_direction: z.enum(["asc", "desc"]).optional(),
385
- sort_by: z.enum(["name", "created_at"]).optional(),
386
- cursor: z.string().nullable().optional(),
1118
+ export const ElevenLabsDuplicateAgentRequestSchema = z.object({
1119
+ name: z.string().nullable().optional(),
387
1120
  });
388
1121
  // ---------------------------------------------------------------------------
389
- // PATCH /v1/convai/tools/:tool_id
1122
+ // POST /v1/convai/agents/:agent_id/avatar
390
1123
  // ---------------------------------------------------------------------------
391
- export const ElevenLabsUpdateToolRequestSchema = z.object({
392
- tool_config: ElevenLabsToolConfigObjectSchema,
393
- response_mocks: z
394
- .array(ElevenLabsToolConfigObjectSchema)
1124
+ export const ElevenLabsPostAgentAvatarRequestSchema = z.object({
1125
+ avatar_file: z.custom((value) => value instanceof Blob),
1126
+ });
1127
+ // ---------------------------------------------------------------------------
1128
+ // POST /v1/convai/agents/:agent_id/simulate-conversation
1129
+ // ---------------------------------------------------------------------------
1130
+ export const ElevenLabsSimulateConversationRequestSchema = z.object({
1131
+ simulation_specification: ElevenLabsAgentConfigObjectSchema,
1132
+ extra_evaluation_criteria: z
1133
+ .array(ElevenLabsAgentConfigObjectSchema)
395
1134
  .nullable()
396
1135
  .optional(),
1136
+ new_turns_limit: z.number().int().optional(),
397
1137
  });
398
1138
  // ---------------------------------------------------------------------------
399
- // Agents Platform — Knowledge Base
1139
+ // GET /v1/convai/agents/:agent_id/topics
400
1140
  // ---------------------------------------------------------------------------
1141
+ export const ElevenLabsGetAgentTopicsRequestSchema = z.object({
1142
+ from_unix_secs: z.number().int().nullable().optional(),
1143
+ to_unix_secs: z.number().int().nullable().optional(),
1144
+ });
401
1145
  // ---------------------------------------------------------------------------
402
- // POST /v1/convai/knowledge-base/url
1146
+ // POST /v1/convai/agent/:agent_id/llm-usage/calculate
403
1147
  // ---------------------------------------------------------------------------
404
- export const ElevenLabsCreateKnowledgeBaseDocumentFromUrlRequestSchema = z.object({
405
- url: z.string().url(),
406
- name: z.string().nullable().optional(),
407
- parent_folder_id: z.string().nullable().optional(),
408
- enable_auto_sync: z.boolean().optional(),
1148
+ export const ElevenLabsCalculateAgentLlmUsageRequestSchema = z.object({
1149
+ prompt_length: z.number().int().nullable().optional(),
1150
+ number_of_pages: z.number().int().nullable().optional(),
1151
+ rag_enabled: z.boolean().nullable().optional(),
1152
+ });
1153
+ // ---------------------------------------------------------------------------
1154
+ // POST/DELETE /v1/convai/agents/:agent_id/drafts
1155
+ // ---------------------------------------------------------------------------
1156
+ export const ElevenLabsCreateAgentDraftRequestSchema = z.object({
1157
+ branch_id: z.string(),
1158
+ conversation_config: ElevenLabsAgentConfigObjectSchema,
1159
+ platform_settings: ElevenLabsAgentConfigObjectSchema,
1160
+ workflow: ElevenLabsAgentConfigObjectSchema,
1161
+ name: z.string(),
1162
+ tags: z.array(z.string()).nullable().optional(),
1163
+ });
1164
+ export const ElevenLabsDeleteAgentDraftRequestSchema = z.object({
1165
+ branch_id: z.string(),
1166
+ });
1167
+ // ---------------------------------------------------------------------------
1168
+ // POST /v1/convai/agents/:agent_id/deployments
1169
+ // ---------------------------------------------------------------------------
1170
+ export const ElevenLabsCreateAgentDeploymentRequestSchema = z.object({
1171
+ deployment_request: z.object({
1172
+ requests: z.array(z.object({
1173
+ branch_id: z.string(),
1174
+ deployment_strategy: ElevenLabsAgentConfigObjectSchema,
1175
+ })),
1176
+ }),
1177
+ });
1178
+ // ---------------------------------------------------------------------------
1179
+ // POST/PATCH /v1/convai/agents/:agent_id/branches
1180
+ // ---------------------------------------------------------------------------
1181
+ const ElevenLabsAgentBranchProtectionStatusSchema = z.enum([
1182
+ "writer_perms_required",
1183
+ "admin_perms_required",
1184
+ ]);
1185
+ export const ElevenLabsCreateAgentBranchRequestSchema = z.object({
1186
+ parent_version_id: z.string(),
1187
+ name: z.string(),
1188
+ description: z.string(),
1189
+ conversation_config: ElevenLabsAgentConfigObjectSchema.nullable().optional(),
1190
+ platform_settings: ElevenLabsAgentConfigObjectSchema.nullable().optional(),
1191
+ workflow: ElevenLabsAgentConfigObjectSchema.nullable().optional(),
1192
+ });
1193
+ export const ElevenLabsUpdateAgentBranchRequestSchema = z.object({
1194
+ name: z.string().nullable().optional(),
1195
+ is_archived: z.boolean().nullable().optional(),
1196
+ protection_status: ElevenLabsAgentBranchProtectionStatusSchema.nullable().optional(),
1197
+ });
1198
+ export const ElevenLabsMergeAgentBranchRequestSchema = z.object({
1199
+ target_branch_id: z.string(),
1200
+ archive_source_branch: z.boolean().optional(),
1201
+ force: z.boolean().optional(),
1202
+ });
1203
+ export const ElevenLabsPreviewAgentBranchMergeRequestSchema = z.object({
1204
+ target_branch_id: z.string(),
1205
+ force: z.boolean().optional(),
1206
+ });
1207
+ // ---------------------------------------------------------------------------
1208
+ // GET /v1/convai/analytics/live-count
1209
+ // ---------------------------------------------------------------------------
1210
+ export const ElevenLabsGetLiveConversationCountRequestSchema = z.object({
1211
+ agent_id: z.string().nullable().optional(),
1212
+ });
1213
+ // ---------------------------------------------------------------------------
1214
+ // Agents Platform (Conversational AI) — Misc
1215
+ // ---------------------------------------------------------------------------
1216
+ // ---------------------------------------------------------------------------
1217
+ // GET /v1/convai/users
1218
+ // ---------------------------------------------------------------------------
1219
+ export const ElevenLabsListConversationUsersRequestSchema = z.object({
1220
+ agent_id: z.string().nullable().optional(),
1221
+ branch_id: z.string().nullable().optional(),
1222
+ call_start_before_unix: z.number().int().nullable().optional(),
1223
+ call_start_after_unix: z.number().int().nullable().optional(),
1224
+ search: z.string().nullable().optional(),
1225
+ page_size: z.number().int().min(1).max(100).optional(),
1226
+ sort_by: z.enum(["last_contact_unix_secs", "conversation_count"]).optional(),
1227
+ cursor: z.string().nullable().optional(),
1228
+ });
1229
+ // ---------------------------------------------------------------------------
1230
+ // POST /v1/convai/llm-usage/calculate
1231
+ // ---------------------------------------------------------------------------
1232
+ export const ElevenLabsCalculateLlmUsageRequestSchema = z.object({
1233
+ prompt_length: z.number().int(),
1234
+ number_of_pages: z.number().int(),
1235
+ rag_enabled: z.boolean(),
1236
+ });
1237
+ // ---------------------------------------------------------------------------
1238
+ // Agents Platform (Conversational AI) — Conversation Tags
1239
+ // ---------------------------------------------------------------------------
1240
+ // ---------------------------------------------------------------------------
1241
+ // GET /v1/convai/tags
1242
+ // ---------------------------------------------------------------------------
1243
+ export const ElevenLabsListConversationTagsRequestSchema = z.object({
1244
+ page_size: z.number().int().min(1).max(100).optional(),
1245
+ cursor: z.string().nullable().optional(),
1246
+ });
1247
+ // ---------------------------------------------------------------------------
1248
+ // POST /v1/convai/tags
1249
+ // ---------------------------------------------------------------------------
1250
+ export const ElevenLabsCreateConversationTagRequestSchema = z.object({
1251
+ title: z.string().min(1).max(120),
1252
+ description: z.string().max(1000).nullable().optional(),
1253
+ });
1254
+ // ---------------------------------------------------------------------------
1255
+ // PATCH /v1/convai/tags/:tag_id
1256
+ // ---------------------------------------------------------------------------
1257
+ export const ElevenLabsUpdateConversationTagRequestSchema = z.object({
1258
+ title: z.string().min(1).max(120).nullable().optional(),
1259
+ description: z.string().max(1000).nullable().optional(),
1260
+ });
1261
+ // ---------------------------------------------------------------------------
1262
+ // Agents Platform (Conversational AI) — Settings / Secrets / Env Variables
1263
+ // ---------------------------------------------------------------------------
1264
+ const ElevenLabsConvaiSecretLocatorSchema = z.object({
1265
+ secret_id: z.string(),
1266
+ });
1267
+ const ElevenLabsConvaiClientDataWebhookSchema = z.object({
1268
+ url: z.string(),
1269
+ request_headers: z.record(z.string(), z.union([z.string(), ElevenLabsConvaiSecretLocatorSchema])),
1270
+ });
1271
+ const ElevenLabsConvaiWebhookEventSchema = z.enum([
1272
+ "transcript",
1273
+ "audio",
1274
+ "call_initiation_failure",
1275
+ "unredacted_transcript",
1276
+ "unredacted_audio",
1277
+ ]);
1278
+ const ElevenLabsConvaiWebhookTranscriptFormatSchema = z.enum([
1279
+ "json",
1280
+ "opentelemetry",
1281
+ ]);
1282
+ const ElevenLabsConvaiWebhooksSchema = z.object({
1283
+ post_call_webhook_id: z.string().nullable().optional(),
1284
+ events: z.array(ElevenLabsConvaiWebhookEventSchema).optional(),
1285
+ transcript_format: ElevenLabsConvaiWebhookTranscriptFormatSchema.optional(),
1286
+ send_audio: z.boolean().nullable().optional(),
1287
+ });
1288
+ const ElevenLabsConvaiSettingsSchema = z.object({
1289
+ conversation_initiation_client_data_webhook: ElevenLabsConvaiClientDataWebhookSchema.nullable().optional(),
1290
+ webhooks: ElevenLabsConvaiWebhooksSchema.optional(),
1291
+ can_use_mcp_servers: z.boolean().optional(),
1292
+ rag_retention_period_days: z.number().int().min(1).max(30).optional(),
1293
+ conversation_embedding_retention_days: z
1294
+ .number()
1295
+ .int()
1296
+ .min(1)
1297
+ .max(365)
1298
+ .nullable()
1299
+ .optional(),
1300
+ default_livekit_stack: z.enum(["standard", "static"]).optional(),
1301
+ });
1302
+ // ---------------------------------------------------------------------------
1303
+ // PATCH /v1/convai/settings
1304
+ // ---------------------------------------------------------------------------
1305
+ export const ElevenLabsUpdateConvaiSettingsRequestSchema = ElevenLabsConvaiSettingsSchema;
1306
+ const ElevenLabsConvaiDashboardCallSuccessChartSchema = z.object({
1307
+ name: z.string(),
1308
+ type: z.literal("call_success").optional(),
1309
+ });
1310
+ const ElevenLabsConvaiDashboardCriteriaChartSchema = z.object({
1311
+ name: z.string(),
1312
+ type: z.literal("criteria").optional(),
1313
+ criteria_id: z.string(),
1314
+ });
1315
+ const ElevenLabsConvaiDashboardDataCollectionChartSchema = z.object({
1316
+ name: z.string(),
1317
+ type: z.literal("data_collection").optional(),
1318
+ data_collection_id: z.string(),
1319
+ });
1320
+ const ElevenLabsConvaiDashboardChartSchema = z.union([
1321
+ ElevenLabsConvaiDashboardCallSuccessChartSchema,
1322
+ ElevenLabsConvaiDashboardCriteriaChartSchema,
1323
+ ElevenLabsConvaiDashboardDataCollectionChartSchema,
1324
+ ]);
1325
+ // ---------------------------------------------------------------------------
1326
+ // PATCH /v1/convai/settings/dashboard
1327
+ // ---------------------------------------------------------------------------
1328
+ export const ElevenLabsUpdateConvaiDashboardSettingsRequestSchema = z.object({
1329
+ charts: z.array(ElevenLabsConvaiDashboardChartSchema).max(4).optional(),
1330
+ });
1331
+ // ---------------------------------------------------------------------------
1332
+ // POST /v1/convai/secrets
1333
+ // ---------------------------------------------------------------------------
1334
+ export const ElevenLabsCreateWorkspaceSecretRequestSchema = z.object({
1335
+ type: z.literal("new"),
1336
+ name: z.string(),
1337
+ value: z.string(),
1338
+ });
1339
+ // ---------------------------------------------------------------------------
1340
+ // GET /v1/convai/secrets
1341
+ // ---------------------------------------------------------------------------
1342
+ export const ElevenLabsListWorkspaceSecretsRequestSchema = z.object({
1343
+ page_size: z.number().int().min(1).max(100).nullable().optional(),
1344
+ dependency_limit: z.number().int().min(1).max(100).nullable().optional(),
1345
+ search: z.string().nullable().optional(),
1346
+ cursor: z.string().nullable().optional(),
1347
+ });
1348
+ // ---------------------------------------------------------------------------
1349
+ // PATCH /v1/convai/secrets/:secret_id
1350
+ // ---------------------------------------------------------------------------
1351
+ export const ElevenLabsUpdateWorkspaceSecretRequestSchema = z.object({
1352
+ type: z.literal("update"),
1353
+ name: z.string(),
1354
+ value: z.string(),
1355
+ });
1356
+ // ---------------------------------------------------------------------------
1357
+ // GET /v1/convai/secrets/:secret_id/dependencies/:resource_type
1358
+ // ---------------------------------------------------------------------------
1359
+ export const ElevenLabsGetSecretDependenciesRequestSchema = z.object({
1360
+ page_size: z.number().int().min(1).max(100).optional(),
1361
+ cursor: z.string().nullable().optional(),
1362
+ });
1363
+ const ElevenLabsEnvironmentVariableSecretValueRequestSchema = z.object({
1364
+ secret_id: z.string(),
1365
+ });
1366
+ const ElevenLabsEnvironmentVariableAuthConnectionValueRequestSchema = z.object({
1367
+ auth_connection_id: z.string(),
1368
+ });
1369
+ const ElevenLabsEnvironmentVariableTypeSchema = z.enum([
1370
+ "string",
1371
+ "secret",
1372
+ "auth_connection",
1373
+ ]);
1374
+ const ElevenLabsEnvironmentVariableLabelSchema = z
1375
+ .string()
1376
+ .regex(/^[a-z][a-z0-9_]{0,63}$/);
1377
+ // ---------------------------------------------------------------------------
1378
+ // GET /v1/convai/environment-variables
1379
+ // ---------------------------------------------------------------------------
1380
+ export const ElevenLabsListEnvironmentVariablesRequestSchema = z.object({
1381
+ cursor: z.string().nullable().optional(),
1382
+ page_size: z.number().int().min(1).max(100).optional(),
1383
+ label: z.string().nullable().optional(),
1384
+ environment: z.string().nullable().optional(),
1385
+ type: ElevenLabsEnvironmentVariableTypeSchema.nullable().optional(),
1386
+ });
1387
+ // ---------------------------------------------------------------------------
1388
+ // POST /v1/convai/environment-variables
1389
+ // ---------------------------------------------------------------------------
1390
+ export const ElevenLabsCreateEnvironmentVariableRequestSchema = z.discriminatedUnion("type", [
1391
+ z.object({
1392
+ type: z.literal("string"),
1393
+ label: ElevenLabsEnvironmentVariableLabelSchema,
1394
+ values: z.record(z.string(), z.string().min(1)),
1395
+ }),
1396
+ z.object({
1397
+ type: z.literal("secret"),
1398
+ label: ElevenLabsEnvironmentVariableLabelSchema,
1399
+ values: z.record(z.string(), ElevenLabsEnvironmentVariableSecretValueRequestSchema),
1400
+ }),
1401
+ z.object({
1402
+ type: z.literal("auth_connection"),
1403
+ label: ElevenLabsEnvironmentVariableLabelSchema,
1404
+ values: z.record(z.string(), ElevenLabsEnvironmentVariableAuthConnectionValueRequestSchema),
1405
+ }),
1406
+ ]);
1407
+ const ElevenLabsEnvironmentVariableUpdateValueSchema = z.union([
1408
+ z.string().min(1),
1409
+ ElevenLabsEnvironmentVariableSecretValueRequestSchema,
1410
+ ElevenLabsEnvironmentVariableAuthConnectionValueRequestSchema,
1411
+ z.null(),
1412
+ ]);
1413
+ // ---------------------------------------------------------------------------
1414
+ // PATCH /v1/convai/environment-variables/:env_var_id
1415
+ // ---------------------------------------------------------------------------
1416
+ export const ElevenLabsUpdateEnvironmentVariableRequestSchema = z.object({
1417
+ values: z.record(z.string(), ElevenLabsEnvironmentVariableUpdateValueSchema),
1418
+ });
1419
+ // ---------------------------------------------------------------------------
1420
+ // Agents Platform (Conversational AI) — Tools
1421
+ // ---------------------------------------------------------------------------
1422
+ // `tool_config` is a discriminated union over four tool types (client, webhook,
1423
+ // system, mcp), each a large nested config tree; `response_mocks` are equally
1424
+ // open-ended. We keep both as permissive records so the schema stays a thin
1425
+ // metadata surface — callers compose the nested config themselves and the
1426
+ // server passes it straight through.
1427
+ const ElevenLabsToolConfigObjectSchema = z.record(z.string(), z.unknown());
1428
+ // ---------------------------------------------------------------------------
1429
+ // POST /v1/convai/tools
1430
+ // ---------------------------------------------------------------------------
1431
+ export const ElevenLabsCreateToolRequestSchema = z.object({
1432
+ tool_config: ElevenLabsToolConfigObjectSchema,
1433
+ response_mocks: z
1434
+ .array(ElevenLabsToolConfigObjectSchema)
1435
+ .nullable()
1436
+ .optional(),
1437
+ });
1438
+ // ---------------------------------------------------------------------------
1439
+ // GET /v1/convai/tools
1440
+ // ---------------------------------------------------------------------------
1441
+ export const ElevenLabsListToolsRequestSchema = z.object({
1442
+ search: z.string().nullable().optional(),
1443
+ page_size: z.number().int().min(1).max(100).optional(),
1444
+ show_only_owned_documents: z.boolean().optional(),
1445
+ created_by_user_id: z.string().nullable().optional(),
1446
+ types: z
1447
+ .array(z.enum(["webhook", "client", "api_integration_webhook"]))
1448
+ .nullable()
1449
+ .optional(),
1450
+ sort_direction: z.enum(["asc", "desc"]).optional(),
1451
+ sort_by: z.enum(["name", "created_at"]).optional(),
1452
+ cursor: z.string().nullable().optional(),
1453
+ });
1454
+ // ---------------------------------------------------------------------------
1455
+ // PATCH /v1/convai/tools/:tool_id
1456
+ // ---------------------------------------------------------------------------
1457
+ export const ElevenLabsUpdateToolRequestSchema = z.object({
1458
+ tool_config: ElevenLabsToolConfigObjectSchema,
1459
+ response_mocks: z
1460
+ .array(ElevenLabsToolConfigObjectSchema)
1461
+ .nullable()
1462
+ .optional(),
1463
+ });
1464
+ // ---------------------------------------------------------------------------
1465
+ // GET /v1/convai/tools/:tool_id/dependent-agents
1466
+ // ---------------------------------------------------------------------------
1467
+ export const ElevenLabsGetToolDependentAgentsRequestSchema = z.object({
1468
+ cursor: z.string().nullable().optional(),
1469
+ page_size: z.number().int().min(1).max(100).optional(),
1470
+ });
1471
+ // ---------------------------------------------------------------------------
1472
+ // GET /v1/convai/tools/:tool_id/executions
1473
+ // ---------------------------------------------------------------------------
1474
+ export const ElevenLabsGetToolExecutionsRequestSchema = z.object({
1475
+ cursor: z.string().nullable().optional(),
1476
+ page_size: z.number().int().min(1).max(100).optional(),
1477
+ is_error: z.boolean().nullable().optional(),
1478
+ agent_id: z.string().nullable().optional(),
1479
+ branch_id: z.string().nullable().optional(),
1480
+ start_time: z.number().nullable().optional(),
1481
+ end_time: z.number().nullable().optional(),
1482
+ });
1483
+ // ---------------------------------------------------------------------------
1484
+ // Agents Platform (Conversational AI) — MCP Servers
1485
+ // ---------------------------------------------------------------------------
1486
+ const ElevenLabsMcpApprovalPolicySchema = z.enum([
1487
+ "auto_approve_all",
1488
+ "require_approval_all",
1489
+ "require_approval_per_tool",
1490
+ ]);
1491
+ const ElevenLabsMcpToolApprovalPolicySchema = z.enum([
1492
+ "auto_approved",
1493
+ "requires_approval",
1494
+ ]);
1495
+ const ElevenLabsMcpServerTransportSchema = z.enum(["SSE", "STREAMABLE_HTTP"]);
1496
+ const ElevenLabsPreToolSpeechModeSchema = z.enum(["auto", "force", "off"]);
1497
+ const ElevenLabsToolCallSoundTypeSchema = z.enum([
1498
+ "typing",
1499
+ "elevator1",
1500
+ "elevator2",
1501
+ "elevator3",
1502
+ "elevator4",
1503
+ ]);
1504
+ const ElevenLabsToolCallSoundBehaviorSchema = z.enum(["auto", "always"]);
1505
+ const ElevenLabsToolExecutionModeSchema = z.enum([
1506
+ "immediate",
1507
+ "post_tool_speech",
1508
+ "async",
1509
+ ]);
1510
+ const ElevenLabsMcpConfigObjectSchema = z.record(z.string(), z.unknown());
1511
+ const ElevenLabsMcpHeaderValueSchema = z.union([
1512
+ z.string(),
1513
+ ElevenLabsMcpConfigObjectSchema,
1514
+ ]);
1515
+ const ElevenLabsMcpResponseTimeoutSchema = z.number().int().min(5).max(300);
1516
+ const ElevenLabsMcpToolApprovalHashSchema = z.object({
1517
+ tool_name: z.string(),
1518
+ tool_hash: z.string(),
1519
+ approval_policy: ElevenLabsMcpToolApprovalPolicySchema.optional(),
1520
+ });
1521
+ const ElevenLabsMcpToolConfigOverrideBaseSchema = z.object({
1522
+ force_pre_tool_speech: z.boolean().nullable().optional(),
1523
+ pre_tool_speech: ElevenLabsPreToolSpeechModeSchema.nullable().optional(),
1524
+ disable_interruptions: z.boolean().nullable().optional(),
1525
+ tool_call_sound: ElevenLabsToolCallSoundTypeSchema.nullable().optional(),
1526
+ tool_call_sound_behavior: ElevenLabsToolCallSoundBehaviorSchema.nullable().optional(),
1527
+ execution_mode: ElevenLabsToolExecutionModeSchema.nullable().optional(),
1528
+ response_timeout_secs: ElevenLabsMcpResponseTimeoutSchema.nullable().optional(),
1529
+ assignments: z.array(ElevenLabsMcpConfigObjectSchema).nullable().optional(),
1530
+ input_overrides: z
1531
+ .record(z.string(), ElevenLabsMcpConfigObjectSchema)
1532
+ .nullable()
1533
+ .optional(),
1534
+ response_mocks: z
1535
+ .array(ElevenLabsMcpConfigObjectSchema)
1536
+ .nullable()
1537
+ .optional(),
1538
+ });
1539
+ const ElevenLabsMcpToolConfigOverrideWithNameSchema = ElevenLabsMcpToolConfigOverrideBaseSchema.extend({
1540
+ tool_name: z.string(),
1541
+ });
1542
+ // ---------------------------------------------------------------------------
1543
+ // POST /v1/convai/mcp-servers
1544
+ // ---------------------------------------------------------------------------
1545
+ export const ElevenLabsCreateMcpServerRequestSchema = z.object({
1546
+ config: z.object({
1547
+ approval_policy: ElevenLabsMcpApprovalPolicySchema.optional(),
1548
+ tool_approval_hashes: z
1549
+ .array(ElevenLabsMcpToolApprovalHashSchema)
1550
+ .optional(),
1551
+ transport: ElevenLabsMcpServerTransportSchema.optional(),
1552
+ url: z.union([z.string(), ElevenLabsMcpConfigObjectSchema]),
1553
+ secret_token: ElevenLabsMcpConfigObjectSchema.nullable().optional(),
1554
+ request_headers: z
1555
+ .record(z.string(), ElevenLabsMcpHeaderValueSchema)
1556
+ .optional(),
1557
+ auth_connection: ElevenLabsMcpConfigObjectSchema.nullable().optional(),
1558
+ name: z.string(),
1559
+ description: z.string().optional(),
1560
+ force_pre_tool_speech: z.boolean().optional(),
1561
+ pre_tool_speech: ElevenLabsPreToolSpeechModeSchema.optional(),
1562
+ disable_interruptions: z.boolean().optional(),
1563
+ tool_call_sound: ElevenLabsToolCallSoundTypeSchema.nullable().optional(),
1564
+ tool_call_sound_behavior: ElevenLabsToolCallSoundBehaviorSchema.optional(),
1565
+ execution_mode: ElevenLabsToolExecutionModeSchema.optional(),
1566
+ response_timeout_secs: ElevenLabsMcpResponseTimeoutSchema.optional(),
1567
+ tool_config_overrides: z
1568
+ .array(ElevenLabsMcpToolConfigOverrideWithNameSchema)
1569
+ .optional(),
1570
+ disable_compression: z.boolean().optional(),
1571
+ }),
1572
+ });
1573
+ // ---------------------------------------------------------------------------
1574
+ // PATCH /v1/convai/mcp-servers/:mcp_server_id
1575
+ // ---------------------------------------------------------------------------
1576
+ export const ElevenLabsUpdateMcpServerRequestSchema = z.object({
1577
+ approval_policy: ElevenLabsMcpApprovalPolicySchema.nullable().optional(),
1578
+ force_pre_tool_speech: z.boolean().nullable().optional(),
1579
+ pre_tool_speech: ElevenLabsPreToolSpeechModeSchema.nullable().optional(),
1580
+ disable_interruptions: z.boolean().nullable().optional(),
1581
+ tool_call_sound: ElevenLabsToolCallSoundTypeSchema.nullable().optional(),
1582
+ tool_call_sound_behavior: ElevenLabsToolCallSoundBehaviorSchema.nullable().optional(),
1583
+ execution_mode: ElevenLabsToolExecutionModeSchema.nullable().optional(),
1584
+ response_timeout_secs: ElevenLabsMcpResponseTimeoutSchema.nullable().optional(),
1585
+ request_headers: z
1586
+ .record(z.string(), ElevenLabsMcpHeaderValueSchema)
1587
+ .nullable()
1588
+ .optional(),
1589
+ disable_compression: z.boolean().nullable().optional(),
1590
+ secret_token: ElevenLabsMcpConfigObjectSchema.nullable().optional(),
1591
+ auth_connection: ElevenLabsMcpConfigObjectSchema.nullable().optional(),
1592
+ });
1593
+ // ---------------------------------------------------------------------------
1594
+ // POST /v1/convai/mcp-servers/:mcp_server_id/tool-approvals
1595
+ // ---------------------------------------------------------------------------
1596
+ export const ElevenLabsCreateMcpServerToolApprovalRequestSchema = z.object({
1597
+ tool_name: z.string(),
1598
+ tool_description: z.string(),
1599
+ input_schema: ElevenLabsMcpConfigObjectSchema.optional(),
1600
+ approval_policy: ElevenLabsMcpToolApprovalPolicySchema.optional(),
1601
+ });
1602
+ // ---------------------------------------------------------------------------
1603
+ // POST /v1/convai/mcp-servers/:mcp_server_id/tool-configs
1604
+ // ---------------------------------------------------------------------------
1605
+ export const ElevenLabsCreateMcpToolConfigOverrideRequestSchema = ElevenLabsMcpToolConfigOverrideWithNameSchema;
1606
+ // ---------------------------------------------------------------------------
1607
+ // PATCH /v1/convai/mcp-servers/:mcp_server_id/tool-configs/:tool_name
1608
+ // ---------------------------------------------------------------------------
1609
+ export const ElevenLabsUpdateMcpToolConfigOverrideRequestSchema = ElevenLabsMcpToolConfigOverrideBaseSchema;
1610
+ // ---------------------------------------------------------------------------
1611
+ // Agents Platform (Conversational AI) — Tests / Test Invocations
1612
+ // ---------------------------------------------------------------------------
1613
+ // The test payloads embed conversation transcripts, tool evaluation config,
1614
+ // simulation config, and optional ad-hoc agent overrides. Keep those nested
1615
+ // trees permissive in the same style as agent/tool config schemas above.
1616
+ const ElevenLabsAgentTestObjectSchema = z.record(z.string(), z.unknown());
1617
+ const ElevenLabsAgentTestTypeSchema = z.enum([
1618
+ "llm",
1619
+ "tool",
1620
+ "simulation",
1621
+ "folder",
1622
+ ]);
1623
+ const ElevenLabsAgentTestSharingModeSchema = z.enum(["all", "shared_with_me"]);
1624
+ const ElevenLabsAgentTestPayloadSchema = z.object({
1625
+ from_conversation_metadata: ElevenLabsAgentTestObjectSchema.nullable().optional(),
1626
+ dynamic_variables: z.record(z.string(), z.unknown()).optional(),
1627
+ chat_history: z.array(ElevenLabsAgentTestObjectSchema).max(200).optional(),
1628
+ conversation_initiation_source: z.string().nullable().optional(),
1629
+ type: z.enum(["llm", "tool", "simulation"]).optional(),
1630
+ success_condition: z.string().nullable().optional(),
1631
+ success_conditions: z.array(z.string()).max(30).optional(),
1632
+ success_examples: z.array(ElevenLabsAgentTestObjectSchema).max(5).optional(),
1633
+ failure_examples: z.array(ElevenLabsAgentTestObjectSchema).max(5).optional(),
1634
+ tool_call_parameters: ElevenLabsAgentTestObjectSchema.nullable().optional(),
1635
+ check_any_tool_matches: z.boolean().nullable().optional(),
1636
+ simulation_scenario: z.string().optional(),
1637
+ simulation_max_turns: z.number().int().min(1).max(50).optional(),
1638
+ simulation_environment: z.string().nullable().optional(),
1639
+ tool_mock_config: ElevenLabsAgentTestObjectSchema.optional(),
1640
+ evaluation_model: z
1641
+ .union([z.string(), ElevenLabsAgentTestObjectSchema])
1642
+ .nullable()
1643
+ .optional(),
1644
+ simulated_user_model: z
1645
+ .union([z.string(), ElevenLabsAgentTestObjectSchema])
1646
+ .nullable()
1647
+ .optional(),
1648
+ name: z.string(),
1649
+ parent_folder_id: z.string().nullable().optional(),
1650
+ });
1651
+ // ---------------------------------------------------------------------------
1652
+ // POST /v1/convai/agent-testing/create
1653
+ // ---------------------------------------------------------------------------
1654
+ export const ElevenLabsCreateAgentTestRequestSchema = ElevenLabsAgentTestPayloadSchema;
1655
+ // ---------------------------------------------------------------------------
1656
+ // GET /v1/convai/agent-testing
1657
+ // ---------------------------------------------------------------------------
1658
+ export const ElevenLabsListAgentTestsRequestSchema = z.object({
1659
+ cursor: z.string().nullable().optional(),
1660
+ page_size: z.number().int().min(1).max(100).optional(),
1661
+ search: z.string().nullable().optional(),
1662
+ parent_folder_id: z.string().nullable().optional(),
1663
+ types: z.array(ElevenLabsAgentTestTypeSchema).nullable().optional(),
1664
+ include_folders: z.boolean().nullable().optional(),
1665
+ sort_mode: z.enum(["default", "folders_first"]).optional(),
1666
+ sharing_mode: ElevenLabsAgentTestSharingModeSchema.optional(),
1667
+ });
1668
+ // ---------------------------------------------------------------------------
1669
+ // PUT /v1/convai/agent-testing/:test_id
1670
+ // ---------------------------------------------------------------------------
1671
+ export const ElevenLabsUpdateAgentTestRequestSchema = ElevenLabsAgentTestPayloadSchema;
1672
+ // ---------------------------------------------------------------------------
1673
+ // POST /v1/convai/agent-testing/summaries
1674
+ // ---------------------------------------------------------------------------
1675
+ export const ElevenLabsGetAgentTestSummariesRequestSchema = z.object({
1676
+ test_ids: z.array(z.string()),
1677
+ });
1678
+ // ---------------------------------------------------------------------------
1679
+ // POST /v1/convai/agent-testing/bulk-move
1680
+ // ---------------------------------------------------------------------------
1681
+ export const ElevenLabsBulkMoveAgentTestsRequestSchema = z.object({
1682
+ entity_ids: z.array(z.string()).min(1),
1683
+ move_to: z.string().nullable().optional(),
1684
+ });
1685
+ // ---------------------------------------------------------------------------
1686
+ // POST/PATCH/DELETE /v1/convai/agent-testing/folders
1687
+ // ---------------------------------------------------------------------------
1688
+ export const ElevenLabsCreateAgentTestFolderRequestSchema = z.object({
1689
+ name: z.string(),
1690
+ parent_folder_id: z.string().nullable().optional(),
1691
+ });
1692
+ export const ElevenLabsUpdateAgentTestFolderRequestSchema = z.object({
1693
+ name: z.string(),
1694
+ });
1695
+ export const ElevenLabsDeleteAgentTestFolderRequestSchema = z.object({
1696
+ force: z.boolean().optional(),
1697
+ });
1698
+ // ---------------------------------------------------------------------------
1699
+ // POST /v1/convai/agents/:agent_id/run-tests
1700
+ // ---------------------------------------------------------------------------
1701
+ export const ElevenLabsRunAgentTestsRequestSchema = z.object({
1702
+ tests: z
1703
+ .array(z.object({
1704
+ test_id: z.string(),
1705
+ workflow_node_id: z.string().nullable().optional(),
1706
+ root_folder_id: z.string().nullable().optional(),
1707
+ root_folder_name: z.string().nullable().optional(),
1708
+ }))
1709
+ .min(1)
1710
+ .max(5000),
1711
+ agent_config_override: ElevenLabsAgentTestObjectSchema.nullable().optional(),
1712
+ branch_id: z.string().nullable().optional(),
1713
+ repeat_count: z.number().int().min(1).max(50).optional(),
1714
+ });
1715
+ // ---------------------------------------------------------------------------
1716
+ // GET /v1/convai/test-invocations
1717
+ // ---------------------------------------------------------------------------
1718
+ export const ElevenLabsListTestInvocationsRequestSchema = z.object({
1719
+ agent_id: z.string().nullable().optional(),
1720
+ page_size: z.number().int().min(1).max(100).optional(),
1721
+ cursor: z.string().nullable().optional(),
1722
+ });
1723
+ // ---------------------------------------------------------------------------
1724
+ // POST /v1/convai/test-invocations/:test_invocation_id/resubmit
1725
+ // ---------------------------------------------------------------------------
1726
+ export const ElevenLabsResubmitTestsRequestSchema = z.object({
1727
+ test_run_ids: z.array(z.string()).min(1).max(5000),
1728
+ agent_config_override: ElevenLabsAgentTestObjectSchema.nullable().optional(),
1729
+ agent_id: z.string(),
1730
+ branch_id: z.string().nullable().optional(),
1731
+ });
1732
+ // ---------------------------------------------------------------------------
1733
+ // Agents Platform — Knowledge Base
1734
+ // ---------------------------------------------------------------------------
1735
+ const ElevenLabsKnowledgeBaseDocumentTypeSchema = z.enum([
1736
+ "file",
1737
+ "url",
1738
+ "text",
1739
+ "folder",
1740
+ ]);
1741
+ const ElevenLabsKnowledgeBaseEmbeddingModelSchema = z.enum([
1742
+ "e5_mistral_7b_instruct",
1743
+ "multilingual_e5_large_instruct",
1744
+ ]);
1745
+ const ElevenLabsKnowledgeBaseDependentTypeSchema = z.enum([
1746
+ "direct",
1747
+ "transitive",
1748
+ "all",
1749
+ ]);
1750
+ // ---------------------------------------------------------------------------
1751
+ // POST /v1/convai/knowledge-base/url
1752
+ // ---------------------------------------------------------------------------
1753
+ export const ElevenLabsCreateKnowledgeBaseDocumentFromUrlRequestSchema = z.object({
1754
+ url: z.string().url(),
1755
+ name: z.string().nullable().optional(),
1756
+ parent_folder_id: z.string().nullable().optional(),
1757
+ enable_auto_sync: z.boolean().optional(),
409
1758
  auto_remove: z.boolean().optional(),
410
1759
  });
411
1760
  // ---------------------------------------------------------------------------
@@ -435,7 +1784,7 @@ export const ElevenLabsListKnowledgeBaseDocumentsRequestSchema = z.object({
435
1784
  show_only_owned_documents: z.boolean().optional(),
436
1785
  created_by_user_id: z.string().nullable().optional(),
437
1786
  types: z
438
- .array(z.enum(["file", "url", "text", "folder"]))
1787
+ .array(ElevenLabsKnowledgeBaseDocumentTypeSchema)
439
1788
  .nullable()
440
1789
  .optional(),
441
1790
  parent_folder_id: z.string().nullable().optional(),
@@ -455,22 +1804,180 @@ export const ElevenLabsGetKnowledgeBaseDocumentRequestSchema = z.object({
455
1804
  agent_id: z.string().optional(),
456
1805
  });
457
1806
  // ---------------------------------------------------------------------------
458
- // DELETE /v1/convai/knowledge-base/:documentation_id
1807
+ // DELETE /v1/convai/knowledge-base/:documentation_id
1808
+ // ---------------------------------------------------------------------------
1809
+ export const ElevenLabsDeleteKnowledgeBaseDocumentRequestSchema = z.object({
1810
+ force: z.boolean().optional(),
1811
+ });
1812
+ // ---------------------------------------------------------------------------
1813
+ // GET /v1/convai/knowledge-base/summaries
1814
+ // ---------------------------------------------------------------------------
1815
+ export const ElevenLabsGetKnowledgeBaseSummariesRequestSchema = z.object({
1816
+ document_ids: z.array(z.string()).min(1).max(100),
1817
+ });
1818
+ // ---------------------------------------------------------------------------
1819
+ // GET /v1/convai/knowledge-base/search
1820
+ // ---------------------------------------------------------------------------
1821
+ export const ElevenLabsSearchKnowledgeBaseContentRequestSchema = z.object({
1822
+ query: z.string(),
1823
+ page_size: z.number().int().min(1).max(100).optional(),
1824
+ types: z
1825
+ .array(ElevenLabsKnowledgeBaseDocumentTypeSchema)
1826
+ .nullable()
1827
+ .optional(),
1828
+ cursor: z.string().nullable().optional(),
1829
+ });
1830
+ // ---------------------------------------------------------------------------
1831
+ // PATCH /v1/convai/knowledge-base/:documentation_id
1832
+ // ---------------------------------------------------------------------------
1833
+ export const ElevenLabsUpdateKnowledgeBaseDocumentRequestSchema = z.object({
1834
+ name: z.string().nullable().optional(),
1835
+ content: z.string().nullable().optional(),
1836
+ });
1837
+ // ---------------------------------------------------------------------------
1838
+ // GET /v1/convai/knowledge-base/:documentation_id/chunks
1839
+ // ---------------------------------------------------------------------------
1840
+ export const ElevenLabsListKnowledgeBaseDocumentChunksRequestSchema = z.object({
1841
+ embedding_model: ElevenLabsKnowledgeBaseEmbeddingModelSchema,
1842
+ page_size: z.number().int().min(1).max(100).optional(),
1843
+ cursor: z.string().nullable().optional(),
1844
+ });
1845
+ // ---------------------------------------------------------------------------
1846
+ // GET /v1/convai/knowledge-base/:documentation_id/chunk/:chunk_id
1847
+ // ---------------------------------------------------------------------------
1848
+ export const ElevenLabsGetKnowledgeBaseDocumentChunkRequestSchema = z.object({
1849
+ embedding_model: ElevenLabsKnowledgeBaseEmbeddingModelSchema.nullable().optional(),
1850
+ });
1851
+ // ---------------------------------------------------------------------------
1852
+ // GET /v1/convai/knowledge-base/:documentation_id/dependent-agents
1853
+ // ---------------------------------------------------------------------------
1854
+ export const ElevenLabsGetKnowledgeBaseDependentAgentsRequestSchema = z.object({
1855
+ dependent_type: ElevenLabsKnowledgeBaseDependentTypeSchema.optional(),
1856
+ page_size: z.number().int().min(1).max(100).optional(),
1857
+ cursor: z.string().nullable().optional(),
1858
+ });
1859
+ // ---------------------------------------------------------------------------
1860
+ // PATCH /v1/convai/knowledge-base/:documentation_id/update-file
1861
+ // ---------------------------------------------------------------------------
1862
+ export const ElevenLabsUpdateKnowledgeBaseFileDocumentRequestSchema = z.object({
1863
+ file: z.custom(),
1864
+ });
1865
+ // ---------------------------------------------------------------------------
1866
+ // POST /v1/convai/knowledge-base/rag-index
1867
+ // ---------------------------------------------------------------------------
1868
+ export const ElevenLabsComputeKnowledgeBaseRagIndexesRequestSchema = z.object({
1869
+ items: z.array(z.object({
1870
+ document_id: z.string(),
1871
+ create_if_missing: z.boolean(),
1872
+ model: ElevenLabsKnowledgeBaseEmbeddingModelSchema,
1873
+ })),
1874
+ });
1875
+ // ---------------------------------------------------------------------------
1876
+ // POST /v1/convai/knowledge-base/:documentation_id/rag-index
1877
+ // ---------------------------------------------------------------------------
1878
+ export const ElevenLabsComputeKnowledgeBaseDocumentRagIndexRequestSchema = z.object({
1879
+ model: ElevenLabsKnowledgeBaseEmbeddingModelSchema,
1880
+ });
1881
+ // ---------------------------------------------------------------------------
1882
+ // POST /v1/convai/knowledge-base/folder
1883
+ // ---------------------------------------------------------------------------
1884
+ export const ElevenLabsCreateKnowledgeBaseFolderRequestSchema = z.object({
1885
+ name: z.string(),
1886
+ parent_folder_id: z.string().nullable().optional(),
1887
+ enable_auto_sync: z.boolean().optional(),
1888
+ auto_remove: z.boolean().optional(),
1889
+ });
1890
+ // ---------------------------------------------------------------------------
1891
+ // POST /v1/convai/knowledge-base/bulk-move
1892
+ // ---------------------------------------------------------------------------
1893
+ export const ElevenLabsBulkMoveKnowledgeBaseDocumentsRequestSchema = z.object({
1894
+ document_ids: z.array(z.string()),
1895
+ move_to: z.string().nullable().optional(),
1896
+ });
1897
+ // ---------------------------------------------------------------------------
1898
+ // POST /v1/convai/knowledge-base/:document_id/move
1899
+ // ---------------------------------------------------------------------------
1900
+ export const ElevenLabsMoveKnowledgeBaseEntityRequestSchema = z.object({
1901
+ move_to: z.string().nullable().optional(),
1902
+ });
1903
+ // ---------------------------------------------------------------------------
1904
+ // Agents Platform — Conversations
1905
+ // ---------------------------------------------------------------------------
1906
+ // ---------------------------------------------------------------------------
1907
+ // GET /v1/convai/conversations
1908
+ // ---------------------------------------------------------------------------
1909
+ // All fields are query-string filters; the factory serialises them onto the
1910
+ // URL. Array-valued filters (`evaluation_params`, `main_languages`, ...) are
1911
+ // repeated as multiple query params by `buildQueryString`.
1912
+ export const ElevenLabsListConversationsRequestSchema = z.object({
1913
+ cursor: z.string().nullable().optional(),
1914
+ agent_id: z.string().nullable().optional(),
1915
+ call_successful: z
1916
+ .enum(["success", "failure", "unknown"])
1917
+ .nullable()
1918
+ .optional(),
1919
+ call_start_before_unix: z.number().int().nullable().optional(),
1920
+ call_start_after_unix: z.number().int().nullable().optional(),
1921
+ call_duration_min_secs: z.number().int().nullable().optional(),
1922
+ call_duration_max_secs: z.number().int().nullable().optional(),
1923
+ rating_min: z.number().int().nullable().optional(),
1924
+ rating_max: z.number().int().nullable().optional(),
1925
+ has_feedback_comment: z.boolean().nullable().optional(),
1926
+ user_id: z.string().nullable().optional(),
1927
+ evaluation_params: z.array(z.string()).nullable().optional(),
1928
+ data_collection_params: z.array(z.string()).nullable().optional(),
1929
+ tool_names: z.array(z.string()).nullable().optional(),
1930
+ tool_names_successful: z.array(z.string()).nullable().optional(),
1931
+ tool_names_errored: z.array(z.string()).nullable().optional(),
1932
+ main_languages: z.array(z.string()).nullable().optional(),
1933
+ page_size: z.number().int().min(1).max(100).optional(),
1934
+ summary_mode: z.enum(["exclude", "include"]).optional(),
1935
+ search: z.string().nullable().optional(),
1936
+ text_only: z.boolean().nullable().optional(),
1937
+ branch_id: z.string().nullable().optional(),
1938
+ topic_ids: z.array(z.string()).nullable().optional(),
1939
+ exclude_statuses: z.array(z.string()).nullable().optional(),
1940
+ tag_ids: z.array(z.string()).nullable().optional(),
1941
+ termination_reasons: z.array(z.string()).nullable().optional(),
1942
+ });
1943
+ // ---------------------------------------------------------------------------
1944
+ // GET /v1/convai/conversations/:conversation_id
1945
+ // ---------------------------------------------------------------------------
1946
+ export const ElevenLabsGetConversationRequestSchema = z.object({
1947
+ format: z.enum(["json", "opentelemetry"]).optional(),
1948
+ });
1949
+ // ---------------------------------------------------------------------------
1950
+ // GET /v1/convai/conversation/get-signed-url
459
1951
  // ---------------------------------------------------------------------------
460
- export const ElevenLabsDeleteKnowledgeBaseDocumentRequestSchema = z.object({
461
- force: z.boolean().optional(),
1952
+ export const ElevenLabsGetSignedUrlRequestSchema = z.object({
1953
+ agent_id: z.string(),
1954
+ include_conversation_id: z.boolean().optional(),
1955
+ branch_id: z.string().nullable().optional(),
1956
+ environment: z.string().nullable().optional(),
462
1957
  });
463
1958
  // ---------------------------------------------------------------------------
464
- // Agents Platform — Conversations
1959
+ // GET /v1/convai/conversation/token
465
1960
  // ---------------------------------------------------------------------------
1961
+ export const ElevenLabsGetConversationTokenRequestSchema = z.object({
1962
+ agent_id: z.string(),
1963
+ participant_name: z.string().nullable().optional(),
1964
+ branch_id: z.string().nullable().optional(),
1965
+ environment: z.string().nullable().optional(),
1966
+ });
466
1967
  // ---------------------------------------------------------------------------
467
- // GET /v1/convai/conversations
1968
+ // GET /v1/convai/conversations/messages/smart-search
468
1969
  // ---------------------------------------------------------------------------
469
- // All fields are query-string filters; the factory serialises them onto the
470
- // URL. Array-valued filters (`evaluation_params`, `main_languages`, ...) are
471
- // repeated as multiple query params by `buildQueryString`.
472
- export const ElevenLabsListConversationsRequestSchema = z.object({
1970
+ export const ElevenLabsSmartSearchConversationMessagesRequestSchema = z.object({
1971
+ text_query: z.string(),
1972
+ agent_id: z.string().nullable().optional(),
1973
+ page_size: z.number().int().min(1).max(50).optional(),
473
1974
  cursor: z.string().nullable().optional(),
1975
+ });
1976
+ // ---------------------------------------------------------------------------
1977
+ // GET /v1/convai/conversations/messages/text-search
1978
+ // ---------------------------------------------------------------------------
1979
+ export const ElevenLabsTextSearchConversationMessagesRequestSchema = z.object({
1980
+ text_query: z.string(),
474
1981
  agent_id: z.string().nullable().optional(),
475
1982
  call_successful: z
476
1983
  .enum(["success", "failure", "unknown"])
@@ -480,8 +1987,8 @@ export const ElevenLabsListConversationsRequestSchema = z.object({
480
1987
  call_start_after_unix: z.number().int().nullable().optional(),
481
1988
  call_duration_min_secs: z.number().int().nullable().optional(),
482
1989
  call_duration_max_secs: z.number().int().nullable().optional(),
483
- rating_min: z.number().int().nullable().optional(),
484
1990
  rating_max: z.number().int().nullable().optional(),
1991
+ rating_min: z.number().int().nullable().optional(),
485
1992
  has_feedback_comment: z.boolean().nullable().optional(),
486
1993
  user_id: z.string().nullable().optional(),
487
1994
  evaluation_params: z.array(z.string()).nullable().optional(),
@@ -490,33 +1997,80 @@ export const ElevenLabsListConversationsRequestSchema = z.object({
490
1997
  tool_names_successful: z.array(z.string()).nullable().optional(),
491
1998
  tool_names_errored: z.array(z.string()).nullable().optional(),
492
1999
  main_languages: z.array(z.string()).nullable().optional(),
493
- page_size: z.number().int().min(1).max(100).optional(),
2000
+ page_size: z.number().int().min(1).max(50).optional(),
494
2001
  summary_mode: z.enum(["exclude", "include"]).optional(),
495
- search: z.string().nullable().optional(),
2002
+ conversation_initiation_source: z
2003
+ .enum([
2004
+ "unknown",
2005
+ "android_sdk",
2006
+ "node_js_sdk",
2007
+ "react_native_sdk",
2008
+ "react_sdk",
2009
+ "js_sdk",
2010
+ "python_sdk",
2011
+ "widget",
2012
+ "sip_trunk",
2013
+ "twilio",
2014
+ "exotel",
2015
+ "genesys",
2016
+ "swift_sdk",
2017
+ "whatsapp",
2018
+ "twilio_sms",
2019
+ "flutter_sdk",
2020
+ "zendesk_integration",
2021
+ "slack_integration",
2022
+ "telegram_integration",
2023
+ "intercom_integration",
2024
+ "freshdesk_integration",
2025
+ "template_preview",
2026
+ "genesys_bot_connector",
2027
+ ])
2028
+ .nullable()
2029
+ .optional(),
496
2030
  text_only: z.boolean().nullable().optional(),
2031
+ conversation_product_type: z
2032
+ .enum(["agents", "speech_engine"])
2033
+ .nullable()
2034
+ .optional(),
497
2035
  branch_id: z.string().nullable().optional(),
498
2036
  topic_ids: z.array(z.string()).nullable().optional(),
499
- exclude_statuses: z.array(z.string()).nullable().optional(),
500
- tag_ids: z.array(z.string()).nullable().optional(),
501
- termination_reasons: z.array(z.string()).nullable().optional(),
2037
+ sort_by: z.enum(["search_score", "created_at"]).optional(),
2038
+ cursor: z.string().nullable().optional(),
502
2039
  });
503
2040
  // ---------------------------------------------------------------------------
504
- // GET /v1/convai/conversations/:conversation_id
2041
+ // POST /v1/convai/conversations/:conversation_id/feedback
505
2042
  // ---------------------------------------------------------------------------
506
- export const ElevenLabsGetConversationRequestSchema = z.object({
507
- format: z.enum(["json", "opentelemetry"]).optional(),
2043
+ export const ElevenLabsConversationFeedbackRequestSchema = z.object({
2044
+ feedback: z.enum(["like", "dislike"]).nullable().optional(),
508
2045
  });
509
2046
  // ---------------------------------------------------------------------------
510
- // GET /v1/convai/conversation/get-signed-url
2047
+ // POST /v1/convai/conversations/:conversation_id/files
511
2048
  // ---------------------------------------------------------------------------
512
- export const ElevenLabsGetSignedUrlRequestSchema = z.object({
513
- agent_id: z.string(),
514
- include_conversation_id: z.boolean().optional(),
515
- branch_id: z.string().nullable().optional(),
516
- environment: z.string().nullable().optional(),
2049
+ export const ElevenLabsUploadConversationFileRequestSchema = z.object({
2050
+ file: z.custom((value) => value instanceof Blob),
2051
+ });
2052
+ // ---------------------------------------------------------------------------
2053
+ // GET /v1/convai/conversations/:conversation_id/sip-messages
2054
+ // ---------------------------------------------------------------------------
2055
+ export const ElevenLabsGetConversationSipMessagesRequestSchema = z.object({
2056
+ page_size: z.number().int().min(1).max(20).optional(),
2057
+ cursor: z.string().nullable().optional(),
2058
+ });
2059
+ // ---------------------------------------------------------------------------
2060
+ // POST /v1/convai/conversations/:conversation_id/tags
2061
+ // ---------------------------------------------------------------------------
2062
+ export const ElevenLabsAssignConversationTagsRequestSchema = z.object({
2063
+ tag_ids: z.array(z.string()).min(1).max(50),
2064
+ });
2065
+ // ---------------------------------------------------------------------------
2066
+ // POST /v1/convai/conversations/:conversation_id/analysis/evaluations/run
2067
+ // ---------------------------------------------------------------------------
2068
+ export const ElevenLabsRunConversationEvaluationsRequestSchema = z.object({
2069
+ evaluation_id: z.string(),
2070
+ scope: z.enum(["conversation", "agent"]).optional(),
517
2071
  });
518
2072
  // ---------------------------------------------------------------------------
519
- // Agents Platform (Conversational AI) — phone numbers & outbound calls
2073
+ // Agents Platform (Conversational AI) — batch calling / telephony
520
2074
  // ---------------------------------------------------------------------------
521
2075
  // SIP-trunk inbound/outbound trunk configs and the per-conversation client
522
2076
  // data / telephony config are large, deeply-nested objects. We keep them as
@@ -524,6 +2078,44 @@ export const ElevenLabsGetSignedUrlRequestSchema = z.object({
524
2078
  // compose the nested config themselves and the server passes it straight
525
2079
  // through.
526
2080
  const ElevenLabsConvaiConfigObjectSchema = z.record(z.string(), z.unknown());
2081
+ const ElevenLabsBatchCallWhatsAppParamsSchema = z.object({
2082
+ whatsapp_phone_number_id: z.string().nullable().optional(),
2083
+ whatsapp_call_permission_request_template_name: z.string(),
2084
+ whatsapp_call_permission_request_template_language_code: z.string(),
2085
+ });
2086
+ const ElevenLabsBatchCallTelephonyConfigSchema = z.object({
2087
+ ringing_timeout_secs: z.number().int().min(1).max(999).optional(),
2088
+ });
2089
+ const ElevenLabsBatchCallRecipientSchema = z.object({
2090
+ id: z.string().nullable().optional(),
2091
+ phone_number: z.string().nullable().optional(),
2092
+ whatsapp_user_id: z.string().nullable().optional(),
2093
+ conversation_initiation_client_data: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
2094
+ });
2095
+ // ---------------------------------------------------------------------------
2096
+ // POST /v1/convai/batch-calling/submit
2097
+ // ---------------------------------------------------------------------------
2098
+ export const ElevenLabsSubmitBatchCallRequestSchema = z.object({
2099
+ call_name: z.string(),
2100
+ agent_id: z.string(),
2101
+ recipients: z.array(ElevenLabsBatchCallRecipientSchema).max(10000),
2102
+ scheduled_time_unix: z.number().int().nullable().optional(),
2103
+ agent_phone_number_id: z.string().nullable().optional(),
2104
+ whatsapp_params: ElevenLabsBatchCallWhatsAppParamsSchema.nullable().optional(),
2105
+ timezone: z.string().nullable().optional(),
2106
+ branch_id: z.string().nullable().optional(),
2107
+ environment: z.string().nullable().optional(),
2108
+ telephony_call_config: ElevenLabsBatchCallTelephonyConfigSchema.optional(),
2109
+ target_concurrency_limit: z.number().int().min(1).nullable().optional(),
2110
+ });
2111
+ // ---------------------------------------------------------------------------
2112
+ // GET /v1/convai/batch-calling/workspace
2113
+ // ---------------------------------------------------------------------------
2114
+ export const ElevenLabsListWorkspaceBatchCallsRequestSchema = z.object({
2115
+ limit: z.number().int().optional(),
2116
+ last_doc: z.string().nullable().optional(),
2117
+ agent_id: z.string().nullable().optional(),
2118
+ });
527
2119
  export const ElevenLabsPhoneNumberProvider = z.enum([
528
2120
  "twilio",
529
2121
  "exotel",
@@ -584,6 +2176,24 @@ export const ElevenLabsUpdatePhoneNumberRequestSchema = z.object({
584
2176
  branch_id: z.string().nullable().optional(),
585
2177
  });
586
2178
  // ---------------------------------------------------------------------------
2179
+ // GET /v1/convai/phone-numbers/:phone_number_id/sip-messages
2180
+ // ---------------------------------------------------------------------------
2181
+ export const ElevenLabsGetPhoneNumberSipMessagesRequestSchema = ElevenLabsGetConversationSipMessagesRequestSchema;
2182
+ // ---------------------------------------------------------------------------
2183
+ // POST /v1/convai/twilio/register-call
2184
+ // ---------------------------------------------------------------------------
2185
+ const ElevenLabsTelephonyDirectionSchema = z.enum(["inbound", "outbound"]);
2186
+ const ElevenLabsTelephonyCallConfigSchema = z.object({
2187
+ ringing_timeout_secs: z.number().int().min(1).max(999).optional(),
2188
+ });
2189
+ export const ElevenLabsRegisterTwilioCallRequestSchema = z.object({
2190
+ agent_id: z.string(),
2191
+ from_number: z.string(),
2192
+ to_number: z.string(),
2193
+ direction: ElevenLabsTelephonyDirectionSchema.optional(),
2194
+ conversation_initiation_client_data: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
2195
+ });
2196
+ // ---------------------------------------------------------------------------
587
2197
  // POST /v1/convai/twilio/outbound-call
588
2198
  // ---------------------------------------------------------------------------
589
2199
  export const ElevenLabsTwilioOutboundCallRequestSchema = z.object({
@@ -604,4 +2214,587 @@ export const ElevenLabsSipTrunkOutboundCallRequestSchema = z.object({
604
2214
  conversation_initiation_client_data: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
605
2215
  telephony_call_config: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
606
2216
  });
2217
+ // ---------------------------------------------------------------------------
2218
+ // POST /v1/convai/exotel/outbound-call
2219
+ // ---------------------------------------------------------------------------
2220
+ export const ElevenLabsExotelOutboundCallRequestSchema = z.object({
2221
+ agent_id: z.string(),
2222
+ agent_phone_number_id: z.string(),
2223
+ to_number: z.string(),
2224
+ conversation_initiation_client_data: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
2225
+ telephony_call_config: ElevenLabsTelephonyCallConfigSchema.nullable().optional(),
2226
+ });
2227
+ // ---------------------------------------------------------------------------
2228
+ // POST /v1/convai/whatsapp/outbound-call
2229
+ // ---------------------------------------------------------------------------
2230
+ export const ElevenLabsWhatsAppOutboundCallRequestSchema = z.object({
2231
+ whatsapp_phone_number_id: z.string(),
2232
+ whatsapp_user_id: z.string(),
2233
+ whatsapp_call_permission_request_template_name: z.string(),
2234
+ whatsapp_call_permission_request_template_language_code: z.string(),
2235
+ agent_id: z.string(),
2236
+ conversation_initiation_client_data: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
2237
+ });
2238
+ // ---------------------------------------------------------------------------
2239
+ // POST /v1/convai/whatsapp/outbound-message
2240
+ // ---------------------------------------------------------------------------
2241
+ const ElevenLabsWhatsAppTemplateTextParamSchema = z.object({
2242
+ parameter_name: z.string().nullable().optional(),
2243
+ type: z.literal("text").optional(),
2244
+ text: z.string(),
2245
+ });
2246
+ const ElevenLabsWhatsAppTemplateImageParamSchema = z.object({
2247
+ type: z.literal("image").optional(),
2248
+ image: z.object({
2249
+ link: z.string(),
2250
+ }),
2251
+ });
2252
+ const ElevenLabsWhatsAppTemplateDocumentParamSchema = z.object({
2253
+ type: z.literal("document").optional(),
2254
+ document: z.object({
2255
+ link: z.string(),
2256
+ filename: z.string().nullable().optional(),
2257
+ }),
2258
+ });
2259
+ const ElevenLabsWhatsAppTemplateLocationParamSchema = z.object({
2260
+ type: z.literal("location").optional(),
2261
+ location: z.object({
2262
+ latitude: z.string(),
2263
+ longitude: z.string(),
2264
+ name: z.string(),
2265
+ address: z.string(),
2266
+ }),
2267
+ });
2268
+ const ElevenLabsWhatsAppTemplateHeaderParamSchema = z.union([
2269
+ ElevenLabsWhatsAppTemplateTextParamSchema,
2270
+ ElevenLabsWhatsAppTemplateImageParamSchema,
2271
+ ElevenLabsWhatsAppTemplateDocumentParamSchema,
2272
+ ElevenLabsWhatsAppTemplateLocationParamSchema,
2273
+ ]);
2274
+ const ElevenLabsWhatsAppTemplateComponentSchema = z.union([
2275
+ z.object({
2276
+ type: z.literal("header").optional(),
2277
+ parameters: z.array(ElevenLabsWhatsAppTemplateHeaderParamSchema),
2278
+ }),
2279
+ z.object({
2280
+ type: z.literal("body").optional(),
2281
+ parameters: z.array(ElevenLabsWhatsAppTemplateTextParamSchema),
2282
+ }),
2283
+ z.object({
2284
+ type: z.literal("button").optional(),
2285
+ parameters: z.array(ElevenLabsWhatsAppTemplateTextParamSchema),
2286
+ index: z.number().int(),
2287
+ sub_type: z.string(),
2288
+ }),
2289
+ ]);
2290
+ export const ElevenLabsWhatsAppOutboundMessageRequestSchema = z.object({
2291
+ whatsapp_phone_number_id: z.string(),
2292
+ whatsapp_user_id: z.string(),
2293
+ template_name: z.string(),
2294
+ template_language_code: z.string(),
2295
+ template_params: z.array(ElevenLabsWhatsAppTemplateComponentSchema),
2296
+ agent_id: z.string(),
2297
+ conversation_initiation_client_data: ElevenLabsConvaiConfigObjectSchema.nullable().optional(),
2298
+ });
2299
+ // ---------------------------------------------------------------------------
2300
+ // GET /v1/convai/whatsapp-accounts
2301
+ // ---------------------------------------------------------------------------
2302
+ export const ElevenLabsListWhatsAppAccountsRequestSchema = z.object({
2303
+ agent_id: z.string().nullable().optional(),
2304
+ });
2305
+ // ---------------------------------------------------------------------------
2306
+ // PATCH /v1/convai/whatsapp-accounts/:phone_number_id
2307
+ // ---------------------------------------------------------------------------
2308
+ export const ElevenLabsUpdateWhatsAppAccountRequestSchema = z.object({
2309
+ assigned_agent_id: z.string().nullable().optional(),
2310
+ enable_messaging: z.boolean().nullable().optional(),
2311
+ enable_audio_message_response: z.boolean().nullable().optional(),
2312
+ });
2313
+ // ---------------------------------------------------------------------------
2314
+ // POST /v1/text-to-voice
2315
+ // ---------------------------------------------------------------------------
2316
+ export const ElevenLabsCreateVoiceFromPreviewRequestSchema = z.object({
2317
+ voice_name: z.string(),
2318
+ voice_description: z.string().min(20).max(1000),
2319
+ generated_voice_id: z.string(),
2320
+ labels: z.record(z.string(), z.string()).nullable().optional(),
2321
+ played_not_selected_voice_ids: z.array(z.string()).nullable().optional(),
2322
+ });
2323
+ // ---------------------------------------------------------------------------
2324
+ // POST /v1/text-to-voice/design
2325
+ // ---------------------------------------------------------------------------
2326
+ export const ElevenLabsVoiceDesignRequestSchema = z.object({
2327
+ voice_description: z.string().min(20).max(1000),
2328
+ model_id: z.enum(["eleven_multilingual_ttv_v2", "eleven_ttv_v3"]).optional(),
2329
+ text: z.string().min(100).max(1000).nullable().optional(),
2330
+ auto_generate_text: z.boolean().optional(),
2331
+ loudness: z.number().min(-1.0).max(1.0).optional(),
2332
+ seed: z.number().int().min(0).max(2147483647).nullable().optional(),
2333
+ guidance_scale: z.number().min(0.0).max(100.0).optional(),
2334
+ stream_previews: z.boolean().optional(),
2335
+ should_enhance: z.boolean().optional(),
2336
+ remixing_session_id: z.string().nullable().optional(),
2337
+ remixing_session_iteration_id: z.string().nullable().optional(),
2338
+ quality: z.number().min(-1.0).max(1.0).nullable().optional(),
2339
+ reference_audio_base64: z.string().nullable().optional(),
2340
+ prompt_strength: z.number().min(0.0).max(1.0).nullable().optional(),
2341
+ output_format: z.string().optional(),
2342
+ });
2343
+ // ---------------------------------------------------------------------------
2344
+ // POST /v1/text-to-voice/:voice_id/remix
2345
+ // ---------------------------------------------------------------------------
2346
+ export const ElevenLabsVoiceRemixRequestSchema = z.object({
2347
+ voice_description: z.string().min(5).max(1000),
2348
+ text: z.string().min(100).max(1000).nullable().optional(),
2349
+ auto_generate_text: z.boolean().optional(),
2350
+ loudness: z.number().min(-1.0).max(1.0).optional(),
2351
+ seed: z.number().int().min(0).max(2147483647).nullable().optional(),
2352
+ guidance_scale: z.number().min(0.0).max(100.0).optional(),
2353
+ stream_previews: z.boolean().optional(),
2354
+ remixing_session_id: z.string().nullable().optional(),
2355
+ remixing_session_iteration_id: z.string().nullable().optional(),
2356
+ prompt_strength: z.number().min(0.0).max(1.0).nullable().optional(),
2357
+ output_format: z.string().optional(),
2358
+ });
2359
+ // ---------------------------------------------------------------------------
2360
+ // GET /v1/history
2361
+ // ---------------------------------------------------------------------------
2362
+ export const ElevenLabsHistoryListRequestSchema = z.object({
2363
+ page_size: z.number().int().max(1000).optional(),
2364
+ start_after_history_item_id: z.string().nullable().optional(),
2365
+ voice_id: z.string().nullable().optional(),
2366
+ model_id: z.string().nullable().optional(),
2367
+ date_before_unix: z.number().int().nullable().optional(),
2368
+ date_after_unix: z.number().int().nullable().optional(),
2369
+ sort_direction: z.enum(["asc", "desc"]).nullable().optional(),
2370
+ search: z.string().nullable().optional(),
2371
+ source: z.enum(["TTS", "STS", "Flows"]).nullable().optional(),
2372
+ });
2373
+ // ---------------------------------------------------------------------------
2374
+ // POST /v1/history/download
2375
+ // ---------------------------------------------------------------------------
2376
+ export const ElevenLabsHistoryDownloadRequestSchema = z.object({
2377
+ history_item_ids: z.array(z.string()),
2378
+ output_format: z.string().nullable().optional(),
2379
+ });
2380
+ // ---------------------------------------------------------------------------
2381
+ // GET /v1/dubbing
2382
+ // ---------------------------------------------------------------------------
2383
+ export const ElevenLabsListDubbingRequestSchema = z.object({
2384
+ cursor: z.string().nullable().optional(),
2385
+ page_size: z.number().int().min(1).max(200).optional(),
2386
+ dubbing_status: z.enum(["dubbing", "dubbed", "failed"]).optional(),
2387
+ dubbing_statuses: z
2388
+ .array(z.enum(["queued", "preparing", "dubbing", "dubbed", "failed"]))
2389
+ .nullable()
2390
+ .optional(),
2391
+ dubbing_models: z
2392
+ .array(z.enum(["dubbing_v1", "dubbing_v2"]))
2393
+ .nullable()
2394
+ .optional(),
2395
+ target_language_codes: z.array(z.string()).nullable().optional(),
2396
+ creation_sources: z
2397
+ .array(z.enum(["flow_node", "dubbing_ui", "dubbing_api"]))
2398
+ .nullable()
2399
+ .optional(),
2400
+ filter_by_creator: z.enum(["personal", "others", "all"]).optional(),
2401
+ order_by: z.enum(["created_at", "name"]).optional(),
2402
+ order_direction: z.enum(["DESCENDING", "ASCENDING"]).optional(),
2403
+ });
2404
+ // ---------------------------------------------------------------------------
2405
+ // POST /v1/dubbing
2406
+ // ---------------------------------------------------------------------------
2407
+ export const ElevenLabsCreateDubbingRequestSchema = z.object({
2408
+ file: z.custom().optional(),
2409
+ csv_file: z.custom().optional(),
2410
+ foreground_audio_file: z.custom().optional(),
2411
+ background_audio_file: z.custom().optional(),
2412
+ name: z.string().nullable().optional(),
2413
+ source_url: z.string().nullable().optional(),
2414
+ source_lang: z.string().optional(),
2415
+ target_lang: z.string().nullable().optional(),
2416
+ target_accent: z.string().nullable().optional(),
2417
+ num_speakers: z.number().int().optional(),
2418
+ watermark: z.boolean().optional(),
2419
+ start_time: z.number().int().nullable().optional(),
2420
+ end_time: z.number().int().nullable().optional(),
2421
+ highest_resolution: z.boolean().optional(),
2422
+ drop_background_audio: z.boolean().optional(),
2423
+ use_profanity_filter: z.boolean().nullable().optional(),
2424
+ dubbing_studio: z.boolean().optional(),
2425
+ disable_voice_cloning: z.boolean().optional(),
2426
+ mode: z.string().optional(),
2427
+ csv_fps: z.number().nullable().optional(),
2428
+ });
2429
+ // ===========================================================================
2430
+ // Studio / Projects
2431
+ // ===========================================================================
2432
+ const StudioPronunciationDictionaryLocatorSchema = z.object({
2433
+ pronunciation_dictionary_id: z.string(),
2434
+ version_id: z.string().nullable().optional(),
2435
+ });
2436
+ const StudioApplyTextNormalizationSchema = z.enum([
2437
+ "auto",
2438
+ "on",
2439
+ "off",
2440
+ "apply_english",
2441
+ ]);
2442
+ const StudioQualityPresetSchema = z.enum([
2443
+ "standard",
2444
+ "high",
2445
+ "ultra",
2446
+ "ultra_lossless",
2447
+ ]);
2448
+ // ---------------------------------------------------------------------------
2449
+ // POST /v1/studio/podcasts
2450
+ // ---------------------------------------------------------------------------
2451
+ const StudioPodcastSourceSchema = z.union([
2452
+ z.object({ type: z.literal("text"), text: z.string() }),
2453
+ z.object({ type: z.literal("url"), url: z.string() }),
2454
+ ]);
2455
+ export const ElevenLabsStudioCreatePodcastRequestSchema = z.object({
2456
+ model_id: z.string(),
2457
+ mode: z.union([
2458
+ z.object({
2459
+ type: z.literal("conversation"),
2460
+ conversation: z.object({
2461
+ host_voice_id: z.string(),
2462
+ guest_voice_id: z.string(),
2463
+ }),
2464
+ }),
2465
+ z.object({
2466
+ type: z.literal("bulletin"),
2467
+ bulletin: z.object({ host_voice_id: z.string() }),
2468
+ }),
2469
+ ]),
2470
+ source: z.union([
2471
+ StudioPodcastSourceSchema,
2472
+ z.array(StudioPodcastSourceSchema),
2473
+ ]),
2474
+ quality_preset: StudioQualityPresetSchema.optional(),
2475
+ duration_scale: z.enum(["short", "default", "long"]).optional(),
2476
+ language: z.string().length(2).nullable().optional(),
2477
+ intro: z.string().max(1500).nullable().optional(),
2478
+ outro: z.string().max(1500).nullable().optional(),
2479
+ instructions_prompt: z.string().max(3000).nullable().optional(),
2480
+ highlights: z.array(z.string().min(10).max(70)).nullable().optional(),
2481
+ callback_url: z.string().nullable().optional(),
2482
+ apply_text_normalization: StudioApplyTextNormalizationSchema.nullable().optional(),
2483
+ });
2484
+ // ---------------------------------------------------------------------------
2485
+ // GET /v1/studio/projects/{project_id}
2486
+ // ---------------------------------------------------------------------------
2487
+ export const ElevenLabsStudioGetProjectRequestSchema = z.object({
2488
+ share_id: z.string().nullable().optional(),
2489
+ });
2490
+ // ---------------------------------------------------------------------------
2491
+ // POST /v1/studio/projects (multipart/form-data)
2492
+ // ---------------------------------------------------------------------------
2493
+ export const ElevenLabsStudioCreateProjectRequestSchema = z.object({
2494
+ name: z.string(),
2495
+ default_title_voice_id: z.string().nullable().optional(),
2496
+ default_paragraph_voice_id: z.string().nullable().optional(),
2497
+ default_model_id: z.string().nullable().optional(),
2498
+ from_url: z.string().nullable().optional(),
2499
+ from_document: z.custom().nullable().optional(),
2500
+ from_content_json: z.string().optional(),
2501
+ quality_preset: StudioQualityPresetSchema.optional(),
2502
+ title: z.string().nullable().optional(),
2503
+ author: z.string().nullable().optional(),
2504
+ description: z.string().nullable().optional(),
2505
+ genres: z.array(z.string()).optional(),
2506
+ target_audience: z
2507
+ .enum(["children", "young adult", "adult", "all ages"])
2508
+ .nullable()
2509
+ .optional(),
2510
+ language: z.string().length(2).nullable().optional(),
2511
+ content_type: z.string().nullable().optional(),
2512
+ original_publication_date: z.string().nullable().optional(),
2513
+ mature_content: z.boolean().nullable().optional(),
2514
+ isbn_number: z.string().nullable().optional(),
2515
+ acx_volume_normalization: z.boolean().optional(),
2516
+ volume_normalization: z.boolean().optional(),
2517
+ pronunciation_dictionary_locators: z
2518
+ .array(StudioPronunciationDictionaryLocatorSchema)
2519
+ .optional(),
2520
+ callback_url: z.string().nullable().optional(),
2521
+ fiction: z.enum(["fiction", "non-fiction"]).nullable().optional(),
2522
+ apply_text_normalization: StudioApplyTextNormalizationSchema.nullable().optional(),
2523
+ auto_convert: z.boolean().optional(),
2524
+ auto_assign_voices: z.boolean().nullable().optional(),
2525
+ source_type: z
2526
+ .enum(["blank", "book", "article", "genfm", "video", "screenplay"])
2527
+ .nullable()
2528
+ .optional(),
2529
+ voice_settings: z.array(z.record(z.string(), z.unknown())).optional(),
2530
+ create_publishing_read: z.boolean().nullable().optional(),
2531
+ });
2532
+ // ---------------------------------------------------------------------------
2533
+ // POST /v1/studio/projects/{project_id}
2534
+ // ---------------------------------------------------------------------------
2535
+ export const ElevenLabsStudioUpdateProjectRequestSchema = z.object({
2536
+ name: z.string(),
2537
+ default_title_voice_id: z.string(),
2538
+ default_paragraph_voice_id: z.string(),
2539
+ title: z.string().nullable().optional(),
2540
+ author: z.string().nullable().optional(),
2541
+ isbn_number: z.string().nullable().optional(),
2542
+ volume_normalization: z.boolean().optional(),
2543
+ });
2544
+ // ---------------------------------------------------------------------------
2545
+ // POST /v1/studio/projects/{project_id}/content (multipart/form-data)
2546
+ // ---------------------------------------------------------------------------
2547
+ export const ElevenLabsStudioUpdateProjectContentRequestSchema = z.object({
2548
+ from_url: z.string().nullable().optional(),
2549
+ from_document: z.custom().nullable().optional(),
2550
+ from_content_json: z.string().optional(),
2551
+ auto_convert: z.boolean().optional(),
2552
+ });
2553
+ // ---------------------------------------------------------------------------
2554
+ // POST /v1/studio/projects/{project_id}/pronunciation-dictionaries
2555
+ // ---------------------------------------------------------------------------
2556
+ export const ElevenLabsStudioCreatePronunciationDictionariesRequestSchema = z.object({
2557
+ pronunciation_dictionary_locators: z.array(StudioPronunciationDictionaryLocatorSchema),
2558
+ invalidate_affected_text: z.boolean().optional(),
2559
+ });
2560
+ // ---------------------------------------------------------------------------
2561
+ // POST /v1/studio/projects/{project_id}/snapshots/{snapshot_id}/stream
2562
+ // POST .../chapters/{chapter_id}/snapshots/{chapter_snapshot_id}/stream
2563
+ // ---------------------------------------------------------------------------
2564
+ export const ElevenLabsStudioStreamAudioRequestSchema = z.object({
2565
+ convert_to_mpeg: z.boolean().optional(),
2566
+ });
2567
+ // ---------------------------------------------------------------------------
2568
+ // POST /v1/studio/projects/{project_id}/chapters
2569
+ // ---------------------------------------------------------------------------
2570
+ export const ElevenLabsStudioCreateChapterRequestSchema = z.object({
2571
+ name: z.string(),
2572
+ from_url: z.string().nullable().optional(),
2573
+ });
2574
+ // ---------------------------------------------------------------------------
2575
+ // POST /v1/studio/projects/{project_id}/chapters/{chapter_id}
2576
+ // ---------------------------------------------------------------------------
2577
+ const StudioChapterContentNodeSchema = z.object({
2578
+ type: z.string(),
2579
+ text: z.string(),
2580
+ voice_id: z.string(),
2581
+ });
2582
+ const StudioChapterContentBlockSchema = z.object({
2583
+ sub_type: z.enum(["p", "h1", "h2", "h3"]).nullable().optional(),
2584
+ nodes: z.array(StudioChapterContentNodeSchema),
2585
+ block_id: z.string().nullable().optional(),
2586
+ });
2587
+ export const ElevenLabsStudioUpdateChapterRequestSchema = z.object({
2588
+ name: z.string().nullable().optional(),
2589
+ content: z
2590
+ .object({ blocks: z.array(StudioChapterContentBlockSchema) })
2591
+ .nullable()
2592
+ .optional(),
2593
+ });
2594
+ // ---------------------------------------------------------------------------
2595
+ // Pronunciation Dictionaries
2596
+ // ---------------------------------------------------------------------------
2597
+ export const ElevenLabsListPronunciationDictionariesRequestSchema = z.object({
2598
+ cursor: z.string().optional(),
2599
+ page_size: z.number().int().min(1).max(100).optional(),
2600
+ sort: z.enum(["creation_time_unix", "name"]).optional(),
2601
+ sort_direction: z.string().optional(),
2602
+ });
2603
+ export const ElevenLabsAddPronunciationDictionaryFromFileRequestSchema = z.object({
2604
+ name: z.string(),
2605
+ file: z.any().optional(),
2606
+ description: z.string().optional(),
2607
+ workspace_access: z
2608
+ .enum(["admin", "editor", "commenter", "viewer"])
2609
+ .optional(),
2610
+ });
2611
+ export const ElevenLabsPronunciationDictionaryAliasRuleRequestSchema = z.object({
2612
+ string_to_replace: z.string(),
2613
+ case_sensitive: z.boolean().optional(),
2614
+ word_boundaries: z.boolean().optional(),
2615
+ type: z.literal("alias"),
2616
+ alias: z.string(),
2617
+ });
2618
+ export const ElevenLabsPronunciationDictionaryPhonemeRuleRequestSchema = z.object({
2619
+ string_to_replace: z.string(),
2620
+ case_sensitive: z.boolean().optional(),
2621
+ word_boundaries: z.boolean().optional(),
2622
+ type: z.literal("phoneme"),
2623
+ phoneme: z.string(),
2624
+ alphabet: z.string(),
2625
+ });
2626
+ export const ElevenLabsPronunciationDictionaryRuleRequestSchema = z.union([
2627
+ ElevenLabsPronunciationDictionaryAliasRuleRequestSchema,
2628
+ ElevenLabsPronunciationDictionaryPhonemeRuleRequestSchema,
2629
+ ]);
2630
+ export const ElevenLabsAddPronunciationDictionaryFromRulesRequestSchema = z.object({
2631
+ name: z.string(),
2632
+ description: z.string().optional(),
2633
+ workspace_access: z
2634
+ .enum(["admin", "editor", "commenter", "viewer"])
2635
+ .optional(),
2636
+ rules: z.array(ElevenLabsPronunciationDictionaryRuleRequestSchema),
2637
+ });
2638
+ export const ElevenLabsGetPronunciationDictionaryRequestSchema = z.object({});
2639
+ export const ElevenLabsUpdatePronunciationDictionaryRequestSchema = z.object({
2640
+ name: z.string().optional(),
2641
+ archived: z.boolean().optional(),
2642
+ });
2643
+ export const ElevenLabsAddPronunciationDictionaryRulesRequestSchema = z.object({
2644
+ rules: z.array(ElevenLabsPronunciationDictionaryRuleRequestSchema),
2645
+ });
2646
+ export const ElevenLabsRemovePronunciationDictionaryRulesRequestSchema = z.object({
2647
+ rule_strings: z.array(z.string()),
2648
+ });
2649
+ export const ElevenLabsSetPronunciationDictionaryRulesRequestSchema = z.object({
2650
+ rules: z.array(ElevenLabsPronunciationDictionaryRuleRequestSchema),
2651
+ });
2652
+ export const ElevenLabsDownloadPronunciationDictionaryRequestSchema = z.object({});
2653
+ // ---------------------------------------------------------------------------
2654
+ // Speech Engine
2655
+ // ---------------------------------------------------------------------------
2656
+ const ElevenLabsSpeechEngineHeaderValueSchema = z.union([
2657
+ z.string(),
2658
+ z.object({ secret_id: z.string() }),
2659
+ z.object({ variable_name: z.string() }),
2660
+ ]);
2661
+ const ElevenLabsSpeechEngineConfigSchema = z.object({
2662
+ ws_url: z.string(),
2663
+ request_headers: z
2664
+ .record(z.string(), ElevenLabsSpeechEngineHeaderValueSchema)
2665
+ .optional(),
2666
+ });
2667
+ const ElevenLabsSpeechEngineObjectConfigSchema = z.record(z.string(), z.unknown());
2668
+ // ---------------------------------------------------------------------------
2669
+ // GET /v1/speech-engine
2670
+ // ---------------------------------------------------------------------------
2671
+ export const ElevenLabsListSpeechEnginesRequestSchema = z.object({
2672
+ page_size: z.number().int().max(100).optional(),
2673
+ search: z.string().nullable().optional(),
2674
+ sort_direction: z.enum(["asc", "desc"]).optional(),
2675
+ sort_by: z
2676
+ .enum(["name", "created_at", "call_count_7d"])
2677
+ .nullable()
2678
+ .optional(),
2679
+ cursor: z.string().nullable().optional(),
2680
+ });
2681
+ // ---------------------------------------------------------------------------
2682
+ // POST /v1/speech-engine
2683
+ // ---------------------------------------------------------------------------
2684
+ export const ElevenLabsCreateSpeechEngineRequestSchema = z.object({
2685
+ name: z.string().optional(),
2686
+ speech_engine: ElevenLabsSpeechEngineConfigSchema,
2687
+ asr: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2688
+ tts: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2689
+ turn: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2690
+ conversation: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2691
+ privacy: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2692
+ call_limits: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2693
+ language: z.string().optional(),
2694
+ tags: z.array(z.string()).optional(),
2695
+ overrides: ElevenLabsSpeechEngineObjectConfigSchema.optional(),
2696
+ });
2697
+ // ---------------------------------------------------------------------------
2698
+ // PATCH /v1/speech-engine/{speechEngineId}
2699
+ // ---------------------------------------------------------------------------
2700
+ export const ElevenLabsUpdateSpeechEngineRequestSchema = z.object({
2701
+ name: z.string().nullable().optional(),
2702
+ speech_engine: ElevenLabsSpeechEngineConfigSchema.nullable().optional(),
2703
+ asr: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2704
+ tts: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2705
+ turn: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2706
+ conversation: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2707
+ privacy: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2708
+ call_limits: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2709
+ language: z.string().nullable().optional(),
2710
+ tags: z.array(z.string()).nullable().optional(),
2711
+ overrides: ElevenLabsSpeechEngineObjectConfigSchema.nullable().optional(),
2712
+ });
2713
+ // ---------------------------------------------------------------------------
2714
+ // Productions / Orders shared schemas
2715
+ // ---------------------------------------------------------------------------
2716
+ const ElevenLabsOrderRequestStateSchema = z.enum([
2717
+ "open",
2718
+ "submitted",
2719
+ "paid",
2720
+ "accepted",
2721
+ "rejected",
2722
+ "done",
2723
+ ]);
2724
+ const ElevenLabsCueOptionsRequestSchema = z.object({
2725
+ min_duration_ms: z.number().int().max(2000).optional(),
2726
+ max_duration_ms: z.number().int().min(4000).optional(),
2727
+ max_lines_per_cue: z.number().int().min(1).max(3).optional(),
2728
+ max_chars_per_line: z.number().int().min(16).max(50).optional(),
2729
+ max_chars_per_s: z.number().int().min(15).max(30).nullable().optional(),
2730
+ min_gap_between_cues_frames: z
2731
+ .number()
2732
+ .int()
2733
+ .min(0)
2734
+ .max(6)
2735
+ .nullable()
2736
+ .optional(),
2737
+ });
2738
+ const ElevenLabsDubOrderItemRequestSchema = z.object({
2739
+ kind: z.literal("dub").optional(),
2740
+ media_id: z.string(),
2741
+ source_language: z.string(),
2742
+ destination_languages: z.array(z.string()),
2743
+ include_captions: z.boolean(),
2744
+ include_source_captions: z.boolean(),
2745
+ instructions: z.string().nullable().optional(),
2746
+ captions_sdh: z.boolean().nullable().optional(),
2747
+ });
2748
+ const ElevenLabsSubtitleOrderItemRequestSchema = z.object({
2749
+ kind: z.literal("subtitles").optional(),
2750
+ media_ids: z.array(z.string()),
2751
+ source_language: z.string(),
2752
+ destination_languages: z.array(z.string()),
2753
+ cue_options: ElevenLabsCueOptionsRequestSchema.optional(),
2754
+ sdh: z.boolean().optional(),
2755
+ instructions: z.string().nullable().optional(),
2756
+ });
2757
+ const ElevenLabsOrderItemRequestSchema = z.union([
2758
+ ElevenLabsDubOrderItemRequestSchema,
2759
+ ElevenLabsSubtitleOrderItemRequestSchema,
2760
+ ]);
2761
+ // ---------------------------------------------------------------------------
2762
+ // GET /v1/productions/orders
2763
+ // ---------------------------------------------------------------------------
2764
+ export const ElevenLabsListOrdersRequestSchema = z.object({
2765
+ page_size: z.number().int().max(100).optional(),
2766
+ offset: z.number().int().min(0).optional(),
2767
+ status: z.array(ElevenLabsOrderRequestStateSchema).nullable().optional(),
2768
+ start_date: z.string().nullable().optional(),
2769
+ end_date: z.string().nullable().optional(),
2770
+ });
2771
+ // ---------------------------------------------------------------------------
2772
+ // POST /v1/productions/orders
2773
+ // ---------------------------------------------------------------------------
2774
+ export const ElevenLabsCreateOrderRequestSchema = z.object({
2775
+ sandbox: z.boolean().optional(),
2776
+ });
2777
+ // ---------------------------------------------------------------------------
2778
+ // PATCH /v1/productions/orders/{orderId}
2779
+ // ---------------------------------------------------------------------------
2780
+ export const ElevenLabsUpdateOrderRequestSchema = z.object({
2781
+ name: z.string().min(1).max(120),
2782
+ });
2783
+ // ---------------------------------------------------------------------------
2784
+ // POST /v1/productions/orders/{orderId}/items
2785
+ // ---------------------------------------------------------------------------
2786
+ export const ElevenLabsUpsertOrderItemRequestSchema = z.object({
2787
+ item: ElevenLabsOrderItemRequestSchema,
2788
+ item_id: z.string().nullable().optional(),
2789
+ });
2790
+ // ---------------------------------------------------------------------------
2791
+ // POST /v1/productions/orders/{orderId}/media
2792
+ // ---------------------------------------------------------------------------
2793
+ export const ElevenLabsRegisterOrderMediaRequestSchema = z.object({
2794
+ declared_language: z.string(),
2795
+ media: z.custom((value) => value instanceof Blob).optional(),
2796
+ media_url: z.string().nullable().optional(),
2797
+ media_url_filename: z.string().nullable().optional(),
2798
+ media_url_content_type: z.string().nullable().optional(),
2799
+ });
607
2800
  //# sourceMappingURL=zod.js.map