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...

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

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.

Retrieve specific recordings.

Retrieve specific users.

Recordings
Users

Authentication

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

Please contact [email protected] to get a token for SCIM. Token cannot be obtained through the Screendesk dashboard.

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 “” 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 . You must provide the access token in the Authorization header:

Authorization: Bearer {ACCESS_TOKEN}
API Tokens
HTTP Bearer Authentication

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:

{
  "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

API Reference

List Users

Retrieves a list of all users for the current account.

  • URL: /Users

  • Method: GET

  • Response:

    • Code: 200 OK

    • Content:

Get User

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)

Create User

Creates a new user in the system.

  • URL: /Users

  • Method: POST

  • Data Params:

  • Response

Update User

Updates an existing user's information.

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

  • Method: PUT

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

5. Delete User

Deletes a user from the system.

  • URL: /Users/:id

  • Method: DELETE

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

Error Responses

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

Notes

  • 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.

  • The roles

Overriding Roles

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 true in the roles

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

:
  • 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

    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.
    object.
  • To remove a role from a user, set its value to false in the roles object.

  • {
      "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": "[email protected]",
      "name": {
        "givenName": "John",
        "familyName": "Doe"
      },
      "emails": [
        {
          "value": "[email protected]",
          "primary": true,
          "type": "work"
        }
      ],
      "active": true,
      "roles": {
        "admin": true,
        "member": true,
        "editor": false
      }
    }

    Recordings

    Users

    GET List users

    get

    Retrieve a paginated list of users for the authenticated user's account

    Authorizations
    AuthorizationstringRequired
    Query parameters
    pageintegerOptional

    Page number for pagination

    Responses
    200

    Successful response

    application/json
    403

    Forbidden

    500

    Internal Server Error

    get
    /users

    GET Search for a specific user

    get

    Search for a specific user by their email

    Authorizations
    AuthorizationstringRequired
    Query parameters
    emailstringRequired

    Email of the user to search for

    Responses
    200

    Successful response

    application/json
    403

    Forbidden

    404

    Not Found

    500

    Internal Server Error

    get
    /users/search

    PATCH Update a recording

    patch

    Update a recording's title, summary, or description. Only admins can perform this action.

    Authorizations
    AuthorizationstringRequired
    Path parameters

    GET List recordings

    get

    Retrieve a paginated list of recordings for the authenticated user's account

    Authorizations
    AuthorizationstringRequired
    Query parameters
    pageintegerOptional

    Page number for pagination

    GET Get a specific recording

    get

    Retrieve details of a specific recording by its UUID

    Authorizations
    AuthorizationstringRequired
    Path parameters

    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/

    uuidstringRequired

    UUID of the recording

    Body
    Responses
    200

    Successfully updated recording

    application/json
    401

    Unauthorized

    403

    Forbidden - User is not an admin or API access is disabled

    application/json
    404

    Recording not found

    application/json
    422

    Validation failed

    application/json
    patch
    /recordings/{uuid}
    Responses
    200

    Successful response

    application/json
    401

    Unauthorized

    get
    /recordings
    uuidstringRequired

    UUID of the recording

    Responses
    200

    Successful response

    application/json
    401

    Unauthorized

    404

    Recording not found

    application/json
    get
    /recordings/{uuid}
    curl -X PATCH 'https://app.screendesk.io/api/v2/recordings/696cfd3b-b579-45a7-b58a-88ba0984a42b' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json' \
    -d '{
      "recording": {
        "title": "Updated Title",
        "summary": "New summary",
        "description": "Updated description"
      }
    }'
    
    {
      "uuid": "text",
      "title": "text",
      "summary": "text",
      "description": "text",
      "metadata": {
        "created_at": "2026-01-07T15:29:37.821Z",
        "updated_at": "2026-01-07T15:29:37.821Z",
        "duration": 1,
        "impressions_count": 1,
        "recording_type": "text",
        "recording_source": "text",
        "url": "text",
        "helpdesk_info": {}
      },
      "technical_details": {
        "vendor": "text",
        "ip_address": "text",
        "timezone": "text",
        "network_type": "text",
        "isp": "text"
      },
      "console_logs": "text",
      "customer": {
        "email": "text"
      },
      "user": {
        "email": "text",
        "name": "text"
      }
    }
    curl -X GET 'https://app.screendesk.io/api/v2/recordings?page=1' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json'
    
    {
      "pagination": {
        "next_page": null,
        "prev_page": null,
        "last_page": 1,
        "page": 1,
        "items": 1,
        "pages": 1,
        "from": 1,
        "to": 1,
        "count": 1
      },
      "records": [
        {
          "uuid": "text",
          "title": "text",
          "summary": "text",
          "description": "text",
          "metadata": {
            "created_at": "2026-01-07T15:29:37.821Z",
            "updated_at": "2026-01-07T15:29:37.821Z",
            "duration": 1,
            "impressions_count": 1,
            "recording_type": "text",
            "recording_source": "text",
            "url": "text",
            "helpdesk_info": {}
          },
          "technical_details": {
            "vendor": "text",
            "ip_address": "text",
            "timezone": "text",
            "network_type": "text",
            "isp": "text"
          },
          "console_logs": "text",
          "customer": {
            "email": "text"
          },
          "user": {
            "email": "text",
            "name": "text"
          }
        }
      ]
    }
    curl -X GET 'https://app.screendesk.io/api/v2/recordings/696cfd3b-b579-45a7-b58a-88ba0984a42b' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json'
    
    {
      "uuid": "text",
      "title": "text",
      "summary": "text",
      "description": "text",
      "metadata": {
        "created_at": "2026-01-07T15:29:37.821Z",
        "updated_at": "2026-01-07T15:29:37.821Z",
        "duration": 1,
        "impressions_count": 1,
        "recording_type": "text",
        "recording_source": "text",
        "url": "text",
        "helpdesk_info": {}
      },
      "technical_details": {
        "vendor": "text",
        "ip_address": "text",
        "timezone": "text",
        "network_type": "text",
        "isp": "text"
      },
      "console_logs": "text",
      "customer": {
        "email": "text"
      },
      "user": {
        "email": "text",
        "name": "text"
      }
    }
    curl -X GET 'https://app.screendesk.io/api/v2/users?page=1' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json'
    
    {
      "pagination": {
        "next_page": null,
        "prev_page": null,
        "last_page": 1,
        "page": 1,
        "items": 1,
        "pages": 1,
        "from": 1,
        "to": 1,
        "count": 1
      },
      "users": [
        {
          "email": "text",
          "name": "text",
          "has_avatar": true,
          "role": "text",
          "notifications": {
            "notify_first_view": "Enabled",
            "notify_new_account_recording": "Enabled",
            "notify_new_recording": "Enabled"
          },
          "created_at": "2026-01-07T15:29:37.821Z",
          "updated_at": "2026-01-07T15:29:37.821Z"
        }
      ]
    }
    curl -X GET 'https://app.screendesk.io/api/v2/users/[email protected]' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json'
    
    {
      "email": "text",
      "name": "text",
      "has_avatar": true,
      "role": "text",
      "notifications": {
        "notify_first_view": "Enabled",
        "notify_new_account_recording": "Enabled",
        "notify_new_recording": "Enabled"
      },
      "created_at": "2026-01-07T15:29:37.821Z",
      "updated_at": "2026-01-07T15:29:37.821Z"
    }

    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

    Authentication

    Errors

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

    Create an API access token and authenticate your API requests.

    Learn about API errors.

    API Reference
    Authentication
    Errors

    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:

    {
      "error": {
        "message": "Descriptive information about the error",
        "code": "HTTP error code",
       }
    }

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

    {
      "error": {
         "message": "Recording not found or does not exist",
         "code": 404,
       }
    }

    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.