Update Digital Human
Changed onUpdate a digital human by ID.
Request
- Base URLhttps://api.getbluejay.ai
- URLhttps://api.getbluejay.ai/v1/update-digital-human/{digital_human_id}
- AuthHTTPBearer (a scheme the document does not define)
Path parameters
Headers
API key required to authenticate requests.
Request body
The scenario the digital human enacts, in ONE OR TWO SENTENCES: what this caller wants, not how to behave. It fills one slot in a prompt that ALREADY renders traits, verbosity, fluency, a not-the-agent guardrail and end-of-call instructions, so restating those here is duplicate prompt. Anything shaped like 'if the agent says X, do Y' does not belong here — prose makes it non-deterministic. Move it: case facts the agent may ask for (member ID, DOB, order number) to traits; lines that must be said verbatim, a keypad entry, or a deliberate pause to scripted_responses; who opens the call to speaks_first_config; voice and call conditions to their own fields; and lower creativity for repeatability. If you reach for 'correctly', 'appropriately' or 'successfully' you are describing what the AGENT should do — that goes in success_criteria.
Name of the digital human
Tag for categorizing the digital human
Full tag list, replacing the current tags; [] clears them. Takes precedence over tag, where an empty string leaves tags unchanged.
What kind of digital human this is. Stored in test_cases.type; tags are free-form labels.
Enum for supported language types.
Enum for accent options.
Enum for gender options.
ElevenLabs voice_id of a cloned voice. Send empty string or null to clear and revert to the stock accent voice.
Enum for background noise options.
Bucket-relative path of the uploaded custom background noise audio; required when background_noise is 'custom'
Enum for voice speed options.
Enum for audio quality options.
Enum for fluency level options.
Enum for verbosity level options.
Phone number for the digital human
Extension dialed as DTMF after connecting when this DH calls an inbound agent. Send null or an empty string to clear it.
Outbound text number
Criteria the captured follow-up SMS is graded against
Volume of background noise
Allow the digital human to end the tool call
Allow the digital human to use the silence tool
Allow the digital human to use the DTMF tool
Enum for DTMF vs voiced input mode.
Tool instructions; set to "default" for built-in behavior or custom text
Seconds the digital human waits before it replies. Named patience in the UI, and accepted under either name.
Model temperature for the digital human's own speech. Lower it (0.0-0.3) when you want the same call twice — regression tests and anything compared run over run. Keep near the 0.7 default for exploratory or red-team cases.
Phrases that trigger hangup
Freeform instructions for how/when to hang up. Omit the field to leave the stored value alone; send the literal string "default" to reset to the tuned built-in end-of-call behavior, which already handles ordinary goodbyes. Any other string REPLACES it, so write one only for a condition the default would miss.
Silence timeout in seconds
Array of simulation IDs to associate with this digital human. If provided, completely replaces existing associations.
How traits apply when you send traits on an update. Omitted or "merge" upserts only the listed traits by trait_name and keeps every other stored trait. "replace" deletes all stored traits first, then writes only the list — use this to remove traits or to set the full trait set from scratch.
When true, scripted_responses run as a script in list order: only the next unfired one is armed, each fires once, and a blank match_phrase fires on the digital human's next turn. When false any scripted response fires whenever its match_phrase comes up.
Who this caller is, in one short line. Identity and disposition only: what they are calling about is intent, the facts they can recite are traits, how they sound is language/accent/fluency/verbosity. Never internal or agent-side information — the digital human only knows what a real caller would know.
Original transcript text. If changed from the current value, utterances are re-extracted and the intent is regenerated.
Pre-computed structured transcript as [{role, utterance}]. When provided alongside original_transcript, skips the LLM formatting call.
Optional enriched playback stored as JSONB: a list of turn objects
Number of times this digital human is run per simulation run (run count).
LiveKit-specific configuration and metadata for this digital human. If provided, completely replaces existing metadata.
Per-digital-human variables handed to the provider when it originates the call (Bland request_data, Vapi variableValues, Retell dynamic variables). Overrides the agent's template. If provided, completely replaces existing data; pass {} to clear.
Whether always-on mode is enabled for this digital human
When true, this DH actively receives calls on phone_number; when false, number is assigned but inactive
User-facing label for this digital human
When true, allows activation to replace an existing always-on active DH using the same phone number.
Ids of the system-prompt rules this digital human covers, from generate.
The quoted system-prompt rules this digital human covers, shown on its card.
Source workflow_v2 UUID — set when this DH is generated from a workflow
0-based path index within enumerate_workflow_v2_paths output
Ordered names of the workflow path steps this DH was generated from (Generate-From-Workflow only).
Attack tactic key from VECTOR_CATALOG. NULL for non-red-team.
Umbrella attack category (recon | social_engineering | prompt_injection | audio_native).
Crescendo escalation ladder {objective, breach_predicate, ladder}.
Response
Successful Response
List of simulation IDs associated with this digital human
ID of the associated simulation. Use simulation_ids instead.
Changes
- info
request property
list-of-types was widened by adding typesarrayto media typeapplication/json
- info
- info
added the new optional request property
- info
added the optional property
/to the response with the status
- info