arrow-left

Only this pageAll pages
gitbookPowered 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

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

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

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

hashtag
API Reference

hashtag
Authentication

hashtag
Errors

Learn about API errors.

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

Create an API access token and authenticate your API requests.

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 .

Errors
API Reference
Authentication
Sales teamarrow-up-right

Authentication

The Screendesk API uses Personal access tokens to authenticate requests.

circle-info

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.

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

hashtag
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 Tokensarrow-up-right
HTTP Bearer Authenticationarrow-up-right

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.

Users

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.

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

    hashtag
    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

    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.

    hashtag
    Base URL

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

    API Reference

    hashtag
    List Users

    Retrieves a list of all users for the current account.

    • URL: /Users

    • Method: GET

    • Response:

      • Code: 200 OK

      • Content:

    hashtag
    Get User

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

    • URL: /Users/:id

    • Method: GET

    • URL Parameters: id=[string]

    hashtag
    Create User

    Creates a new user in the system.

    • URL: /Users

    • Method: POST

    • Data Params:

    hashtag
    Update User

    Updates an existing user's information.

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

    • Method: PUT

    • URL Parameters: id=[string]

    hashtag
    5. Delete User

    Deletes a user from the system.

    • URL: /Users/:id

    • Method: DELETE

    • URL Parameters: id=[string]

    hashtag
    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

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

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

    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.

    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

    Recordings

    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.

    (SCIM ID or external ID)
  • Response:

    • Code: 200 OK

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

  • Response:

    • Code: 201 Created

    • Content: Created user object

    ( ID or external ID)
  • Data Params: Same as Create User

  • Response:

    • Code: 200 OK

    • Content: Updated user object

  • ( ID or external ID)
  • Response:

    • Code: 204 No Content

  • Internal server error: 500 Internal Server Error

    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.

    To assign a role to a user, set its value to true in the roles 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
      }
    }

    hashtag
    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
    chevron-right
    200

    Successful response

    application/json
    chevron-right
    403

    Forbidden

    application/json
    chevron-right
    500

    Internal Server Error

    application/json
    get
    /users

    hashtag
    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
    chevron-right
    200

    Successful response

    application/json
    emailstringOptional
    namestringOptional
    has_avatarbooleanOptional
    rolestringOptional
    created_atstring · date-timeOptional
    updated_atstring · date-timeOptional
    chevron-right
    403

    Forbidden

    application/json
    chevron-right
    404

    Not Found

    application/json
    chevron-right
    500

    Internal Server Error

    application/json
    get
    /users/search
    {
      "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-03-11T10:34:21.596Z",
          "updated_at": "2026-03-11T10:34:21.596Z"
        }
      ]
    }
    {
      "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-03-11T10:34:21.596Z",
      "updated_at": "2026-03-11T10:34:21.596Z"
    }
    curl -X GET 'https://app.screendesk.io/api/v2/users?page=1' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json'
    
    curl -X GET 'https://app.screendesk.io/api/v2/users/[email protected]' \
    -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
    -H 'Content-Type: application/json'
    

    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.

    hashtag
    Objects

    Retrieve specific recordings.

    Retrieve specific users.

    Recordings
    Users

    hashtag
    PATCH Update a recording

    patch

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

    Authorizations
    AuthorizationstringRequired
    Path parameters
    uuidstringRequired

    UUID of the recording

    Body
    Responses
    chevron-right
    200

    Successfully updated recording

    application/json
    uuidstringOptional
    titlestringOptional
    summarystringOptional
    descriptionstringOptional
    console_logsstringOptional
    chevron-right
    401

    Unauthorized

    application/json
    chevron-right
    403

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

    application/json
    chevron-right
    404

    Recording not found

    application/json
    chevron-right
    422

    Validation failed

    application/json
    patch
    /recordings/{uuid}

    hashtag
    GET List recordings

    get

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

    Authorizations
    AuthorizationstringRequired
    Query parameters

    hashtag
    GET Get a specific recording

    get

    Retrieve details of a specific recording by its UUID

    Authorizations
    AuthorizationstringRequired
    Path parameters
    pageintegerOptional

    Page number for pagination

    Responses
    chevron-right
    200

    Successful response

    application/json
    chevron-right
    401

    Unauthorized

    application/json
    get
    /recordings
    uuidstringRequired

    UUID of the recording

    Responses
    chevron-right
    200

    Successful response

    application/json
    uuidstringOptional
    titlestringOptional
    summarystringOptional
    descriptionstringOptional
    console_logsstringOptional
    chevron-right
    401

    Unauthorized

    application/json
    chevron-right
    404

    Recording not found

    application/json
    get
    /recordings/{uuid}
    {
      "uuid": "text",
      "title": "text",
      "summary": "text",
      "description": "text",
      "metadata": {
        "created_at": "2026-03-11T10:34:21.596Z",
        "updated_at": "2026-03-11T10:34:21.596Z",
        "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'
    
    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'
    
    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"
      }
    }'
    
    {
      "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-03-11T10:34:21.596Z",
            "updated_at": "2026-03-11T10:34:21.596Z",
            "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"
          }
        }
      ]
    }
    {
      "uuid": "text",
      "title": "text",
      "summary": "text",
      "description": "text",
      "metadata": {
        "created_at": "2026-03-11T10:34:21.596Z",
        "updated_at": "2026-03-11T10:34:21.596Z",
        "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"
      }
    }