openapi: 3.1.0 info: title: Bluejay Agents Digital Humans API description: Bluejay API version: 0.1.0 servers: - url: https://api.getbluejay.ai description: Production server security: - apiKeyAuth: [] tags: - name: Digital Humans paths: /v1/create-digital-human: post: tags: - Digital Humans summary: Create Digital Human description: Create a new digital human. operationId: create_digital_human_v1_create_digital_human_post security: - HTTPBearer: [] parameters: - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDigitalHumanRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/src__models__digital_humans__digital_human_response__DigitalHumanResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/digital-human/{digital_human_id}: get: tags: - Digital Humans summary: Get Digital Human description: Get a digital human by ID. operationId: get_digital_human_v1_digital_human__digital_human_id__get security: - HTTPBearer: [] parameters: - name: digital_human_id in: path required: true schema: type: integer title: Digital Human Id - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/src__models__digital_humans__digital_human_response__DigitalHumanResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Digital Humans summary: Delete Digital Human description: Delete a digital human by ID. operationId: delete_digital_human_v1_digital_human__digital_human_id__delete security: - HTTPBearer: [] parameters: - name: digital_human_id in: path required: true schema: type: integer title: Digital Human Id - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DigitalHumanResponseData' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/digital-humans-by-simulation/{simulation_id}: get: tags: - Digital Humans summary: Get Digital Humans By Simulation description: Get digital humans by simulation ID. operationId: get_digital_humans_by_simulation_v1_digital_humans_by_simulation__simulation_id__get security: - HTTPBearer: [] parameters: - name: simulation_id in: path required: true schema: type: integer title: Simulation Id - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/DigitalHumansListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/update-digital-human/{digital_human_id}: put: tags: - Digital Humans summary: Update Digital Human description: Update a digital human by ID. operationId: update_digital_human_v1_update_digital_human__digital_human_id__put security: - HTTPBearer: [] parameters: - name: digital_human_id in: path required: true schema: type: integer title: Digital Human Id - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDigitalHumanRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/src__models__digital_humans__digital_human_response__DigitalHumanResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/generate-objectives: post: tags: - Digital Humans summary: Generate Objectives Endpoint description: Generate objectives for a test case from its intent. operationId: generate_objectives_endpoint_v1_generate_objectives_post security: - HTTPBearer: [] parameters: - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateObjectivesRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GenerateObjectivesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/generate-intent-summary: post: tags: - Digital Humans summary: Generate Intent Summary Endpoint description: Generate intent summary for a test case (only if intent exceeds character limit). operationId: generate_intent_summary_endpoint_v1_generate_intent_summary_post security: - HTTPBearer: [] parameters: - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateIntentSummaryRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GenerateIntentSummaryResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/generate-prompt-summary: post: tags: - Digital Humans summary: Generate Prompt Summary Endpoint description: Generate prompt summary for a prompt (only if prompt exceeds character limit). operationId: generate_prompt_summary_endpoint_v1_generate_prompt_summary_post security: - HTTPBearer: [] parameters: - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GeneratePromptSummaryRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GeneratePromptSummaryResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/generate-formatted-transcript: post: tags: - Digital Humans summary: Generate Formatted Transcript Endpoint description: Take a raw transcript and return the structured transcript, derived utterances, and speaks_first. operationId: generate_formatted_transcript_endpoint_v1_generate_formatted_transcript_post security: - HTTPBearer: [] parameters: - name: X-API-Key in: header required: true schema: type: string description: API key required to authenticate requests. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateFormattedTranscriptRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GenerateFormattedTranscriptResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: VoiceSpeedType: type: string enum: - slowest - slow - normal - fast - fastest title: VoiceSpeedType description: Enum for voice speed options. GenderType: type: string enum: - male - female title: GenderType description: Enum for gender options. src__models__digital_humans__digital_human_response__DigitalHumanResponse: properties: digital_human: $ref: '#/components/schemas/DigitalHumanResponseData' description: The digital human data simulation_ids: anyOf: - items: type: integer type: array - type: 'null' title: Simulation Ids description: List of simulation IDs associated with this digital human simulation_id: anyOf: - type: integer - type: 'null' title: Simulation Id description: ID of the associated simulation. Use simulation_ids instead. deprecated: true type: object required: - digital_human title: DigitalHumanResponse description: Response model for digital human operations with clear separation of digital human data and simulation context. DigitalHumanResponseData: properties: id: anyOf: - type: integer - type: 'null' title: Id description: Unique identifier for the digital human intent: type: string title: Intent description: Description of the digital human success_criteria: type: string title: Success Criteria description: Success criteria for the digital human tag: anyOf: - type: string - type: 'null' title: Tag description: Tag for categorizing the digital human name: anyOf: - type: string - type: 'null' title: Name description: Name of the digital human language: anyOf: - $ref: '#/components/schemas/LanguageType' - type: 'null' description: Language of the digital human accent: anyOf: - $ref: '#/components/schemas/AccentType' - type: 'null' description: Accent of the digital human gender: anyOf: - $ref: '#/components/schemas/GenderType' - type: 'null' description: Gender of the digital human background_noise: anyOf: - type: string - type: 'null' title: Background Noise description: Type of background noise voice_speed: anyOf: - type: string - type: 'null' title: Voice Speed description: Speed of the digital human's voice audio_quality: anyOf: - type: string - type: 'null' title: Audio Quality description: Audio quality of the digital human's voice fluency: anyOf: - type: string - type: 'null' title: Fluency description: Fluency level of the digital human's speech verbosity: anyOf: - type: string - type: 'null' title: Verbosity description: Verbosity level of the digital human's responses phone_number: anyOf: - type: string - type: 'null' title: Phone Number description: Phone number for the digital human outbound_text_number: anyOf: - type: string - type: 'null' title: Outbound Text Number description: Outbound text number websocket_url: anyOf: - type: string - type: 'null' title: Websocket Url description: WebSocket URL for real-time communication background_noise_volume: anyOf: - type: number - type: 'null' title: Background Noise Volume description: Volume of background noise expected_tool_calls: anyOf: - items: $ref: '#/components/schemas/ExpectedToolCall' type: array - type: 'null' title: Expected Tool Calls description: Expected tool calls allow_end_call_tool: anyOf: - type: boolean - type: 'null' title: Allow End Call Tool description: Allow the digital human to end the tool call default: true endpointing_delay: anyOf: - type: number - type: 'null' title: Endpointing Delay description: Delay for endpointing creativity: anyOf: - type: number - type: 'null' title: Creativity description: Temperature setting hangup_phrases: anyOf: - items: type: string type: array - type: 'null' title: Hangup Phrases description: Phrases that trigger hangup hangup_instructions: anyOf: - type: string - type: 'null' title: Hangup Instructions description: Freeform instructions for how/when to hang up allow_silence_tool: anyOf: - type: boolean - type: 'null' title: Allow Silence Tool description: Allow the digital human to use the silence tool default: false silence_tool_instructions: anyOf: - type: string - type: 'null' title: Silence Tool Instructions description: Tool instructions; "default" for built-in behavior or a custom string. default: default silence_timeout: anyOf: - type: integer - type: 'null' title: Silence Timeout description: Silence timeout in seconds role_description: anyOf: - type: string - type: 'null' title: Role Description description: Description of the role for the digital human created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At description: When this digital human was created traits: anyOf: - items: $ref: '#/components/schemas/Trait' type: array - type: 'null' title: Traits description: List of traits associated with this digital human interruptions: anyOf: - additionalProperties: true type: object - type: 'null' title: Interruptions description: Interruption configuration for the digital human scripted_responses: anyOf: - items: $ref: '#/components/schemas/ScriptedResponse' type: array - type: 'null' title: Scripted Responses description: List of scripted responses for the digital human speaks_first_config: anyOf: - $ref: '#/components/schemas/SpeaksFirstConfig' - type: 'null' description: 'Speaks first config: speaks_first, mode (custom|ai_generated), message (when custom)' original_transcript: anyOf: - type: string - type: 'null' title: Original Transcript description: The original transcript text attached to this digital human formatted_transcript: anyOf: - items: additionalProperties: type: string type: object type: array - type: 'null' title: Formatted Transcript description: 'Structured transcript as [{"role": "USER"|"AGENT", "utterance": "..."}]' enriched_playback: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Enriched Playback description: 'Optional enriched playback stored as JSONB: a list of turn objects' livekit_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Livekit Metadata description: LiveKit-specific configuration and metadata for this digital human type: object required: - intent - success_criteria title: DigitalHumanResponseData description: Response model for digital human data. DigitalHumanRequestData: properties: intent: type: string title: Intent description: Description of the digital human. Leave empty when enriched_playback is set; the agent uses playback instead. default: '' success_criteria: type: string title: Success Criteria description: Success criteria. Leave empty when enriched_playback is set; the agent uses playback instead. default: '' name: anyOf: - type: string - type: 'null' title: Name description: Name of the digital human tag: anyOf: - type: string - type: 'null' title: Tag description: Tag for categorizing the digital human language: anyOf: - $ref: '#/components/schemas/LanguageType' - type: 'null' description: Language the digital human speaks default: en accent: anyOf: - $ref: '#/components/schemas/AccentType' - type: 'null' description: Accent of the digital human gender: anyOf: - $ref: '#/components/schemas/GenderType' - type: 'null' description: Gender of the digital human background_noise: anyOf: - $ref: '#/components/schemas/BackgroundNoiseType' - type: 'null' description: Type of background noise default: none voice_speed: anyOf: - $ref: '#/components/schemas/VoiceSpeedType' - type: 'null' description: Speed of the digital human's voice default: normal audio_quality: anyOf: - $ref: '#/components/schemas/AudioQualityType' - type: 'null' description: Audio quality of the digital human's voice default: high fluency: anyOf: - $ref: '#/components/schemas/FluencyType' - type: 'null' description: Fluency level of the digital human's speech default: native verbosity: anyOf: - $ref: '#/components/schemas/VerbosityType' - type: 'null' description: Verbosity level of the digital human's responses default: medium phone_number: type: string title: Phone Number description: Phone number for the digital human outbound_text_number: anyOf: - type: string - type: 'null' title: Outbound Text Number description: Outbound text number background_noise_volume: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Background Noise Volume description: Volume of background noise default: 0.8 expected_tool_calls: anyOf: - items: $ref: '#/components/schemas/ExpectedToolCall' type: array - type: 'null' title: Expected Tool Calls description: Expected tool call outputs allow_end_call_tool: anyOf: - type: boolean - type: 'null' title: Allow End Call Tool description: Allow the digital human to end the tool call default: true endpointing_delay: anyOf: - type: number - type: 'null' title: Endpointing Delay description: Delay for endpointing default: 1.5 creativity: anyOf: - type: number maximum: 2.0 minimum: 0.0 - type: 'null' title: Creativity description: How creative the digital human is (Model temperature) default: 0.7 hangup_phrases: anyOf: - items: type: string type: array - type: 'null' title: Hangup Phrases description: Phrases that trigger hangup hangup_instructions: anyOf: - type: string - type: 'null' title: Hangup Instructions description: Freeform instructions for how/when to hang up allow_silence_tool: type: boolean title: Allow Silence Tool description: Allow the digital human to use the silence tool default: false silence_tool_instructions: type: string title: Silence Tool Instructions description: Tool instructions; use "default" for built-in behavior or custom text default: default silence_timeout: anyOf: - type: integer minimum: 15.0 - type: 'null' title: Silence Timeout description: Silence timeout in seconds role_description: anyOf: - type: string - type: 'null' title: Role Description description: Description of the role for the digital human traits: anyOf: - items: $ref: '#/components/schemas/Trait' type: array - type: 'null' title: Traits description: List of traits associated with this digital human interruptions: anyOf: - $ref: '#/components/schemas/SimpleInterruptionConfig' - $ref: '#/components/schemas/KeywordsInterruptionConfig' - $ref: '#/components/schemas/ContextualInterruptionConfig' - type: 'null' title: Interruptions description: Interruption configuration for the digital human scripted_responses: anyOf: - items: $ref: '#/components/schemas/ScriptedResponse' type: array - type: 'null' title: Scripted Responses description: List of scripted responses for the digital human speaks_first_config: anyOf: - $ref: '#/components/schemas/SpeaksFirstConfig' - type: 'null' description: Speaks first configuration for the digital human original_transcript: anyOf: - type: string - type: 'null' title: Original Transcript description: Original transcript text to replay. When provided (and formatted_transcript not provided), utterances are extracted via LLM and used as the intent. formatted_transcript: anyOf: - items: additionalProperties: type: string type: object type: array - type: 'null' title: Formatted Transcript description: Pre-computed structured transcript as [{role, utterance}]. When provided, skips the format-transcript LLM call. enriched_playback: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Enriched Playback description: 'Optional enriched playback stored as JSONB: a list of turn objects' always_on_mode: anyOf: - type: boolean - type: 'null' title: Always On Mode description: Whether always-on mode is enabled default: false always_on_active: anyOf: - type: boolean - type: 'null' title: Always On Active description: When true, this DH actively receives calls on phone_number. Defaults to True when phone_number is set. num_runs: anyOf: - type: integer minimum: 1.0 - type: 'null' title: Num Runs description: Number of times this digital human is run per simulation run (run count). default: 1 livekit_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Livekit Metadata description: LiveKit-specific configuration and metadata for this digital human type: object required: - phone_number title: DigitalHumanRequestData description: Digital human data model for requests (without id and created_at). DigitalHumansListResponse: properties: digital_humans: items: $ref: '#/components/schemas/DigitalHumanResponseData' type: array title: Digital Humans description: List of digital humans total: type: integer title: Total description: Total number of digital humans simulation_id: type: integer title: Simulation Id description: ID of the simulation type: object required: - digital_humans - total - simulation_id title: DigitalHumansListResponse description: Response model for listing digital humans by simulation. OccurrenceMode: type: string enum: - always - first_n title: OccurrenceMode description: Enum for scripted response occurrence modes. KeywordResponse: properties: keyword: type: string title: Keyword description: The keyword to listen for and interrupt on response: type: string title: Response description: Response to say when keyword is detected probability: type: number maximum: 1.0 minimum: 0.0 title: Probability description: Probability of responding (0.0-1.0) - defaults to 1.0 default: 1.0 type: object required: - keyword - response title: KeywordResponse description: Model for a keyword response configuration. GenerateIntentSummaryRequest: properties: test_case_id: type: integer title: Test Case Id description: ID of the test case type: object required: - test_case_id title: GenerateIntentSummaryRequest description: Request model for generating intent summary. TraitDataType: type: string enum: - BOOLEAN - STRING - DATE - NUMBER title: TraitDataType description: Enum for trait data types. SpeaksFirstConfig: properties: speaks_first: type: boolean title: Speaks First description: Whether the digital human speaks first in the call mode: anyOf: - type: string enum: - custom - ai_generated - type: 'null' title: Mode description: 'When speaks_first is true: ''custom'' (user-provided message) or ''ai_generated'' (no message)' message: anyOf: - type: string - type: 'null' title: Message description: When mode is 'custom', the message the digital human says first type: object required: - speaks_first title: SpeaksFirstConfig description: 'Configuration for whether the digital human speaks first and how. Stored as JSONB in Supabase (speaks_first_config).' HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError LanguageType: type: string enum: - en - es - pt - ja - tr - hi - ar - ru - zh - ml - fr - yue - vi - de title: LanguageType description: Enum for supported language types. GeneratePromptSummaryRequest: properties: prompt_id: type: string title: Prompt Id description: ID of the prompt (UUID) type: object required: - prompt_id title: GeneratePromptSummaryRequest description: Request model for generating prompt summary. VerbosityType: type: string enum: - low - medium - high title: VerbosityType description: Enum for verbosity level options. ScriptedResponse: properties: match_type: $ref: '#/components/schemas/MatchType' description: 'Type of match: ''exact'' or ''context''' match_phrase: type: string title: Match Phrase description: The phrase to match against response_type: $ref: '#/components/schemas/src__models__digital_humans__enums__ResponseType' description: 'Type of response: ''phrase'', ''silence'', or ''dtmf''' response_value: anyOf: - type: string - type: 'null' title: Response Value description: The response text (required if response_type is 'phrase' or 'dtmf', optional for 'silence') occurrence_mode: $ref: '#/components/schemas/OccurrenceMode' description: 'When to apply: ''always'' or ''first_n''' occurrence_n: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Occurrence N description: Number of times to apply (required if occurrence_mode is 'first_n', must be > 0) silence_duration: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Silence Duration description: Duration in seconds for silence period (only used when response_type is 'silence', must be > 0 if provided) type: object required: - match_type - match_phrase - response_type - occurrence_mode title: ScriptedResponse description: Model for a scripted response configuration. ContextualInterruptionConfig: properties: type: type: string const: contextual title: Type description: Type discriminator for contextual interruption contextual_prompt: type: string title: Contextual Prompt description: Contextual prompt for LLM-based interruptions type: object required: - type - contextual_prompt title: Contextual description: Contextual/LLM-based interruption configuration. FluencyType: type: string enum: - beginner - intermediate - native title: FluencyType description: Enum for fluency level options. CreateDigitalHumanRequest: properties: simulation_ids: anyOf: - items: type: integer type: array - type: 'null' title: Simulation Ids description: List of simulation IDs to associate with this digital human simulation_id: anyOf: - type: integer - type: 'null' title: Simulation Id description: ID of the associated simulation. Use simulation_ids instead. deprecated: true digital_human: $ref: '#/components/schemas/DigitalHumanRequestData' description: The digital human data type: object required: - digital_human title: CreateDigitalHumanRequest description: Request model for creating a digital human. Trait: properties: trait_name: type: string title: Trait Name description: Name of the trait trait_data_type: $ref: '#/components/schemas/TraitDataType' description: Data type of the trait value: title: Value description: Value of the trait (stored as JSONB) is_sip_header: type: boolean title: Is Sip Header description: Whether this trait is a SIP header default: false type: object required: - trait_name - trait_data_type - value title: Trait description: Model for a single trait. ExpectedToolCall: properties: name: type: string title: Name description: Name of the expected tool call parameters: anyOf: - additionalProperties: true type: object - type: 'null' title: Parameters description: Expected parameters passed to the tool call output: anyOf: - {} - type: 'null' title: Output description: Expected output returned by the tool call type: object required: - name title: ExpectedToolCall description: Represents an expected tool call during a conversation. AudioQualityType: type: string enum: - high - medium - low - horrible title: AudioQualityType description: Enum for audio quality options. UpdateDigitalHumanRequest: properties: intent: anyOf: - type: string - type: 'null' title: Intent description: Description of the digital human success_criteria: anyOf: - type: string - type: 'null' title: Success Criteria description: Success criteria for the digital human name: anyOf: - type: string - type: 'null' title: Name description: Name of the digital human tag: anyOf: - type: string - type: 'null' title: Tag description: Tag for categorizing the digital human language: anyOf: - $ref: '#/components/schemas/LanguageType' - type: 'null' description: Language the digital human speaks default: en accent: anyOf: - $ref: '#/components/schemas/AccentType' - type: 'null' description: Accent of the digital human gender: anyOf: - $ref: '#/components/schemas/GenderType' - type: 'null' description: Gender of the digital human background_noise: anyOf: - $ref: '#/components/schemas/BackgroundNoiseType' - type: 'null' description: Type of background noise default: none voice_speed: anyOf: - $ref: '#/components/schemas/VoiceSpeedType' - type: 'null' description: Speed of the digital human's voice default: normal audio_quality: anyOf: - $ref: '#/components/schemas/AudioQualityType' - type: 'null' description: Audio quality of the digital human's voice fluency: anyOf: - $ref: '#/components/schemas/FluencyType' - type: 'null' description: Fluency level of the digital human's speech verbosity: anyOf: - $ref: '#/components/schemas/VerbosityType' - type: 'null' description: Verbosity level of the digital human's responses phone_number: anyOf: - type: string - type: 'null' title: Phone Number description: Phone number for the digital human outbound_text_number: anyOf: - type: string - type: 'null' title: Outbound Text Number description: Outbound text number background_noise_volume: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Background Noise Volume description: Volume of background noise default: 0.8 expected_tool_calls: anyOf: - items: $ref: '#/components/schemas/ExpectedToolCall' type: array - type: 'null' title: Expected Tool Calls description: Expected tool call outputs allow_end_call_tool: anyOf: - type: boolean - type: 'null' title: Allow End Call Tool description: Allow the digital human to end the tool call endpointing_delay: anyOf: - type: number - type: 'null' title: Endpointing Delay description: Delay for endpointing default: 1.5 creativity: anyOf: - type: number maximum: 2.0 minimum: 0.0 - type: 'null' title: Creativity description: How creative the digital human is (Model temperature) default: 0.7 hangup_phrases: anyOf: - items: type: string type: array - type: 'null' title: Hangup Phrases description: Phrases that trigger hangup hangup_instructions: anyOf: - type: string - type: 'null' title: Hangup Instructions description: Freeform instructions for how/when to hang up allow_silence_tool: anyOf: - type: boolean - type: 'null' title: Allow Silence Tool description: Allow the digital human to use the silence tool default: null silence_tool_instructions: anyOf: - type: string - type: 'null' title: Silence Tool Instructions description: Tool instructions; set to "default" for built-in behavior or custom text default: null silence_timeout: anyOf: - type: integer minimum: 15.0 - type: 'null' title: Silence Timeout description: Silence timeout in seconds simulation_ids: anyOf: - items: type: integer type: array - type: 'null' title: Simulation Ids description: Array of simulation IDs to associate with this digital human. If provided, completely replaces existing associations. traits: anyOf: - items: $ref: '#/components/schemas/Trait' type: array - type: 'null' title: Traits description: List of traits associated with this digital human. If provided, completely replaces existing traits. interruptions: anyOf: - $ref: '#/components/schemas/SimpleInterruptionConfig' - $ref: '#/components/schemas/KeywordsInterruptionConfig' - $ref: '#/components/schemas/ContextualInterruptionConfig' - type: 'null' title: Interruptions description: Interruption configuration for the digital human. If provided, completely replaces existing interruption config. scripted_responses: anyOf: - items: $ref: '#/components/schemas/ScriptedResponse' type: array - type: 'null' title: Scripted Responses description: List of scripted responses for the digital human. If provided, completely replaces existing scripted responses. role_description: anyOf: - type: string - type: 'null' title: Role Description description: Description of the role for the digital human speaks_first_config: anyOf: - $ref: '#/components/schemas/SpeaksFirstConfig' - type: 'null' description: Speaks first configuration for the digital human. If provided, completely replaces existing speaks first config. original_transcript: anyOf: - type: string - type: 'null' title: Original Transcript description: Original transcript text. If changed from the current value, utterances are re-extracted and the intent is regenerated. formatted_transcript: anyOf: - items: additionalProperties: type: string type: object type: array - type: 'null' title: Formatted Transcript description: Pre-computed structured transcript as [{role, utterance}]. When provided alongside original_transcript, skips the LLM formatting call. enriched_playback: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Enriched Playback description: 'Optional enriched playback stored as JSONB: a list of turn objects' num_runs: anyOf: - type: integer minimum: 1.0 - type: 'null' title: Num Runs description: Number of times this digital human is run per simulation run (run count). livekit_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Livekit Metadata description: LiveKit-specific configuration and metadata for this digital human. If provided, completely replaces existing metadata. always_on_mode: anyOf: - type: boolean - type: 'null' title: Always On Mode description: Whether always-on mode is enabled for this digital human always_on_active: anyOf: - type: boolean - type: 'null' title: Always On Active description: When true, this DH actively receives calls on phone_number; when false, number is assigned but inactive override_conflict: anyOf: - type: boolean - type: 'null' title: Override Conflict description: When true, allows activation to replace an existing always-on active DH using the same phone number. default: false type: object title: UpdateDigitalHumanRequest description: Request model for updating a digital human - contains only the digital human data. KeywordsInterruptionConfig: properties: type: type: string const: keywords title: Type description: Type discriminator for keywords interruption (required) keyword_responses: items: $ref: '#/components/schemas/KeywordResponse' type: array title: Keyword Responses description: Array of keyword response objects, each with keyword, response, and optional probability type: object required: - type - keyword_responses title: Keywords description: Keywords-based interruption configuration. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError GenerateObjectivesRequest: properties: test_case_id: type: integer title: Test Case Id description: ID of the test case type: object required: - test_case_id title: GenerateObjectivesRequest description: Request model for generating objectives. BackgroundNoiseType: type: string enum: - none - office - talking - traffic - cafe - park - tv title: BackgroundNoiseType description: Enum for background noise options. GeneratePromptSummaryResponse: properties: prompt_summary: anyOf: - type: string - type: 'null' title: Prompt Summary description: The generated prompt summary, or null if prompt is short prompt_id: type: string title: Prompt Id description: ID of the prompt skipped: type: boolean title: Skipped description: True if summary was skipped because prompt is short default: false type: object required: - prompt_id title: GeneratePromptSummaryResponse description: Response model for generating prompt summary. GenerateFormattedTranscriptRequest: properties: original_transcript: type: string title: Original Transcript description: Raw transcript in any format type: object required: - original_transcript title: GenerateFormattedTranscriptRequest GenerateFormattedTranscriptResponse: properties: formatted_transcript: items: additionalProperties: type: string type: object type: array title: Formatted Transcript description: 'Structured transcript: [{"role": "USER"|"AGENT", "utterance": "..."}]' description: type: string title: Description description: JSON-encoded list of user utterances (the intent/description field) speaks_first_config: anyOf: - $ref: '#/components/schemas/SpeaksFirstConfig' - type: 'null' description: Speaks first configuration derived from the transcript type: object required: - formatted_transcript - description title: GenerateFormattedTranscriptResponse GenerateObjectivesResponse: properties: objectives: anyOf: - type: string - type: 'null' title: Objectives description: The generated objectives as a formatted string test_case_id: type: integer title: Test Case Id description: ID of the test case type: object required: - test_case_id title: GenerateObjectivesResponse description: Response model for generating objectives. MatchType: type: string enum: - exact - context title: MatchType description: Enum for scripted response match types. AccentType: type: string enum: - multilingual - american - american2 - southern - italian - indian - british - australian - mexican - spanish - portuguese - french - turkish - japanese - hindi - arabic - russian - chinese - german title: AccentType description: Enum for accent options. SimpleInterruptionConfig: properties: type: type: string enum: - none - low - medium - high title: Type description: 'Interruption level: none, low, medium, or high' type: object required: - type title: Default description: Simple interruption configuration with predefined levels. GenerateIntentSummaryResponse: properties: intent_summary: anyOf: - type: string - type: 'null' title: Intent Summary description: The generated intent summary, or null if intent is short test_case_id: type: integer title: Test Case Id description: ID of the test case skipped: type: boolean title: Skipped description: True if summary was skipped because intent is short default: false type: object required: - test_case_id title: GenerateIntentSummaryResponse description: Response model for generating intent summary. src__models__digital_humans__enums__ResponseType: type: string enum: - phrase - silence - dtmf title: ResponseType description: Enum for scripted response types. securitySchemes: apiKeyAuth: type: apiKey in: header name: X-API-Key description: API key required to authenticate requests.