Skip to main content
DELETE
/
v1
/
digital-human
/
{digital_human_id}
Delete Digital Human
curl --request DELETE \
  --url https://api.getbluejay.ai/v1/digital-human/{digital_human_id} \
  --header 'X-API-Key: <x-api-key>'
{
  "intent": "<string>",
  "success_criteria": "<string>",
  "id": 123,
  "tag": "<string>",
  "name": "<string>",
  "language": "en",
  "accent": "multilingual",
  "gender": "male",
  "background_noise": "<string>",
  "voice_speed": "<string>",
  "audio_quality": "<string>",
  "fluency": "<string>",
  "verbosity": "<string>",
  "phone_number": "<string>",
  "outbound_text_number": "<string>",
  "websocket_url": "<string>",
  "background_noise_volume": 123,
  "expected_tool_calls": [
    {
      "name": "<string>",
      "parameters": {},
      "output": "<unknown>"
    }
  ],
  "allow_end_call_tool": true,
  "allow_silence_tool": true,
  "silence_tool_instructions": "default",
  "endpointing_delay": 123,
  "creativity": 123,
  "hangup_phrases": [
    "<string>"
  ],
  "hangup_instructions": "<string>",
  "silence_timeout": 123,
  "role_description": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "traits": [
    {
      "trait_name": "<string>",
      "trait_data_type": "BOOLEAN",
      "value": "<unknown>",
      "is_sip_header": false
    }
  ],
  "interruptions": {},
  "scripted_responses": [
    {
      "match_type": "exact",
      "match_phrase": "<string>",
      "response_type": "phrase",
      "occurrence_mode": "always",
      "response_value": "<string>",
      "occurrence_n": 1,
      "silence_duration": 1
    }
  ],
  "speaks_first_config": {
    "speaks_first": true,
    "mode": "custom",
    "message": "<string>"
  },
  "original_transcript": "<string>",
  "formatted_transcript": [
    {}
  ],
  "enriched_playback": [
    {}
  ],
  "workflow_v2_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "workflow_path_index": 123,
  "livekit_metadata": {}
}
Integration Prompt for AI Agents
# Bluejay — Testing & Monitoring Platform for Conversational AI Agents

You are a senior backend engineer integrating the Bluejay API. Think step-by-step: first understand the endpoint, then plan the integration, then implement with minimal changes.

## Delete Digital Human — DELETE /v1/digital-human/{digital_human_id}

> **What this endpoint does:** Delete a digital human by ID.

**Endpoint:** DELETE `https://api.getbluejay.ai/v1/digital-human/{digital_human_id}`
**Auth:** `X-API-Key` header

### Required Parameters
| Name | Type | Description |
|------|------|-------------|
| digital_human_id | integer |  |
| X-API-Key | string | API key required to authenticate requests. |

### Example
**DELETE request:**
```python
import requests

def delete_digital_human(digital_human_id: int, api_key: str) -> dict:
    url = f"https://api.getbluejay.ai/v1/digital-human/{digital_human_id}"
    headers = {"X-API-Key": api_key}
    response = requests.delete(url, headers=headers)
    response.raise_for_status()
    return response.json()
```

### Constraints
- Minimal changes — only add/change files needed for this integration.
- Match existing codebase patterns (naming, file structure, error handling).
- Include error handling for 422: Validation Error.

### Integration Checklist
Before writing code, verify:
1. Which module/service owns this API domain in the codebase?
2. What HTTP client and error-handling patterns does the project use?
3. Are there existing types/interfaces to extend?

Then implement the integration, export it, and confirm it compiles/passes lint.
This endpoint allows you to delete a digital human. Provide the ID in the path to permanently delete a digital human.

Headers

X-API-Key
string
required

API key required to authenticate requests.

Path Parameters

digital_human_id
integer
required

Response

Successful Response

Response model for digital human data.

intent
string
required

Description of the digital human

success_criteria
string
required

Success criteria for the digital human

id
integer | null

Unique identifier for the digital human

tag
string | null

Tag for categorizing the digital human

name
string | null

Name of the digital human

language
enum<string> | null

Language of the digital human

Available options:
en,
es,
pt,
ja,
tr,
hi,
ar,
ru,
zh,
ml,
fr,
yue,
vi,
de
accent
enum<string> | null

Accent of the digital human

Available options:
multilingual,
american,
american2,
mature,
southern,
italian,
indian,
british,
australian,
mexican,
spanish,
portuguese,
french,
turkish,
japanese,
hindi,
arabic,
russian,
chinese,
german
gender
enum<string> | null

Gender of the digital human

Available options:
male,
female
background_noise
string | null

Type of background noise

voice_speed
string | null

Speed of the digital human's voice

audio_quality
string | null

Audio quality of the digital human's voice

fluency
string | null

Fluency level of the digital human's speech

verbosity
string | null

Verbosity level of the digital human's responses

phone_number
string | null

Phone number for the digital human

outbound_text_number
string | null

Outbound text number

websocket_url
string | null

WebSocket URL for real-time communication

background_noise_volume
number | null

Volume of background noise

expected_tool_calls
ExpectedToolCall · object[] | null

Expected tool calls

allow_end_call_tool
boolean | null
default:true

Allow the digital human to end the tool call

allow_silence_tool
boolean | null
default:true

Allow the digital human to use the silence tool

silence_tool_instructions
string | null
default:default

Tool instructions; "default" or custom text

endpointing_delay
number | null

Delay for endpointing

creativity
number | null

Temperature setting

hangup_phrases
string[] | null

Phrases that trigger hangup

hangup_instructions
string | null

Freeform instructions for how/when to hang up

silence_timeout
integer | null

Silence timeout in seconds

role_description
string | null

Description of the role for the digital human

created_at
string<date-time> | null

When this digital human was created

traits
Trait · object[] | null

List of traits associated with this digital human

interruptions
Interruptions · object

Interruption configuration for the digital human

scripted_responses
ScriptedResponse · object[] | null

List of scripted responses for the digital human

speaks_first_config
SpeaksFirstConfig · object

Speaks first config: speaks_first, mode (custom|ai_generated), message (when custom)

original_transcript
string | null

The original transcript text attached to this digital human

formatted_transcript
Formatted Transcript · object[] | null

Structured transcript as [{"role": "USER"|"AGENT", "utterance": "..."}]

enriched_playback
Enriched Playback · object[] | null

Optional enriched playback stored as JSONB: a list of turn objects

workflow_v2_id
string<uuid> | null

Source workflow_v2 UUID — set when this DH is generated from a workflow

workflow_path_index
integer | null

0-based path index within enumerate_workflow_v2_paths output

livekit_metadata
Livekit Metadata · object

LiveKit-specific configuration and metadata for this digital human