For the complete documentation index, see llms.txt. This page is also available as Markdown.

Recordings

List recordings

get

Returns a paginated list of recordings. Members see only their own recordings; admins see all recordings in the account.

Authorizations
AuthorizationstringRequired

API token obtained from Screendesk account settings

Query parameters
pageinteger · min: 1Optional

Page number (defaults to 1)

Default: 1
ticket_idstringOptional

Filter by an exact helpdesk ticket, conversation, issue, or object ID. Results include a normalized metadata.helpdesk_info.ticket_id.

providerstring · enumOptional

Optionally restrict ticket_id to one helpdesk provider. freshchat is accepted as an alias for freshdesk_chat.

Possible values:
Responses
200

A paginated list of recordings

application/json
get/recordings
GET /api/v2/recordings HTTP/1.1
Host: app.screendesk.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "pagination": {
    "count": 1,
    "page": 1,
    "items": 1,
    "pages": 1,
    "next_page": 1,
    "prev_page": 1,
    "last_page": 1,
    "from": 1,
    "to": 1
  },
  "records": [
    {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "summary": "text",
      "description": "text",
      "metadata": {
        "created_at": "2026-01-01T00:00:00.000Z",
        "updated_at": "2026-01-01T00:00:00.000Z",
        "duration": 1,
        "impressions_count": 1,
        "recording_type": "Received",
        "recording_source": "text",
        "url": "https://example.com",
        "helpdesk_info": {
          "platform": "zendesk",
          "conversation_id": "text",
          "ticket_id": "text",
          "active_ticket_id": "text",
          "user_id": "text",
          "operator_id": "text",
          "customer_id": "text",
          "issue_id": "text",
          "object_id": "text"
        }
      },
      "technical_details": {
        "vendor": "text",
        "ip_address": "text",
        "timezone": "text",
        "network_type": "text",
        "isp": "text"
      },
      "console_logs": "text",
      "customer": {
        "email": "name@gmail.com"
      },
      "user": {
        "email": "name@gmail.com",
        "name": "text"
      },
      "room_insights": {
        "started_at": "2026-01-01T00:00:00.000Z",
        "ended_at": "2026-01-01T00:00:00.000Z",
        "duration": 1,
        "total_participant_minutes": 1,
        "total_unique_participants": 1,
        "participants_insights": [
          {
            "participant_id": "text",
            "display_name": "text",
            "role": "text",
            "browser": "text",
            "os": "text",
            "device": "text",
            "device_type": "text",
            "user_agent": "text",
            "joined_at": "2026-01-01T00:00:00.000Z",
            "left_at": "2026-01-01T00:00:00.000Z"
          }
        ]
      }
    }
  ]
}

Get a recording

get

Returns a single recording by UUID.

Authorizations
AuthorizationstringRequired

API token obtained from Screendesk account settings

Path parameters
uuidstring · uuidRequired

The recording's UUID

Responses
200

Recording details

application/json
uuidstring · uuidOptional
titlestring · nullableOptional
summarystring · nullableOptional
descriptionstring · nullableOptional
console_logsstring · nullableOptional

Raw console log output captured during the recording

get/recordings/{uuid}
GET /api/v2/recordings/{uuid} HTTP/1.1
Host: app.screendesk.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "summary": "text",
  "description": "text",
  "metadata": {
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "duration": 1,
    "impressions_count": 1,
    "recording_type": "Received",
    "recording_source": "text",
    "url": "https://example.com",
    "helpdesk_info": {
      "platform": "zendesk",
      "conversation_id": "text",
      "ticket_id": "text",
      "active_ticket_id": "text",
      "user_id": "text",
      "operator_id": "text",
      "customer_id": "text",
      "issue_id": "text",
      "object_id": "text"
    }
  },
  "technical_details": {
    "vendor": "text",
    "ip_address": "text",
    "timezone": "text",
    "network_type": "text",
    "isp": "text"
  },
  "console_logs": "text",
  "customer": {
    "email": "name@gmail.com"
  },
  "user": {
    "email": "name@gmail.com",
    "name": "text"
  },
  "room_insights": {
    "started_at": "2026-01-01T00:00:00.000Z",
    "ended_at": "2026-01-01T00:00:00.000Z",
    "duration": 1,
    "total_participant_minutes": 1,
    "total_unique_participants": 1,
    "participants_insights": [
      {
        "participant_id": "text",
        "display_name": "text",
        "role": "text",
        "browser": "text",
        "os": "text",
        "device": "text",
        "device_type": "text",
        "user_agent": "text",
        "joined_at": "2026-01-01T00:00:00.000Z",
        "left_at": "2026-01-01T00:00:00.000Z"
      }
    ]
  }
}

Update a recording

patch

Updates a recording's title, summary, or description. Admin only.

Authorizations
AuthorizationstringRequired

API token obtained from Screendesk account settings

Path parameters
uuidstring · uuidRequired

The recording's UUID

Body
Responses
200

Updated recording

application/json
uuidstring · uuidOptional
titlestring · nullableOptional
summarystring · nullableOptional
descriptionstring · nullableOptional
console_logsstring · nullableOptional

Raw console log output captured during the recording

patch/recordings/{uuid}
PATCH /api/v2/recordings/{uuid} HTTP/1.1
Host: app.screendesk.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "recording": {
    "title": "text",
    "summary": "text",
    "description": "text"
  }
}
{
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "summary": "text",
  "description": "text",
  "metadata": {
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "duration": 1,
    "impressions_count": 1,
    "recording_type": "Received",
    "recording_source": "text",
    "url": "https://example.com",
    "helpdesk_info": {
      "platform": "zendesk",
      "conversation_id": "text",
      "ticket_id": "text",
      "active_ticket_id": "text",
      "user_id": "text",
      "operator_id": "text",
      "customer_id": "text",
      "issue_id": "text",
      "object_id": "text"
    }
  },
  "technical_details": {
    "vendor": "text",
    "ip_address": "text",
    "timezone": "text",
    "network_type": "text",
    "isp": "text"
  },
  "console_logs": "text",
  "customer": {
    "email": "name@gmail.com"
  },
  "user": {
    "email": "name@gmail.com",
    "name": "text"
  },
  "room_insights": {
    "started_at": "2026-01-01T00:00:00.000Z",
    "ended_at": "2026-01-01T00:00:00.000Z",
    "duration": 1,
    "total_participant_minutes": 1,
    "total_unique_participants": 1,
    "participants_insights": [
      {
        "participant_id": "text",
        "display_name": "text",
        "role": "text",
        "browser": "text",
        "os": "text",
        "device": "text",
        "device_type": "text",
        "user_agent": "text",
        "joined_at": "2026-01-01T00:00:00.000Z",
        "left_at": "2026-01-01T00:00:00.000Z"
      }
    ]
  }
}

Download a recording video

get

Streams the best available video file for a recording through the Screendesk API. The response body is the video binary, not JSON.

Screendesk returns the edited file when available, then the processed file, and finally the original upload. Use this endpoint for API/backend downloads such as curl, scripts, or server-side integrations.

Authorizations
AuthorizationstringRequired

API token obtained from Screendesk account settings

Path parameters
uuidstring · uuidRequired

The recording's UUID

Responses
200

The recording video file

Responsestring · binary
get/recordings/{uuid}/download
GET /api/v2/recordings/{uuid}/download HTTP/1.1
Host: app.screendesk.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary

Get a recording transcript

get

Returns the current timestamped transcript for a recording, including live recordings, with up to 100 segments per page. Edited transcript rows take precedence over processed rows. Older recordings fall back to their legacy transcript text.

Authorizations
AuthorizationstringRequired

API token obtained from Screendesk account settings

Path parameters
uuidstring · uuidRequired

The recording's UUID

Query parameters
pageinteger · min: 1Optional

Transcript segment page number (defaults to 1)

Default: 1
Responses
200

Recording transcript and its current availability status

application/json
recording_uuidstring · uuidRequired
statusstring · enumRequiredPossible values:
languagestring · nullableOptional

Detected BCP 47 language code when available

get/recordings/{uuid}/transcript
GET /api/v2/recordings/{uuid}/transcript HTTP/1.1
Host: app.screendesk.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "recording_uuid": "123e4567-e89b-12d3-a456-426614174000",
  "status": "ready",
  "language": "text",
  "speaker_map": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "pagination": {
    "count": 1,
    "page": 1,
    "items": 1,
    "pages": 1,
    "next_page": 1,
    "prev_page": 1,
    "last_page": 1,
    "from": 1,
    "to": 1
  },
  "segments": [
    {
      "start_seconds": 1,
      "end_seconds": 1,
      "text": "text",
      "sentences": [
        {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      ]
    }
  ]
}

Last updated

Was this helpful?