curl "https://api.bota.dev/v1/ask/sessions?end_user_id=eu_abc123&limit=20" \
-H "Authorization: Bearer sk_live_..."
const params = new URLSearchParams({ end_user_id: 'eu_abc123', limit: '20' });
const response = await fetch(`https://api.bota.dev/v1/ask/sessions?${params}`, {
headers: { 'Authorization': 'Bearer sk_live_...' },
});
const { data, has_more, next_cursor } = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/ask/sessions',
headers={'Authorization': 'Bearer sk_live_...'},
params={'end_user_id': 'eu_abc123', 'limit': 20},
)
sessions = response.json()['data']
{
"data": [
{
"id": "as_abc123",
"scope": { "type": "library", "recording_ids": [], "recording_title": null },
"title": "What did I commit to this week?",
"message_count": 4,
"last_message_at": "2026-05-20T10:23:45Z",
"last_model": "gemini-2.0-flash",
"last_provider": "gemini",
"created_at": "2026-05-20T10:20:00Z",
"updated_at": "2026-05-20T10:23:45Z"
}
],
"has_more": false,
"next_cursor": null
}
AI Ask
List Sessions
List AI Ask sessions in a project, newest activity first
GET
/
ask
/
sessions
curl "https://api.bota.dev/v1/ask/sessions?end_user_id=eu_abc123&limit=20" \
-H "Authorization: Bearer sk_live_..."
const params = new URLSearchParams({ end_user_id: 'eu_abc123', limit: '20' });
const response = await fetch(`https://api.bota.dev/v1/ask/sessions?${params}`, {
headers: { 'Authorization': 'Bearer sk_live_...' },
});
const { data, has_more, next_cursor } = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/ask/sessions',
headers={'Authorization': 'Bearer sk_live_...'},
params={'end_user_id': 'eu_abc123', 'limit': 20},
)
sessions = response.json()['data']
{
"data": [
{
"id": "as_abc123",
"scope": { "type": "library", "recording_ids": [], "recording_title": null },
"title": "What did I commit to this week?",
"message_count": 4,
"last_message_at": "2026-05-20T10:23:45Z",
"last_model": "gemini-2.0-flash",
"last_provider": "gemini",
"created_at": "2026-05-20T10:20:00Z",
"updated_at": "2026-05-20T10:23:45Z"
}
],
"has_more": false,
"next_cursor": null
}
List AI Ask sessions, ordered by most recent activity. Optionally filter by end user, scope, recording, or a title search.
Authentication
Requires an API key.end_user_id is an optional filter: omit it and a project-scoped key lists the whole project; an end-user-scoped key always lists only its own sessions.
curl "https://api.bota.dev/v1/ask/sessions?end_user_id=eu_abc123&limit=20" \
-H "Authorization: Bearer sk_live_..."
const params = new URLSearchParams({ end_user_id: 'eu_abc123', limit: '20' });
const response = await fetch(`https://api.bota.dev/v1/ask/sessions?${params}`, {
headers: { 'Authorization': 'Bearer sk_live_...' },
});
const { data, has_more, next_cursor } = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/ask/sessions',
headers={'Authorization': 'Bearer sk_live_...'},
params={'end_user_id': 'eu_abc123', 'limit': 20},
)
sessions = response.json()['data']
Query Parameters
string
Optional. Narrow the list to one end user (
eu_*). Omit it to list all sessions in the project (project-scoped keys only; an end-user-scoped key is always limited to its own).string
Filter by scope:
recording, library, selected, or folder.string
Only sessions scoped to this recording (
rec_*).string
Case-insensitive substring match against the session title.
integer
default:"20"
Maximum number of sessions to return (1–100).
string
Pagination cursor from a previous response’s
next_cursor.Response
Returns a paginated list of session objects, newest activity first.{
"data": [
{
"id": "as_abc123",
"scope": { "type": "library", "recording_ids": [], "recording_title": null },
"title": "What did I commit to this week?",
"message_count": 4,
"last_message_at": "2026-05-20T10:23:45Z",
"last_model": "gemini-2.0-flash",
"last_provider": "gemini",
"created_at": "2026-05-20T10:20:00Z",
"updated_at": "2026-05-20T10:23:45Z"
}
],
"has_more": false,
"next_cursor": null
}
Was this page helpful?

