Add a session using the compatibility path
curl --request POST \
--url http://localhost:8000/dev/apps/{app_name}/eval_sets/{eval_set_id}/add_session \
--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 = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'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>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Compatibility endpoints
Add a session using the compatibility path
Equivalent to the hyphenated Add a session as an evaluation case endpoint
Available only with the development UI enabled, such as veadk web or adk api_server --with_ui; the default adk api_server does not expose this endpoint
POST
/
dev
/
apps
/
{app_name}
/
eval_sets
/
{eval_set_id}
/
add_session
Add a session using the compatibility path
curl --request POST \
--url http://localhost:8000/dev/apps/{app_name}/eval_sets/{eval_set_id}/add_session \
--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 = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'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>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}This underscore path uses the same request and response as its hyphenated counterpart and remains available to existing clients. Confirm that the session and set exist, and review the conversation data that will be saved as a sample
See the corresponding evaluation endpoint for the replacement and its complete requirements
Writing or deleting evaluation samples changes the actual evaluation set
Last modified on September 19, 2026