Organization Recordings
List, view, update, and delete recordings across your organization
These endpoints let you manage recordings across your entire organization rather than for a single user.
List Recordings
GET /api/v1/organization/:orgId/recordingsMinimum role: viewer
Returns a paginated list of recordings belonging to the organization.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
date | string | — | Filter to a specific date (YYYY-MM-DD) |
startDate | string | — | Start of date range (YYYY-MM-DD) |
endDate | string | — | End of date range (YYYY-MM-DD) |
tagIds | string | — | Comma-separated tag IDs to filter by |
tagMode | string | any | any or all — match any or all provided tags |
recordedBy | string | — | Filter by user ID of the recorder |
recordedByEmail | string | — | Filter by email of the recorder |
page | number | 1 | Page number (1-indexed) |
limit | number | 20 | Results per page (max 100) |
cursor | string | — | Cursor for keyset pagination (alternative to page) |
Example Request
curl -X GET "https://public.heypocketai.com/api/v1/organization/org_abc/recordings?startDate=2026-03-01&endDate=2026-03-31&limit=10" \
-H "Authorization: Bearer pk_xxx"Response
{
"recordings": [
{
"id": "rec_abc123",
"title": "Team Standup",
"duration": 1800,
"language": "English",
"recorded_by": "usr_001",
"tags": ["tag_meeting"],
"created_at": "2026-03-15T09:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 42,
"next_cursor": "eyJpZCI6InJlY18..."
}
}Get Recording
GET /api/v1/organization/:orgId/recordings/:recordingIdMinimum role: viewer
Returns full details for a single recording.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
recordingId | string | The recording identifier |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
include | string | — | Comma-separated list of related resources to include (e.g. transcript,summary,action_items) |
Response
{
"id": "rec_abc123",
"title": "Team Standup",
"description": "Weekly sync",
"duration": 1800,
"language": "English",
"recorded_by": "usr_001",
"tags": ["tag_meeting"],
"created_at": "2026-03-15T09:00:00.000Z",
"transcript": [
{
"speaker": "Alice",
"text": "Let's go over this week's priorities.",
"start": 0.0,
"end": 3.5
}
],
"summary": {
"markdown": "## Key Decisions\n\n..."
}
}Update Recording
PUT /api/v1/organization/:orgId/recordings/:recordingIdMinimum role: admin
Updates metadata for a recording.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
recordingId | string | The recording identifier |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | No | Updated title |
description | string | No | Updated description |
tags | string[] | No | Replacement tag IDs |
Example Request
{
"title": "Team Standup — Week 12",
"tags": ["tag_meeting", "tag_weekly"]
}Response
{
"id": "rec_abc123",
"title": "Team Standup — Week 12",
"description": "Weekly sync",
"duration": 1800,
"tags": ["tag_meeting", "tag_weekly"],
"updated_at": "2026-04-10T09:00:00.000Z"
}Delete Recording
DELETE /api/v1/organization/:orgId/recordings/:recordingIdMinimum role: admin
Deletes a recording. By default this is a soft delete; pass permanent=true to hard-delete.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
recordingId | string | The recording identifier |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
permanent | boolean | false | If true, permanently deletes the recording and all associated data |
Response
{
"success": true
}