Bluejay Digital Humans API
The Digital Humans API from Bluejay — 8 operation(s) for digital humans.
The Digital Humans API from Bluejay — 8 operation(s) for digital humans.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/bluejay-digital-humans-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Bluejay 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:
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.
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.
FluencyType:
type: string
enum:
- beginner
- intermediate
- native
title: FluencyType
description: Enum for fluency level options.
GenerateFormattedTranscriptRequest:
properties:
original_transcript:
type: string
title: Original Transcript
description: Raw transcript in any format
type: object
required:
- original_transcript
title: GenerateFormattedTranscriptRequest
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.
OccurrenceMode:
type: string
enum:
- always
- first_n
title: OccurrenceMode
description: Enum for scripted response occurrence modes.
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.
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.
AudioQualityType:
type: string
enum:
- high
- medium
- low
- horrible
title: AudioQualityType
description: Enum for audio quality options.
BackgroundNoiseType:
type: string
enum:
- none
- office
- talking
- traffic
- cafe
- park
- tv
title: BackgroundNoiseType
description: Enum for background noise options.
MatchType:
type: string
enum:
- exact
- context
title: MatchType
description: Enum for scripted response match types.
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.
VoiceSpeedType:
type: string
enum:
- slowest
- slow
- normal
- fast
- fastest
title: VoiceSpeedType
description: Enum for voice speed options.
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).'
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.
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.
VerbosityType:
type: string
enum:
- low
- medium
- high
title: VerbosityType
description: Enum for verbosity level options.
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.
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.
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.
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
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.
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:
- ite
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bluejay/refs/heads/main/openapi/bluejay-digital-humans-api-openapi.yml