curl --request GET \
--url https://api.getbluejay.ai/v1/retrieve-simulation-results/{simulation_run_id} \
--header 'X-API-Key: <x-api-key>'{
"simulation_run": {
"id": "<string>",
"simulation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"summary": "<string>",
"status": "INITIALIZING",
"total_tests": 123,
"tests_passed": 123,
"tests_failed": 123,
"tests_completed": 123,
"tests_incompleted": 123
},
"simulation_results": [
{
"id": 123,
"digital_human_id": 123,
"result": {},
"duration": 123,
"start_time": "2023-11-07T05:31:56Z",
"end_time": "2023-11-07T05:31:56Z",
"custom_metrics": {},
"status": "<string>",
"latency": {},
"events": [
{
"title": "<string>",
"start_offset_ms": 123,
"description": "<string>",
"end_offset_ms": 123,
"tags": [
"<string>"
],
"metadata": {}
}
],
"transcript_url": "<string>",
"audio_url": "<string>",
"evaluations": [
{
"agent_speak_percentage": 123,
"avg_agent_latency": 123,
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"hallucination": true,
"hallucination_reasoning": "<string>",
"redundancy": true,
"redundancy_reasoning": "<string>",
"latency": {
"avg_agent_latency": 0,
"max_agent_latency": 0,
"p50_agent_latency": 0,
"p90_agent_latency": 0,
"p95_agent_latency": 0,
"p99_agent_latency": 0
},
"filler_ignored_latency": {
"avg_filler_ignored_latency": 0,
"p50_filler_ignored_latency": 0,
"p90_filler_ignored_latency": 0,
"p95_filler_ignored_latency": 0,
"p99_filler_ignored_latency": 0
},
"num_turns": 123,
"call_summary": "<string>",
"custom_evals": [
"<unknown>"
],
"custom_evals_success_rate": 123,
"goal_success": true,
"goal_reasoning": "<string>",
"pronunciation_score": 123,
"pronunciation_reasoning": "<string>",
"sentiment_label": "<string>",
"sentiment_score": 123,
"sentiment_scores": {},
"custom_metrics": [
{
"name": "<string>",
"description": "<string>",
"response_type": "<string>",
"response_value": "<string>",
"reasoning": "<string>",
"min_value": 123,
"max_value": 123,
"category": "<string>",
"tags": [
"<string>"
],
"scoring_guidance": "<string>",
"enum_options": [
"<string>"
]
}
]
}
],
"tool_calls": [
{
"name": "<string>",
"expected": [
{
"parameters": {},
"output": "<unknown>"
}
],
"actual": [
{
"parameters": {},
"output": "<unknown>",
"start_offset_ms": 123
}
]
}
]
}
],
"status": "200"
}Retrieve the results of a simulation run.
Returns the simulation run details and associated test cases.
curl --request GET \
--url https://api.getbluejay.ai/v1/retrieve-simulation-results/{simulation_run_id} \
--header 'X-API-Key: <x-api-key>'{
"simulation_run": {
"id": "<string>",
"simulation_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"summary": "<string>",
"status": "INITIALIZING",
"total_tests": 123,
"tests_passed": 123,
"tests_failed": 123,
"tests_completed": 123,
"tests_incompleted": 123
},
"simulation_results": [
{
"id": 123,
"digital_human_id": 123,
"result": {},
"duration": 123,
"start_time": "2023-11-07T05:31:56Z",
"end_time": "2023-11-07T05:31:56Z",
"custom_metrics": {},
"status": "<string>",
"latency": {},
"events": [
{
"title": "<string>",
"start_offset_ms": 123,
"description": "<string>",
"end_offset_ms": 123,
"tags": [
"<string>"
],
"metadata": {}
}
],
"transcript_url": "<string>",
"audio_url": "<string>",
"evaluations": [
{
"agent_speak_percentage": 123,
"avg_agent_latency": 123,
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"hallucination": true,
"hallucination_reasoning": "<string>",
"redundancy": true,
"redundancy_reasoning": "<string>",
"latency": {
"avg_agent_latency": 0,
"max_agent_latency": 0,
"p50_agent_latency": 0,
"p90_agent_latency": 0,
"p95_agent_latency": 0,
"p99_agent_latency": 0
},
"filler_ignored_latency": {
"avg_filler_ignored_latency": 0,
"p50_filler_ignored_latency": 0,
"p90_filler_ignored_latency": 0,
"p95_filler_ignored_latency": 0,
"p99_filler_ignored_latency": 0
},
"num_turns": 123,
"call_summary": "<string>",
"custom_evals": [
"<unknown>"
],
"custom_evals_success_rate": 123,
"goal_success": true,
"goal_reasoning": "<string>",
"pronunciation_score": 123,
"pronunciation_reasoning": "<string>",
"sentiment_label": "<string>",
"sentiment_score": 123,
"sentiment_scores": {},
"custom_metrics": [
{
"name": "<string>",
"description": "<string>",
"response_type": "<string>",
"response_value": "<string>",
"reasoning": "<string>",
"min_value": 123,
"max_value": 123,
"category": "<string>",
"tags": [
"<string>"
],
"scoring_guidance": "<string>",
"enum_options": [
"<string>"
]
}
]
}
],
"tool_calls": [
{
"name": "<string>",
"expected": [
{
"parameters": {},
"output": "<unknown>"
}
],
"actual": [
{
"parameters": {},
"output": "<unknown>",
"start_offset_ms": 123
}
]
}
]
}
],
"status": "200"
}# 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.
## Retrieve Simulation Results — GET /v1/retrieve-simulation-results/{simulation_run_id}
> **What this endpoint does:** Retrieve the results of a simulation run. Returns the simulation run details and associated test cases.
**Endpoint:** GET `https://api.getbluejay.ai/v1/retrieve-simulation-results/{simulation_run_id}`
**Auth:** `X-API-Key` header
### Required Parameters
| Name | Type | Description |
|------|------|-------------|
| simulation_run_id | string | |
| X-API-Key | string | API key required to authenticate requests. |
### Example
**Simple GET:**
```python
import requests
def retrieve_simulation_results(simulation_run_id: str, api_key: str) -> dict:
url = f"https://api.getbluejay.ai/v1/retrieve-simulation-results/{simulation_run_id}"
headers = {"X-API-Key": api_key}
response = requests.get(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.
simulation_run_id. This endpoint returns detailed information about the simulation, including the agent’s performance, evaluations, hallucinations, redundancy, and custom evaluation metrics.API key required to authenticate requests.
Successful Response