Add a session as an evaluation case
curl --request POST \
--url http://localhost:8000/dev/apps/{app_name}/eval-sets/{eval_set_id}/add-session \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"evalId": "case-001",
"sessionId": "session-001",
"userId": "user-001"
}
'import requests
url = "http://localhost:8000/dev/apps/{app_name}/eval-sets/{eval_set_id}/add-session"
payload = {
"evalId": "case-001",
"sessionId": "session-001",
"userId": "user-001"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({evalId: 'case-001', sessionId: 'session-001', userId: 'user-001'})
};
fetch('http://localhost:8000/dev/apps/{app_name}/eval-sets/{eval_set_id}/add-session', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));null{
"detail": "<string>"
}{
"error": "CONTENT_LENGTH_REQUIRED"
}{
"error": "REQUEST_TOO_LARGE"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Development evaluation
Add a session as an evaluation case
Convert an existing session into a case identified by evalId; success returns JSON null
Exposed by the verified SDK/ADK versions for trusted development and debugging. Paths depend on the installed ADK version and should not be used as public application entry points
POST
/
dev
/
apps
/
{app_name}
/
eval-sets
/
{eval_set_id}
/
add-session
Add a session as an evaluation case
curl --request POST \
--url http://localhost:8000/dev/apps/{app_name}/eval-sets/{eval_set_id}/add-session \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"evalId": "case-001",
"sessionId": "session-001",
"userId": "user-001"
}
'import requests
url = "http://localhost:8000/dev/apps/{app_name}/eval-sets/{eval_set_id}/add-session"
payload = {
"evalId": "case-001",
"sessionId": "session-001",
"userId": "user-001"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({evalId: 'case-001', sessionId: 'session-001', userId: 'user-001'})
};
fetch('http://localhost:8000/dev/apps/{app_name}/eval-sets/{eval_set_id}/add-session', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));null{
"detail": "<string>"
}{
"error": "CONTENT_LENGTH_REQUIRED"
}{
"error": "REQUEST_TOO_LARGE"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create the target evaluation set and confirm that the session identified by
userId and sessionId exists. The service converts that conversation into a new case identified by evalId, allowing a debugging session to become a regression sample
This operation copies conversation content into the evaluation set, which can include user messages and tool results. Review the sample before adding it, then retrieve the case to confirm the saved content
Authorizations
Optional locally without a gateway; cloud deployments use the Runtime API key or user-pool JWT required by that deployment, never the model API key
Path Parameters
Application name; harness_agent for the CLI deployment
Evaluation set ID
Body
application/json
Response
Successful response
Last modified on September 19, 2026