Get Custom Metrics By Agent
curl --request GET \
--url https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"metrics": [
{
"id": "<string>",
"name": "<string>",
"response_type": "pass_fail",
"created_at": "2023-11-07T05:31:56Z",
"bluejay_as_code_id": "<string>",
"prompt": "<string>",
"description": "<string>",
"summary": "<string>",
"metric_type": "llm_judge",
"eval_method": "llm_judge",
"settings": {},
"eval_segment": "all",
"scope": "all",
"agent_ids": [
123
],
"min_value": 123,
"max_value": 123,
"category": "<string>",
"tags": [
"<string>"
],
"scoring_guidance": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>",
"created_by": "<string>",
"eval_modality": "AUDIO",
"model": "<string>",
"audio_model": "<string>",
"temperature": 123,
"enum_options": [
"<string>"
],
"tool_names": [
"<string>"
],
"json_schema": {},
"allow_not_applicable": false,
"eval_modality_auto_selected": false,
"template_id": "<string>"
}
],
"total_count": 123,
"page": 123,
"page_size": 123,
"items_in_page": 123,
"total_pages": 123,
"data": [
{
"id": "<string>",
"name": "<string>",
"response_type": "pass_fail",
"created_at": "2023-11-07T05:31:56Z",
"bluejay_as_code_id": "<string>",
"prompt": "<string>",
"description": "<string>",
"summary": "<string>",
"metric_type": "llm_judge",
"eval_method": "llm_judge",
"settings": {},
"eval_segment": "all",
"scope": "all",
"agent_ids": [
123
],
"min_value": 123,
"max_value": 123,
"category": "<string>",
"tags": [
"<string>"
],
"scoring_guidance": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>",
"created_by": "<string>",
"eval_modality": "AUDIO",
"model": "<string>",
"audio_model": "<string>",
"temperature": 123,
"enum_options": [
"<string>"
],
"tool_names": [
"<string>"
],
"json_schema": {},
"allow_not_applicable": false,
"eval_modality_auto_selected": false,
"template_id": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Custom Metrics
Get Custom Metrics by Agent
deprecated
Get all custom metrics for an agent. DEPRECATED: This endpoint is deprecated.
GET
/
v1
/
custom-metrics-by-agent
/
{agent_id}
Get Custom Metrics By Agent
curl --request GET \
--url https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"metrics": [
{
"id": "<string>",
"name": "<string>",
"response_type": "pass_fail",
"created_at": "2023-11-07T05:31:56Z",
"bluejay_as_code_id": "<string>",
"prompt": "<string>",
"description": "<string>",
"summary": "<string>",
"metric_type": "llm_judge",
"eval_method": "llm_judge",
"settings": {},
"eval_segment": "all",
"scope": "all",
"agent_ids": [
123
],
"min_value": 123,
"max_value": 123,
"category": "<string>",
"tags": [
"<string>"
],
"scoring_guidance": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>",
"created_by": "<string>",
"eval_modality": "AUDIO",
"model": "<string>",
"audio_model": "<string>",
"temperature": 123,
"enum_options": [
"<string>"
],
"tool_names": [
"<string>"
],
"json_schema": {},
"allow_not_applicable": false,
"eval_modality_auto_selected": false,
"template_id": "<string>"
}
],
"total_count": 123,
"page": 123,
"page_size": 123,
"items_in_page": 123,
"total_pages": 123,
"data": [
{
"id": "<string>",
"name": "<string>",
"response_type": "pass_fail",
"created_at": "2023-11-07T05:31:56Z",
"bluejay_as_code_id": "<string>",
"prompt": "<string>",
"description": "<string>",
"summary": "<string>",
"metric_type": "llm_judge",
"eval_method": "llm_judge",
"settings": {},
"eval_segment": "all",
"scope": "all",
"agent_ids": [
123
],
"min_value": 123,
"max_value": 123,
"category": "<string>",
"tags": [
"<string>"
],
"scoring_guidance": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>",
"created_by": "<string>",
"eval_modality": "AUDIO",
"model": "<string>",
"audio_model": "<string>",
"temperature": 123,
"enum_options": [
"<string>"
],
"tool_names": [
"<string>"
],
"json_schema": {},
"allow_not_applicable": false,
"eval_modality_auto_selected": false,
"template_id": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}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.
## Get Custom Metrics by Agent — GET /v1/custom-metrics-by-agent/{agent_id}
> **What this endpoint does:** Get all custom metrics for an agent. **DEPRECATED**: This endpoint is deprecated. Please use GET /custom-metrics?agent_id={agent_id} instead, which supports pagination and additional features.
**Endpoint:** GET `https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_id}`
**Auth:** `X-API-Key` header
### Required Parameters
| Name | Type | Description |
|------|------|-------------|
| agent_id | integer | |
| X-API-Key | string | API key required to authenticate requests. |
### Example
**Simple GET:**
```python
import requests
def get_custom_metrics_by_agent(agent_id: int, api_key: str) -> dict:
url = f"https://api.getbluejay.ai/v1/custom-metrics-by-agent/{agent_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.
GET /custom-metrics?agent_id={agent_id} instead, which supports pagination and additional features.Path Parameters
Response
Successful Response
Response model for listing custom metrics
List of custom metrics
Show child attributes
Show child attributes
Total number of metrics across all pages
Current page number
Requested number of items per page
Actual number of items in current page
Total number of pages
Show child attributes
Show child attributes