curl "https://api.bota.dev/v1/recordings?status=completed&limit=10" \
-H "Authorization: Bearer sk_live_..."
const params = new URLSearchParams({
status: 'completed',
limit: '10',
});
const response = await fetch(`https://api.bota.dev/v1/recordings?${params}`, {
headers: {
'Authorization': 'Bearer sk_live_...',
},
});
const { data, has_more, next_cursor, total } = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/recordings',
headers={'Authorization': 'Bearer sk_live_...'},
params={
'status': 'completed',
'limit': 10,
},
)
result = response.json()
recordings = result['data']
{
"data": [
{
"id": "rec_abc123",
"device_id": "dev_abc123",
"end_user_id": "eu_xyz789",
"name": "Product interview - Jane Doe",
"status": "completed",
"duration_ms": 1800000,
"started_at": "2025-01-15T09:00:00Z",
"ended_at": "2025-01-15T09:30:00Z",
"transcription_id": "txn_abc123",
"transcription_status": "completed",
"summary_status": "completed",
"media": [
{
"id": "med_001",
"type": "audio",
"mime_type": "audio/opus",
"file_size_bytes": 2048576,
"status": "uploaded",
"captured_at": "2025-01-15T09:00:00Z",
"created_at": "2025-01-15T10:00:00Z"
}
],
"metadata": {
"meeting_type": "interview"
},
"created_at": "2025-01-15T10:00:00Z"
},
{
"id": "rec_def456",
"device_id": "dev_abc123",
"end_user_id": "eu_xyz789",
"name": null,
"status": "completed",
"duration_ms": 900000,
"started_at": "2025-01-14T14:00:00Z",
"ended_at": "2025-01-14T14:15:00Z",
"transcription_id": "txn_def456",
"transcription_status": "processing",
"summary_status": null,
"media": [
{
"id": "med_010",
"type": "audio",
"mime_type": "audio/opus",
"file_size_bytes": 1024000,
"status": "uploaded",
"captured_at": "2025-01-14T14:00:00Z",
"created_at": "2025-01-14T15:00:00Z"
}
],
"metadata": null,
"created_at": "2025-01-14T15:00:00Z"
}
],
"has_more": true,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNS0wMS0xNFQxNTowMDowMFoiLCJpZCI6InJlY19kZWY0NTYifQ==",
"total": 42
}
Recordings
List Recordings
Retrieve a paginated list of recordings
GET
/
recordings
curl "https://api.bota.dev/v1/recordings?status=completed&limit=10" \
-H "Authorization: Bearer sk_live_..."
const params = new URLSearchParams({
status: 'completed',
limit: '10',
});
const response = await fetch(`https://api.bota.dev/v1/recordings?${params}`, {
headers: {
'Authorization': 'Bearer sk_live_...',
},
});
const { data, has_more, next_cursor, total } = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/recordings',
headers={'Authorization': 'Bearer sk_live_...'},
params={
'status': 'completed',
'limit': 10,
},
)
result = response.json()
recordings = result['data']
{
"data": [
{
"id": "rec_abc123",
"device_id": "dev_abc123",
"end_user_id": "eu_xyz789",
"name": "Product interview - Jane Doe",
"status": "completed",
"duration_ms": 1800000,
"started_at": "2025-01-15T09:00:00Z",
"ended_at": "2025-01-15T09:30:00Z",
"transcription_id": "txn_abc123",
"transcription_status": "completed",
"summary_status": "completed",
"media": [
{
"id": "med_001",
"type": "audio",
"mime_type": "audio/opus",
"file_size_bytes": 2048576,
"status": "uploaded",
"captured_at": "2025-01-15T09:00:00Z",
"created_at": "2025-01-15T10:00:00Z"
}
],
"metadata": {
"meeting_type": "interview"
},
"created_at": "2025-01-15T10:00:00Z"
},
{
"id": "rec_def456",
"device_id": "dev_abc123",
"end_user_id": "eu_xyz789",
"name": null,
"status": "completed",
"duration_ms": 900000,
"started_at": "2025-01-14T14:00:00Z",
"ended_at": "2025-01-14T14:15:00Z",
"transcription_id": "txn_def456",
"transcription_status": "processing",
"summary_status": null,
"media": [
{
"id": "med_010",
"type": "audio",
"mime_type": "audio/opus",
"file_size_bytes": 1024000,
"status": "uploaded",
"captured_at": "2025-01-14T14:00:00Z",
"created_at": "2025-01-14T15:00:00Z"
}
],
"metadata": null,
"created_at": "2025-01-14T15:00:00Z"
}
],
"has_more": true,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNS0wMS0xNFQxNTowMDowMFoiLCJpZCI6InJlY19kZWY0NTYifQ==",
"total": 42
}
Retrieve a paginated list of recordings in your project, with optional filters for device, end user, and status.
Each recording object in
Authentication
Requires an API key withrecordings:read scope.
curl "https://api.bota.dev/v1/recordings?status=completed&limit=10" \
-H "Authorization: Bearer sk_live_..."
const params = new URLSearchParams({
status: 'completed',
limit: '10',
});
const response = await fetch(`https://api.bota.dev/v1/recordings?${params}`, {
headers: {
'Authorization': 'Bearer sk_live_...',
},
});
const { data, has_more, next_cursor, total } = await response.json();
import requests
response = requests.get(
'https://api.bota.dev/v1/recordings',
headers={'Authorization': 'Bearer sk_live_...'},
params={
'status': 'completed',
'limit': 10,
},
)
result = response.json()
recordings = result['data']
Query Parameters
Maximum number of items to return (1-100).
Opaque pagination cursor from a previous response’s
next_cursor field. Omit for the first page.Filter recordings by device.
Filter recordings by end user.
Filter by status:
pending, uploaded, processing, completed, or failed.Response
Returns a paginated list of recording objects.{
"data": [
{
"id": "rec_abc123",
"device_id": "dev_abc123",
"end_user_id": "eu_xyz789",
"name": "Product interview - Jane Doe",
"status": "completed",
"duration_ms": 1800000,
"started_at": "2025-01-15T09:00:00Z",
"ended_at": "2025-01-15T09:30:00Z",
"transcription_id": "txn_abc123",
"transcription_status": "completed",
"summary_status": "completed",
"media": [
{
"id": "med_001",
"type": "audio",
"mime_type": "audio/opus",
"file_size_bytes": 2048576,
"status": "uploaded",
"captured_at": "2025-01-15T09:00:00Z",
"created_at": "2025-01-15T10:00:00Z"
}
],
"metadata": {
"meeting_type": "interview"
},
"created_at": "2025-01-15T10:00:00Z"
},
{
"id": "rec_def456",
"device_id": "dev_abc123",
"end_user_id": "eu_xyz789",
"name": null,
"status": "completed",
"duration_ms": 900000,
"started_at": "2025-01-14T14:00:00Z",
"ended_at": "2025-01-14T14:15:00Z",
"transcription_id": "txn_def456",
"transcription_status": "processing",
"summary_status": null,
"media": [
{
"id": "med_010",
"type": "audio",
"mime_type": "audio/opus",
"file_size_bytes": 1024000,
"status": "uploaded",
"captured_at": "2025-01-14T14:00:00Z",
"created_at": "2025-01-14T15:00:00Z"
}
],
"metadata": null,
"created_at": "2025-01-14T15:00:00Z"
}
],
"has_more": true,
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNS0wMS0xNFQxNTowMDowMFoiLCJpZCI6InJlY19kZWY0NTYifQ==",
"total": 42
}
Response Fields
| Field | Type | Description |
|---|---|---|
data | array | Array of recording objects. |
has_more | boolean | Whether there are more results beyond this page. |
next_cursor | string | Opaque cursor to pass as cursor to retrieve the next page. Present only when has_more is true. |
total | integer | Total number of recordings matching the query filters (across all pages). |
data contains:
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the recording (prefixed with rec_). |
device_id | string | ID of the device that captured the recording. |
end_user_id | string | ID of the associated end user. |
name | string | null | Human-readable name for the recording. |
status | string | Current recording status: pending, uploaded, processing, completed, or failed. |
duration_ms | integer | null | Recording duration in milliseconds. |
started_at | string | ISO 8601 timestamp of when the recording started. |
ended_at | string | ISO 8601 timestamp of when the recording ended. |
transcription_id | string | null | ID of the associated transcription. |
transcription_status | string | null | Status of the latest transcription for this recording: pending, processing, completed, or failed. null if no transcription has been started. |
summary_status | string | null | Status of the latest summary for this recording: pending, processing, completed, or failed. null if no summary has been generated. |
media | array | Files associated with this recording (audio, images, video). |
media[].id | string | Media identifier (med_*). |
media[].type | string | Media type: audio, image, or video. |
media[].mime_type | string | MIME type (e.g., audio/opus, image/jpeg). |
media[].file_size_bytes | integer | File size in bytes. |
media[].status | string | Upload status: pending, uploaded. |
media[].captured_at | string | null | ISO 8601 timestamp of when the media was captured. |
media[].created_at | string | ISO 8601 timestamp of when the media record was created. |
metadata | object | null | Arbitrary key-value metadata. |
created_at | string | ISO 8601 timestamp of when the recording was created. |
Was this page helpful?
⌘I

