---
title: "Get Digital Human"
method: GET
path: "/v1/digital-human/{digital_human_id}"
tags: ["Digital Humans"]
---

# Get Digital Human

`GET /v1/digital-human/{digital_human_id}`

Get a digital human by ID.

## Path parameters

- `digital_human_id` integer, required

## Headers

- `X-API-Key` string, required

## Response `200`

Successful Response

- SrcModelsDigitalHumansDigitalHumanResponseDigitalHumanResponse — Response model for digital human operations with clear separation of digital human data and simulation context.
  - `digital_human` DigitalHumanResponseData, required — Response model for digital human data.
    - `id` integer, nullable — Unique identifier for the digital human
    - `bluejay_as_code_id` string, uuid, nullable — Stable code-addressable identifier
    - `intent` string, required — Description of the digital human
    - `success_criteria` string, required — Success criteria for the digital human
    - `tag` string, nullable — Tag for categorizing the digital human
    - `tags` string[], nullable — All tags associated with the digital human
    - `name` string, nullable — Name of the digital human
    - `language` 'en' | 'es' | 'pt' | 'ja' | 'tr' | 'hi' | 'ar' | 'he' | 'ru' | 'zh' | 'ml' | 'fr' | 'yue' | 'vi' | 'de' | 'ko' | 'ur' | 'te' | 'ta' | 'mal' | 'kn' | 'mr' | 'gu' | 'ad' — Enum for supported language types.
    - `accent` 'multilingual' | 'american' | 'american2' | 'mature' | 'southern' | 'italian' | 'indian' | 'british' | 'australian' | 'scottish' | 'irish' | 'welsh' | 'mexican' | 'spanish' | 'portuguese' | 'french' | 'turkish' | 'japanese' | 'hindi' | 'arabic' | 'egyptian' | 'levantine' | 'hebrew' | 'russian' | 'chinese' | 'german' | 'korean' | 'urdu' | 'telugu' | 'tamil' | 'malayalam' | 'kannada' | 'marathi' | 'gujarati' | 'autodetect' — Enum for accent options.
    - `gender` 'male' | 'female' — Enum for gender options.
    - `custom_voice_id` string, nullable — ElevenLabs voice_id of a cloned voice used for TTS, if assigned
    - `background_noise` string, nullable — Type of background noise
    - `custom_background_noise_url` string, nullable — Bucket-relative path of the uploaded custom background noise audio when background_noise is 'custom'
    - `voice_speed` string, nullable — Speed of the digital human's voice
    - `audio_quality` string, nullable — Audio quality of the digital human's voice
    - `fluency` string, nullable — Fluency level of the digital human's speech
    - `verbosity` string, nullable — Verbosity level of the digital human's responses
    - `phone_number` string, nullable — Phone number for the digital human
    - `extension` string, nullable — Extension dialed as DTMF after connecting when this DH calls an inbound agent
    - `outbound_text_number` string, nullable — Outbound text number
    - `follow_up_sms_success_criteria` string, nullable — Criteria the captured follow-up SMS is graded against
    - `websocket_url` string, nullable — WebSocket URL for real-time communication
    - `background_noise_volume` number, nullable — Volume of background noise
    - `expected_tool_calls` ExpectedToolCall[], nullable — Expected tool calls
      - `name` string, required — Name of the expected tool call
      - `parameters` object, nullable — Expected parameters passed to the tool call
      - `output` unknown
    - `allow_end_call_tool` boolean, nullable — Allow the digital human to end the tool call
    - `allow_silence_tool` boolean, nullable — Allow the digital human to use the silence tool
    - `allow_dtmf_tool` boolean, nullable — Allow the digital human to use the DTMF tool
    - `default_dtmf_or_voiced` string, nullable
    - `silence_tool_instructions` string, nullable — Tool instructions; "default" or custom text
    - `endpointing_delay` number, nullable — Delay for endpointing
    - `creativity` number, nullable — Temperature setting
    - `hangup_phrases` string[], nullable — Phrases that trigger hangup
    - `hangup_instructions` string, nullable — Freeform instructions for how/when to hang up
    - `silence_timeout` integer, nullable — Silence timeout in seconds
    - `role_description` string, nullable — Description of the role for the digital human
    - `created_at` string, date-time, nullable — When this digital human was created
    - `traits` TraitOutput[], nullable — List of traits associated with this digital human
      - `trait_name` string, required — Name of the trait
      - `trait_data_type` 'BOOLEAN' | 'STRING' | 'DATE' | 'NUMBER', required — Enum for trait data types.
      - `value` unknown, required
      - `is_sip_header` boolean — Whether this trait is a SIP header
    - `interruptions` object, nullable — Interruption configuration for the digital human
    - `scripted_responses` ScriptedResponse[], nullable — List of scripted responses for the digital human
      - `match_type` 'exact' | 'context', required — Enum for scripted response match types.
      - `match_phrase` string, required — The phrase to match against
      - `response_type` 'phrase' | 'silence' | 'dtmf' | 'audio', required — Enum for scripted response types.
      - `response_value` string, nullable — The response text (required for 'phrase' and 'dtmf', optional for 'silence', unused for 'audio')
      - `scripted_response_audio_snippet_url` string, nullable — Skywatch bucket path of an uploaded audio file. AUDIO rows only — the agent downloads and plays this verbatim.
      - `occurrence_mode` 'always' | 'first_n', required — Enum for scripted response occurrence modes.
      - `occurrence_n` integer, nullable — Number of times to apply (required if occurrence_mode is 'first_n', must be > 0)
      - `silence_duration` integer, nullable — Duration in seconds for silence period (only used when response_type is 'silence', must be > 0 if provided)
    - `speaks_first_config` SpeaksFirstConfig — Configuration for whether the digital human speaks first and how. Stored as JSONB in Supabase (speaks_first_config).
      - `speaks_first` boolean, required — Whether the digital human speaks first in the call
      - `mode` 'custom' | 'ai_generated', nullable — When speaks_first is true: 'custom' (user-provided message) or 'ai_generated' (no message)
      - `message` string, nullable — When mode is 'custom', the message the digital human says first
    - `original_transcript` string, nullable — The original transcript text attached to this digital human
    - `formatted_transcript` object[], nullable — Structured transcript as [{"role": "USER"|"AGENT", "utterance": "..."}]
    - `enriched_playback` object[], nullable — Optional enriched playback stored as JSONB: a list of turn objects
    - `workflow_v2_id` string, uuid, nullable — Source workflow_v2 UUID — set when this DH is generated from a workflow
    - `workflow_path_index` integer, nullable — 0-based path index within enumerate_workflow_v2_paths output
    - `tested_path` string[], nullable — Ordered names of the workflow path steps this DH was generated from (Generate-From-Workflow only).
    - `livekit_metadata` object, nullable — LiveKit-specific configuration and metadata for this digital human
    - `test_name` string, nullable — User-facing label for this digital human
    - `journey_steps` JourneyStep[], nullable — Ordered journey steps for a multi-step (Customer Journey) digital human
      - `step` integer, required
      - `intent` string
      - `success_criteria` string
      - `modality` 'voice' | 'sms'
      - `direction` 'inbound' | 'outbound', nullable
      - `wait_seconds` integer, nullable
      - `response_window_seconds` integer, nullable
      - `unresponsive` boolean
  - `simulation_ids` integer[], nullable — List of simulation IDs associated with this digital human
  - `simulation_id` integer, nullable — ID of the associated simulation. Use simulation_ids instead.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/getbluejay/apis/bluejay-api.md) · [All operations](https://skmtc.net/getbluejay/apis/bluejay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getbluejay/bluejay-api/versions/f48cef80963f/schema)
