Only this pageAll pages
Powered by GitBook
1 of 13

Version 2.0.0

Loading...

Screendesk API

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

SCIM / Autoprovisioning

Loading...

Loading...

Loading...

Overview

Welcome to the Screendesk API! You can use this API to access our endpoints, such as the Screendesk API to get your recordings.

Welcome to the Screendesk API! You can use this API to access our endpoints, such as the Screendesk API to get your recordings.

To access our API, you need to be on the Screendesk Enterprise plan.

If you have any questions about the Enterprise plan, you can reach out to the Sales team.

Overview

The Screendesk API is REST-based and uses standard HTTP verbs and status codes. The API accepts form-encoded request bodies and returns JSON-encoded responses. All requests should be made over SSL.

If you have any question, please contact the Screendesk support.

API Endpoint

The base URL to access the Screendesk API is https://app.screendesk.io.

For example, to access the recordings endpoint, just add the endpoint to the base URL: https://app.screendesk.io/api/v1/recordings.

API Reference

API Reference

Learn more about the endpoints you can use from the Screendesk API.

Authentication

Authentication

Create an API access token and authenticate your API requests.

Errors

Errors

Learn about API errors.

Authentication

The Screendesk API uses Personal access tokens to authenticate requests.

Access tokens are tied to the Screendesk user account for which they were created. A token provides the same level of access & privileges that its associated Screendesk user account would have.

Create an access token

To create an access token, sign in to your Screendesk account and go to the "Personal Settings" page. In the “API Tokens” tab click the “Create an API Token” button.

Enter a token name and click on the “Create token” button. Once the token gets created, you will be able to copy the token to your clipboard.

You should now see the new token information in the table. You are able to view the raw token anytime you need to, as well as edit the token name and revoke the token.

How to use your access token

Once you have created your access token, you can use it to make requests to the API. Requests are authenticated using HTTP Bearer Authentication. You must provide the access token in the Authorization header:

Errors

All responses from the API will include a standard HTTP successful or error status code. The successful status codes are as follows:

HTTP Status Code
Description

200 OK

The request was successful.

For errors, we include extra information as to why the request was not successful. The error response body will have the following format:

For example, if you try to retrieve a recording that does not exist, you will get the following error response:

The error status codes, along with their error types, are as follows:

HTTP Status Code
Description

400 Bad Request

The request cannot be accepted. Might be because the request body is empty when it should not be.

401 Unauthorized

The access token provided is invalid or deactivated.

404 Not Found

We could not find any record associated with this request.

500 Internal Server Error

Something went wrong with the Screendesk API.

Pagination

Some methods return paginated results. The formatting of a paginated result is always:

The pagination object contains metadata about the current page and links to other pages. The records array contains the actual data for the current page.

Pagination Fields

  • next_page: The number of the next page (if available)

  • prev_page: The number of the previous page (if available)

  • last_page: The number of the last page

  • page: The current page number

  • items: The number of items per page

  • pages: The total number of pages

  • from: The starting index of the current page's items

  • to: The ending index of the current page's items

  • count: The total number of items across all pages

Fields that are not applicable (e.g., prev_page on the first page) will be omitted from the response.

Usage Example

Let's say you make a GET request to a paginated endpoint:

You might receive a response like this:

To get the next page of results, you would make a request to:

API Reference

Here you can find a list of the different endpoints available to use across the Screendesk API. Click into each card to learn more.

Objects

Cover

Recordings

Retrieve specific recordings.

Cover

Users

Retrieve specific users.

Overview

This document outlines the SCIM (System for Cross-domain Identity Management) API endpoints for user management. The API uses SCIM 2.0 schemas and conventions.

Base URL

https://app.screendesk.io/api/v2/scim/

Authentication

All endpoints require authentication. Ensure you include the appropriate authentication headers with each request.

Please contact support@screendesk.io to get a token for SCIM. Token cannot be obtained through the Screendesk dashboard.

Authorization: Bearer {ACCESS_TOKEN}
{
  "error": {
    "message": "Descriptive information about the error",
    "code": "HTTP error code",
   }
}
{
  "error": {
     "message": "Recording not found or does not exist",
     "code": 404,
   }
}
{
  "pagination": {
    "next_page": "...",
    "prev_page": "...",
    "last_page": "...",
    "page": "...",
    "items": "...",
    "pages": "...",
    "from": "...",
    "to": "...",
    "count": "..."
  },
  "records": [
    ...
  ]
}
GET /api/v2/users
{
  "pagination": {
    "next_page": 2,
    "last_page": 5,
    "page": 1,
    "items": 100,
    "pages": 5,
    "from": 1,
    "to": 100,
    "count": 450
  },
  "users": [
    ...
  ]
}
GET /api/v2/users?page=2

Recordings

Users

API Reference

List Users

Retrieves a list of all users for the current account.

  • URL: /Users

  • Method: GET

  • Response:

    • Code: 200 OK

    • Content:

Retrieves a specific user by their SCIM ID or external ID.

  • URL: /Users/:id

  • Method: GET

  • URL Parameters: id=[string] (SCIM ID or external ID)

Creates a new user in the system.

  • URL: /Users

  • Method: POST

  • Data Params:

Updates an existing user's information.

  • URL: /Users/:id (SCIM ID or external ID)

  • Method: PUT

  • URL Parameters: id=[string] ( ID or external ID)

Deletes a user from the system.

  • URL: /Users/:id

  • Method: DELETE

  • URL Parameters: id=[string] ( ID or external ID)

In case of errors, the API will respond with an appropriate HTTP status code and a JSON object containing error details:

Common error scenarios:

  • User not found: 404 Not Found

  • Invalid input: 422 Unprocessable Entity

  • Attempting to delete account owner: 403 Forbidden

  • Internal server error: 500 Internal Server Error

  • The API uses SCIM 2.0 schemas and conventions.

  • User passwords are automatically generated and not returned in responses.

  • The active field in user objects indicates whether the user account is currently active.

When creating or updating a user, you can override the default roles by including a roles object in your request. The roles object should contain boolean values for each role you want to set:

  • If you don't include the roles object, the default roles will be applied (admin: false, member: true, editor: false).

  • If you include the roles object but omit a role, it will be set to false by default.

  • To assign a role to a user, set its value to

Example:

This request would create a user with both admin and member roles, but without the editor role.

  • When creating or updating users, email validation is skipped to accommodate various SCIM client behaviors.

  • The account owner cannot be deleted through this API.

Response:

  • Code: 200 OK

  • Content: Same as individual user object in List Users response

Response:

  • Code: 201 Created

  • Content: Created user object

  • Data Params: Same as Create User

  • Response:

    • Code: 200 OK

    • Content: Updated user object

  • Response:

    • Code: 204 No Content

    The roles field in user objects contains an object with role names as keys and boolean values indicating whether the role is assigned to the user within the current account.
    true
    in the
    roles
    object.
  • To remove a role from a user, set its value to false in the roles object.

  • Get User

    Create User

    Update User

    5. Delete User

    Error Responses

    Notes

    Overriding Roles

    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
      "totalResults": <integer>,
      "Resources": [
        {
          "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
          "id": "<string>",
          "userName": "<string>",
          "name": {
            "formatted": "<string>",
            "givenName": "<string>",
            "familyName": "<string>"
          },
          "emails": [
            {
              "primary": true,
              "value": "<string>",
              "type": "work"
            }
          ],
          "active": <boolean>,
          "roles": [<string>]
        },
        // ... more users
      ]
    }
    {
      "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
      "id": "<string>"
      "userName": "<string>",
      "name": {
        "givenName": "<string>",
        "familyName": "<string>"
      },
      "emails": [
        {
          "value": "<string>",
          "primary": true,
          "type": "work"
        }
      ],
      "externalId": "<string>",
      "active": <boolean>,
      "roles": {
        "admin": <boolean>,
        "member": <boolean>,
        "editor": <boolean>
      }
    }
    {
      "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
      "detail": "<string>",
      "status": "400"
    }
    "roles": {
      "admin": false,
      "member": true,
      "editor": false
    }
    {
      "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
      "userName": "john.doe@example.com",
      "name": {
        "givenName": "John",
        "familyName": "Doe"
      },
      "emails": [
        {
          "value": "john.doe@example.com",
          "primary": true,
          "type": "work"
        }
      ],
      "active": true,
      "roles": {
        "admin": true,
        "member": true,
        "editor": false
      }
    }

    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
    countintegerOptional

    Total number of records

    pageintegerOptional

    Current page number

    itemsintegerOptional

    Number of items per page

    pagesintegerOptional

    Total number of pages

    next_pageinteger · nullableOptional

    Next page number (absent if on last page)

    prev_pageinteger · nullableOptional

    Previous page number (absent if on first page)

    last_pageintegerOptional

    Last page number

    fromintegerOptional

    Index of the first item on this page

    tointegerOptional

    Index of the last item on this page

    uuidstring · uuidOptional
    titlestring · nullableOptional
    summarystring · nullableOptional
    descriptionstring · nullableOptional
    created_atstring · date-timeOptional
    updated_atstring · date-timeOptional
    durationinteger · nullableOptional

    Recording duration in seconds

    impressions_countintegerOptional

    Number of times the recording has been viewed

    recording_typestring · enumOptional

    The type of recording

    Possible values:
    recording_sourcestringOptional

    Human-readable source label (e.g. "Zendesk Ticket", "Intercom Operator")

    urlstring · uriOptional

    Public URL to view the recording

    platformstring · enumOptionalPossible values:
    conversation_idstring · nullableOptional
    ticket_idstring · nullableOptional
    active_ticket_idstring · nullableOptional

    Current Zendesk follow-up ticket ID when it differs from ticket_id

    user_idstring · nullableOptional
    operator_idstring · nullableOptional
    customer_idstring · nullableOptional
    issue_idstring · nullableOptional
    object_idstring · nullableOptional
    vendorstring · nullableOptional
    ip_addressstring · nullableOptional
    timezonestring · nullableOptional
    network_typestring · nullableOptional
    ispstring · nullableOptional
    console_logsstring · nullableOptional

    Raw console log output captured during the recording

    emailstring · email · nullableOptional
    emailstring · emailOptional
    namestringOptional
    started_atstring · date-time · nullableOptional
    ended_atstring · date-time · nullableOptional
    durationinteger · nullableOptional

    Call duration in seconds (inferred from started_at and ended_at)

    total_participant_minutesnumber · nullableOptional
    total_unique_participantsinteger · nullableOptional
    participant_idstringOptional
    display_namestring · nullableOptional
    rolestring · nullableOptional
    browserstring · nullableOptional
    osstring · nullableOptional
    devicestring · nullableOptional
    device_typestring · nullableOptional
    user_agentstring · nullableOptional
    joined_atstring · date-time · nullableOptional
    left_atstring · date-time · nullableOptional
    400

    Invalid ticket search parameters

    application/json
    errorstringRequired

    Error message

    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    get/recordings

    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
    created_atstring · date-timeOptional
    updated_atstring · date-timeOptional
    durationinteger · nullableOptional

    Recording duration in seconds

    impressions_countintegerOptional

    Number of times the recording has been viewed

    recording_typestring · enumOptional

    The type of recording

    Possible values:
    recording_sourcestringOptional

    Human-readable source label (e.g. "Zendesk Ticket", "Intercom Operator")

    urlstring · uriOptional

    Public URL to view the recording

    platformstring · enumOptionalPossible values:
    conversation_idstring · nullableOptional
    ticket_idstring · nullableOptional
    active_ticket_idstring · nullableOptional

    Current Zendesk follow-up ticket ID when it differs from ticket_id

    user_idstring · nullableOptional
    operator_idstring · nullableOptional
    customer_idstring · nullableOptional
    issue_idstring · nullableOptional
    object_idstring · nullableOptional
    vendorstring · nullableOptional
    ip_addressstring · nullableOptional
    timezonestring · nullableOptional
    network_typestring · nullableOptional
    ispstring · nullableOptional
    console_logsstring · nullableOptional

    Raw console log output captured during the recording

    emailstring · email · nullableOptional
    emailstring · emailOptional
    namestringOptional
    started_atstring · date-time · nullableOptional
    ended_atstring · date-time · nullableOptional
    durationinteger · nullableOptional

    Call duration in seconds (inferred from started_at and ended_at)

    total_participant_minutesnumber · nullableOptional
    total_unique_participantsinteger · nullableOptional
    participant_idstringOptional
    display_namestring · nullableOptional
    rolestring · nullableOptional
    browserstring · nullableOptional
    osstring · nullableOptional
    devicestring · nullableOptional
    device_typestring · nullableOptional
    user_agentstring · nullableOptional
    joined_atstring · date-time · nullableOptional
    left_atstring · date-time · nullableOptional
    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    404

    Resource not found

    application/json
    errorstringRequired

    Error message

    get/recordings/{uuid}

    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
    titlestringOptional

    The recording title

    summarystring · nullableOptional

    A short summary

    descriptionstring · nullableOptional

    A detailed description

    Responses
    200

    Updated recording

    application/json
    uuidstring · uuidOptional
    titlestring · nullableOptional
    summarystring · nullableOptional
    descriptionstring · nullableOptional
    created_atstring · date-timeOptional
    updated_atstring · date-timeOptional
    durationinteger · nullableOptional

    Recording duration in seconds

    impressions_countintegerOptional

    Number of times the recording has been viewed

    recording_typestring · enumOptional

    The type of recording

    Possible values:
    recording_sourcestringOptional

    Human-readable source label (e.g. "Zendesk Ticket", "Intercom Operator")

    urlstring · uriOptional

    Public URL to view the recording

    platformstring · enumOptionalPossible values:
    conversation_idstring · nullableOptional
    ticket_idstring · nullableOptional
    active_ticket_idstring · nullableOptional

    Current Zendesk follow-up ticket ID when it differs from ticket_id

    user_idstring · nullableOptional
    operator_idstring · nullableOptional
    customer_idstring · nullableOptional
    issue_idstring · nullableOptional
    object_idstring · nullableOptional
    vendorstring · nullableOptional
    ip_addressstring · nullableOptional
    timezonestring · nullableOptional
    network_typestring · nullableOptional
    ispstring · nullableOptional
    console_logsstring · nullableOptional

    Raw console log output captured during the recording

    emailstring · email · nullableOptional
    emailstring · emailOptional
    namestringOptional
    started_atstring · date-time · nullableOptional
    ended_atstring · date-time · nullableOptional
    durationinteger · nullableOptional

    Call duration in seconds (inferred from started_at and ended_at)

    total_participant_minutesnumber · nullableOptional
    total_unique_participantsinteger · nullableOptional
    participant_idstringOptional
    display_namestring · nullableOptional
    rolestring · nullableOptional
    browserstring · nullableOptional
    osstring · nullableOptional
    devicestring · nullableOptional
    device_typestring · nullableOptional
    user_agentstring · nullableOptional
    joined_atstring · date-time · nullableOptional
    left_atstring · date-time · nullableOptional
    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    404

    Resource not found

    application/json
    errorstringRequired

    Error message

    422

    Validation error

    application/json
    errorstringRequired

    Error message

    patch/recordings/{uuid}

    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

    Content-DispositionstringOptional

    Attachment filename for the downloaded video

    Example: attachment; filename="customer-bug-report-00000000-0000-0000-0000-000000000000.mp4"
    Content-LengthintegerOptional

    File size in bytes

    Responsestring · binary
    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    404

    Resource not found

    application/json
    errorstringRequired

    Error message

    409

    Video file is not available yet

    application/json
    errorstringRequired

    Error message

    get/recordings/{uuid}/download

    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

    Other propertiesstringOptional
    countintegerOptional

    Total number of records

    pageintegerOptional

    Current page number

    itemsintegerOptional

    Number of items per page

    pagesintegerOptional

    Total number of pages

    next_pageinteger · nullableOptional

    Next page number (absent if on last page)

    prev_pageinteger · nullableOptional

    Previous page number (absent if on first page)

    last_pageintegerOptional

    Last page number

    fromintegerOptional

    Index of the first item on this page

    tointegerOptional

    Index of the last item on this page

    start_secondsintegerRequired
    end_secondsinteger · nullableOptional
    textstringRequired
    Other propertiesanyOptional
    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    404

    Resource not found

    application/json
    errorstringRequired

    Error message

    get/recordings/{uuid}/transcript

    List users

    get

    Returns a paginated list of all users in the account. Admin only.

    Authorizations
    AuthorizationstringRequired

    API token obtained from Screendesk account settings

    Responses
    200

    A paginated list of users

    application/json
    countintegerOptional

    Total number of records

    pageintegerOptional

    Current page number

    itemsintegerOptional

    Number of items per page

    pagesintegerOptional

    Total number of pages

    next_pageinteger · nullableOptional

    Next page number (absent if on last page)

    prev_pageinteger · nullableOptional

    Previous page number (absent if on first page)

    last_pageintegerOptional

    Last page number

    fromintegerOptional

    Index of the first item on this page

    tointegerOptional

    Index of the last item on this page

    emailstring · emailOptional
    namestringOptional
    has_profile_picturebooleanOptional
    created_atstring · date-timeOptional
    updated_atstring · date-timeOptional
    rolestring · enumOptional

    The user's role in the account

    Possible values:
    notify_first_viewstring · enumOptionalPossible values:
    notify_all_recordingsstring · enumOptionalPossible values:
    notify_own_recordingsstring · enumOptionalPossible values:
    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    get/users

    Search for a user by email

    get

    Returns a single user matching the provided email address. Admin only.

    Authorizations
    AuthorizationstringRequired

    API token obtained from Screendesk account settings

    Query parameters
    emailstring · emailRequired

    The email address to search for

    Responses
    200

    User details

    application/json
    emailstring · emailOptional
    namestringOptional
    has_profile_picturebooleanOptional
    created_atstring · date-timeOptional
    updated_atstring · date-timeOptional
    rolestring · enumOptional

    The user's role in the account

    Possible values:
    notify_first_viewstring · enumOptionalPossible values:
    notify_all_recordingsstring · enumOptionalPossible values:
    notify_own_recordingsstring · enumOptionalPossible values:
    400

    Missing email parameter

    application/json
    errorstringRequired

    Error message

    401

    Invalid or missing API token

    application/json
    errorstringRequired

    Error message

    403

    API access not enabled or insufficient permissions

    application/json
    errorstringRequired

    Error message

    404

    Resource not found

    application/json
    errorstringRequired

    Error message

    get/users/search
    {
      "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-08-05T16:33:09.102Z",
            "updated_at": "2026-08-05T16:33:09.102Z",
            "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-08-05T16:33:09.102Z",
            "ended_at": "2026-08-05T16:33:09.102Z",
            "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-08-05T16:33:09.102Z",
                "left_at": "2026-08-05T16:33:09.102Z"
              }
            ]
          }
        }
      ]
    }
    {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "summary": "text",
      "description": "text",
      "metadata": {
        "created_at": "2026-08-05T16:33:09.102Z",
        "updated_at": "2026-08-05T16:33:09.102Z",
        "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-08-05T16:33:09.102Z",
        "ended_at": "2026-08-05T16:33:09.102Z",
        "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-08-05T16:33:09.102Z",
            "left_at": "2026-08-05T16:33:09.102Z"
          }
        ]
      }
    }
    binary
    {
      "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"
            }
          ]
        }
      ]
    }
    GET /api/v2/recordings HTTP/1.1
    Host: app.screendesk.io
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    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-08-05T16:33:09.102Z",
        "updated_at": "2026-08-05T16:33:09.102Z",
        "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-08-05T16:33:09.102Z",
        "ended_at": "2026-08-05T16:33:09.102Z",
        "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-08-05T16:33:09.102Z",
            "left_at": "2026-08-05T16:33:09.102Z"
          }
        ]
      }
    }
    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"
      }
    }
    GET /api/v2/recordings/{uuid}/download HTTP/1.1
    Host: app.screendesk.io
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /api/v2/recordings/{uuid}/transcript HTTP/1.1
    Host: app.screendesk.io
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    GET /api/v2/users 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
      },
      "users": [
        {
          "email": "name@gmail.com",
          "name": "text",
          "has_profile_picture": true,
          "created_at": "2026-08-05T16:33:09.102Z",
          "updated_at": "2026-08-05T16:33:09.102Z",
          "role": "admin",
          "notifications": {
            "notify_first_view": "Enabled",
            "notify_all_recordings": "Enabled",
            "notify_own_recordings": "Enabled"
          }
        }
      ]
    }
    GET /api/v2/users/search?email=name%40gmail.com HTTP/1.1
    Host: app.screendesk.io
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    {
      "email": "name@gmail.com",
      "name": "text",
      "has_profile_picture": true,
      "created_at": "2026-08-05T16:33:09.102Z",
      "updated_at": "2026-08-05T16:33:09.102Z",
      "role": "admin",
      "notifications": {
        "notify_first_view": "Enabled",
        "notify_all_recordings": "Enabled",
        "notify_own_recordings": "Enabled"
      }
    }