pcvisit GraphQL API reference

Welcome to the pcvisit GraphQL API reference! This GraphQL API allows you to:

  • Manage remote support sessions
  • Work with users, roles, and teams
  • Query detailed work history
  • Automate your internal workflows

Getting Started with GraphQL

If you're new to GraphQL, here are some helpful resources:

GraphQL is a query language that allows you to request exactly the data you need. Unlike REST APIs, you can fetch multiple resources in a single request and avoid over-fetching data. This makes it ideal for building efficient prototypes and production applications.

Documentation Structure

This documentation is divided into two complementary parts:

  • API Reference (this document) - A complete, auto-generated reference of all available queries, mutations, types, and fields. Use this to explore the API schema, discover available operations, and understand the exact structure of requests and responses.
  • Integration Manual for Developers - A practical guide with tutorials, authentication instructions, code examples, and best practices. Start here to learn how to authenticate, make your first requests, and integrate the API into your applications. We recommend starting with the Integration Manual for Developers to understand the fundamentals, then using this Reference for detailed schema exploration.
API Endpoints
https://enhance-jwt-api-dev-3278.sandbox.pcvisit.de/graphql
Version

1.0.0

Queries

AcExportSessionsHistory

Response

Returns an AcExportSessionsHistoryResult

Arguments
Name Description
company - CustomerUuid!
filter - Filter
options - InputSessionExportOptions!
search - Search
sort - [Sort!]
timeFrame - TimeFrame

Example

Query
query AcExportSessionsHistory(
  $company: CustomerUuid!,
  $filter: Filter,
  $options: InputSessionExportOptions!,
  $search: Search,
  $sort: [Sort!],
  $timeFrame: TimeFrame
) {
  AcExportSessionsHistory(
    company: $company,
    filter: $filter,
    options: $options,
    search: $search,
    sort: $sort,
    timeFrame: $timeFrame
  ) {
    ... on ExportSummary {
      ...ExportSummaryFragment
    }
    ... on Failure {
      ...FailureFragment
    }
  }
}
Variables
{
  "company": CustomerUuid,
  "filter": Filter,
  "options": InputSessionExportOptions,
  "search": Search,
  "sort": [Sort],
  "timeFrame": TimeFrame
}
Response
{"data": {"AcExportSessionsHistory": ExportSummary}}

AcQuerySessionsHistory

Response

Returns an AcQuerySessionsHistoryResult

Arguments
Name Description
company - CustomerUuid!
filter - Filter
pagination - Pagination
search - Search
sort - [Sort!]
timeFrame - TimeFrame

Example

Query
query AcQuerySessionsHistory(
  $company: CustomerUuid!,
  $filter: Filter,
  $pagination: Pagination,
  $search: Search,
  $sort: [Sort!],
  $timeFrame: TimeFrame
) {
  AcQuerySessionsHistory(
    company: $company,
    filter: $filter,
    pagination: $pagination,
    search: $search,
    sort: $sort,
    timeFrame: $timeFrame
  ) {
    ... on Failure {
      ...FailureFragment
    }
    ... on SessionProtocolEdge {
      ...SessionProtocolEdgeFragment
    }
  }
}
Variables
{
  "company": CustomerUuid,
  "filter": Filter,
  "pagination": Pagination,
  "search": Search,
  "sort": [Sort],
  "timeFrame": TimeFrame
}
Response
{"data": {"AcQuerySessionsHistory": Failure}}

CaRetrievePublicCompanyData

Arguments
Name Description
id - CompanyIdOrCustomerUuid!

Example

Query
query CaRetrievePublicCompanyData($id: CompanyIdOrCustomerUuid!) {
  CaRetrievePublicCompanyData(id: $id) {
    ... on Failure {
      ...FailureFragment
    }
    ... on Imprint {
      ...ImprintFragment
    }
  }
}
Variables
{"id": CompanyIdOrCustomerUuid}
Response
{"data": {"CaRetrievePublicCompanyData": Failure}}

SiFindUserByMail

Description

returns a user identified by its email teamaccounts can't be requested this way!!

Response

Returns a SiFindUserByMailResult

Arguments
Name Description
email - Email!

Example

Query
query SiFindUserByMail($email: Email!) {
  SiFindUserByMail(email: $email) {
    ... on Failure {
      ...FailureFragment
    }
    ... on User {
      ...UserFragment
    }
  }
}
Variables
{"email": Email}
Response
{"data": {"SiFindUserByMail": Failure}}

SiRetrieveSignedJwt

Description

retrieves a new signed JWT for integrator communication based on provided API tokens

Response

Returns a SiRetrieveSignedJwtResult!

Arguments
Name Description
integratorApiToken - IntegratorApiToken!
userApiToken - UserApiToken!

Example

Query
query SiRetrieveSignedJwt(
  $integratorApiToken: IntegratorApiToken!,
  $userApiToken: UserApiToken!
) {
  SiRetrieveSignedJwt(
    integratorApiToken: $integratorApiToken,
    userApiToken: $userApiToken
  ) {
    ... on Failure {
      ...FailureFragment
    }
    ... on SignedJwtWasRetrieved {
      ...SignedJwtWasRetrievedFragment
    }
  }
}
Variables
{
  "integratorApiToken": IntegratorApiToken,
  "userApiToken": UserApiToken
}
Response
{"data": {"SiRetrieveSignedJwt": Failure}}

SiRetrieveSignedTokenPayload

Description

retrieves a payload for a certain user which can be added to a JWT to use foreign JWTs as allowed identifiers

Arguments
Name Description
id - Auth0Uuid!

Example

Query
query SiRetrieveSignedTokenPayload($id: Auth0Uuid!) {
  SiRetrieveSignedTokenPayload(id: $id) {
    ... on Failure {
      ...FailureFragment
    }
    ... on SignedTokenPayload {
      ...SignedTokenPayloadFragment
    }
  }
}
Variables
{"id": Auth0Uuid}
Response
{"data": {"SiRetrieveSignedTokenPayload": Failure}}

Types

AcExportSessionsHistoryResult

Types
Union Types

ExportSummary

Failure

Example
ExportSummary

AcQuerySessionsHistoryResult

Types
Union Types

Failure

SessionProtocolEdge

Example
Failure

AccessRightsPolicy

Values
Enum Value Description

AllowAudio

AllowCamera

AllowClipboard

AllowFiletransfer

AllowMicrophone

AllowPorts

AllowPOS

AllowPrinter

AllowShell

AllowSmartCards

AllowUSB

Example
"AllowAudio"

ActiveSessionsOfComputer

Fields
Field Name Description
numOfActiveSessions - Int! number of all session to this computer which are currently in serving stream or creating stream state necessary because I cannot garanty the state change from creating to serving in this count
sessions - [SessionToAsset]!
Example
{"numOfActiveSessions": 123, "sessions": [SessionToAsset]}

Address

Fields
Field Name Description
city - String!
country - Country!
number - String!
postalCode - String!
street - String!
Example
{
  "city": "abc123",
  "country": "AR",
  "number": "xyz789",
  "postalCode": "abc123",
  "street": "xyz789"
}

AgentCapabilities

Fields
Field Name Description
SupportPcvRdpStream - RdpProperties!
SupportPcvRemoteApp - RemoteAppProperties!
SupportPcvSftpStream - SftpProperties!
SupportPcvVncStream - VncProperties!
supportsWithoutSM_DM_ForDeviceAccess - Boolean! these clients can connect to a remote host before the new session model as well (version around 20.12.1)
Example
{
  "SupportPcvRdpStream": RdpProperties,
  "SupportPcvRemoteApp": RemoteAppProperties,
  "SupportPcvSftpStream": SftpProperties,
  "SupportPcvVncStream": VncProperties,
  "supportsWithoutSM_DM_ForDeviceAccess": true
}

AssetAccessRights

Values
Enum Value Description

CanAccess

is allowed to remotely access the computer

CanConfig

is allowed to configure computer specific settings

NoAccess

is not allowed to connect, only when user knows the password
Example
"CanAccess"

AssetConfiguration_V1

Fields
Field Name Description
configurationForRdp - ProtocolConfigurationRdp!
configurationForSftp - ProtocolConfigurationSftp!
configurationForVnc - ProtocolConfigurationVnc!
user - UserOrGroup!
Example
{
  "configurationForRdp": ProtocolConfigurationRdp,
  "configurationForSftp": ProtocolConfigurationSftp,
  "configurationForVnc": ProtocolConfigurationVnc,
  "user": GroupIdentity
}

AssetType

Values
Enum Value Description

AdHocComputer

Company

Computer

Device

Folder

Location

Person

Example
"AdHocComputer"

AssetUuid

Example
AssetUuid

Auth0Uuid

Description

Unique User ID, issued from, the auth0 system.

Example
Auth0Uuid

Boolean

Description

The Boolean scalar type represents true or false.

CaRetrievePublicCompanyDataResult

Types
Union Types

Failure

Imprint

Example
Failure

ChallengeChannel

Values
Enum Value Description

google_authenticator

sms

Example
"google_authenticator"

ClientCompany

Fields
Field Name Description
clientId - CustomerId
companyFolderDisplayName - Name!
companyFolderId - AssetUuid!
Example
{
  "clientId": CustomerId,
  "companyFolderDisplayName": Name,
  "companyFolderId": AssetUuid
}

CompanyClientReferenceSign

Description

an id, that the supporter has assigned to his client.

Example
CompanyClientReferenceSign

CompanyId

Example
CompanyId

CompanyIdOrCustomerUuid

Example
CompanyIdOrCustomerUuid

Computer

Fields
Field Name Description
access - [ComputerManageAccess!]! the access for the supporter team member
accessPolicy - ComputerAccessPolicy!
accessPwForDisplay - Password! the access password for remote hosts (masked), if empty than no password is set
accessPwSalt - Salt!
activeSessions - ActiveSessionsOfComputer
agentSetupDownload - Url a URL to download the setup, that installs the remote host for this computer. The link is only available, if the agent is not yet installed. (onlineState==AgentNotInstalled)
capabilities - AgentCapabilities! a collection of supported capabilities of the remote host
childOf - [AssetUuid!]! Attention!! only index of 0 provides a valid value
configurations - [AssetConfiguration_V1!]! settings for linked R2O users when they access this computer
createdAt - UnixTimeMs!
customerId - CompanyClientReferenceSign! the client id the supporter can assign to an asset (for logging purposes)
customerUuid - CustomerUuid! the company id to which this asset belongs, important for combined subscriptions or requests
description - NoteId! link to S3 description entry
device - Device a device which reprensents also this remote host
displayName - Name!
eventuallyCustomerId - CompanyClientReferenceSign! if customerId is empty, this value is filled with an heuristic value from name or customerId from folders, up in the hirarchy.
hostName - String current name of the physical computer
id - AssetUuid!
ioDevicesPolicy - IoDevicesPolicySettingsForComputer! settings for behaviour when starting a pcv session to this computer
isAdHocAccessDeactivated - Boolean! if the the usage of the computer as adhoc session participant is allowed (the view for entering the session id is shown or not)
isAllowedToScanInSubnet - Boolean!
isFileTransferDeactivated - Boolean! if it is forbidden to use file transfer of any kind to this compuer
isHotKeyDeactivated - Boolean! if the emergency stop button is deactivated for this computer
isRdpDeactivated - Boolean! if it is forbidden to use RDP to this compuer
isScanable - Boolean! indicates if the asset can be scanned in the subnet via another online Computer
lastOnline - UnixTimeMs
macAddress - Mac mac address of the physical computer
networkAdapters - [NetworkAdapter!]! the adapters this computer has access to
noteIds - [NoteId!]! a list of links to S3 note objects
onlineState - OnlineState!
operatingSystem - String
operatingSystemRole - Os_Role
operatingSystemType - Os
operatingSystemVersion - Version
postSessionBehaviour - PostSessionBehavior!
reachableSubnet1 - NetworkAdapter
reachableSubnet2 - NetworkAdapter
reachableSubnet3 - NetworkAdapter
recordingStartPolicy - ComputerRecordingStartPolicy!
rhServiceInstances - [RemoteHostServiceInstance!]! list of active instances of the remote host software
sessions - [SessionUuid!]!
settingsPwForDisplay - Password! the settings password for remote hosts (masked), if empty than no password is set
settingsPwSalt - Salt!
teamViewerId - String the teamviewer id found on the physical computer
typeName - AssetType!
updateBehaviour - ComputerUpdateBehaviour!
updatedAt - UnixTimeMs!
usageRightsKeptBy - [UsageRightByPerson!]! list of R2O users who have access to it
useAllowedByLicence - Boolean! true, if the contract of the current user allows to access this computer. If not, he might like to upgrade his account ...
users - [LoggedOnUser!]! list of active users at this computer
version - Version! the installed version of the installed client. Might be of interest for the supportor, to check, if everything its up-to-date.
wakeOnLanPossible - Boolean! true if there is a remote host in the same subnet which can wake up this computer
Example
{
  "access": [ComputerManageAccess],
  "accessPolicy": "WithPassword",
  "accessPwForDisplay": Password,
  "accessPwSalt": Salt,
  "activeSessions": ActiveSessionsOfComputer,
  "agentSetupDownload": Url,
  "capabilities": AgentCapabilities,
  "childOf": [AssetUuid],
  "configurations": [AssetConfiguration_V1],
  "createdAt": UnixTimeMs,
  "customerId": CompanyClientReferenceSign,
  "customerUuid": CustomerUuid,
  "description": NoteId,
  "device": Device,
  "displayName": Name,
  "eventuallyCustomerId": CompanyClientReferenceSign,
  "hostName": "abc123",
  "id": AssetUuid,
  "ioDevicesPolicy": IoDevicesPolicySettingsForComputer,
  "isAdHocAccessDeactivated": false,
  "isAllowedToScanInSubnet": false,
  "isFileTransferDeactivated": false,
  "isHotKeyDeactivated": false,
  "isRdpDeactivated": true,
  "isScanable": true,
  "lastOnline": UnixTimeMs,
  "macAddress": Mac,
  "networkAdapters": [NetworkAdapter],
  "noteIds": [NoteId],
  "onlineState": "ActiveSession",
  "operatingSystem": "xyz789",
  "operatingSystemRole": "Client",
  "operatingSystemType": "osAndroid",
  "operatingSystemVersion": Version,
  "postSessionBehaviour": "Default",
  "reachableSubnet1": NetworkAdapter,
  "reachableSubnet2": NetworkAdapter,
  "reachableSubnet3": NetworkAdapter,
  "recordingStartPolicy": "AlwaysStart",
  "rhServiceInstances": [RemoteHostServiceInstance],
  "sessions": [SessionUuid],
  "settingsPwForDisplay": Password,
  "settingsPwSalt": Salt,
  "teamViewerId": "abc123",
  "typeName": "AdHocComputer",
  "updateBehaviour": "AutomaticUpdate",
  "updatedAt": UnixTimeMs,
  "usageRightsKeptBy": [UsageRightByPerson],
  "useAllowedByLicence": true,
  "users": [LoggedOnUser],
  "version": Version,
  "wakeOnLanPossible": true
}

ComputerAccessPolicy

Values
Enum Value Description

WithPassword

WithSupportPermission

Example
"WithPassword"

ComputerManageAccess

Fields
Field Name Description
canBeChanged - Boolean! this access entry can be changed at all (i.E. for TeamAdmins this is not allowed)
canBeDeleted - Boolean! this access entry can be removed from the computer
companyId - CompanyId!
email - EmailOrSpecialAccessGroups! SpecialAccessGroups can be only SupporterAdmin or EveryBody
privileges - AssetAccessRights!
Example
{
  "canBeChanged": true,
  "canBeDeleted": true,
  "companyId": CompanyId,
  "email": EmailOrSpecialAccessGroups,
  "privileges": "CanAccess"
}

ComputerRecordingStartPolicy

Values
Enum Value Description

AlwaysStart

always tart recording

InheritFromParentFolder

inherit settings from parent folder of computer

NeverStart

never start recording

UseGobalSetting

use global setting from company settings
Example
"AlwaysStart"

ComputerUpdateBehaviour

Values
Enum Value Description

AutomaticUpdate

as soon as there is a new version try to update

ManualUpdate

only on manual trigger start the update

NeverUpdate

not supported yet
Example
"AutomaticUpdate"

ComputerUserType

Values
Enum Value Description

ConsoleUser

LoggedOnUser

Supporter

SystemUser

Example
"ConsoleUser"

Contact

Fields
Field Name Description
email - Email!
firstName - Name!
lastName - Name!
phone - PhoneNumber!
picture - ImageURL!
Example
{
  "email": Email,
  "firstName": Name,
  "lastName": Name,
  "phone": "+17895551234",
  "picture": ImageURL
}

Country

Description

Country code, following ISO 3166 , see https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste all countries, where we have customer relationships to

Values
Enum Value Description

AR

Argentinien

AT

BE

Belgien

BG

Bulgarien

BR

Brasil

CA

Kanada

CH

CZ

Czech Republic

DE

DK

Denmark

ES

Spanien

FR

France

GB

Great Britain

HR

Kroatien

IE

Irland

IT

Italy

JP

Japan

LI

Liechtenstein

LT

Litauen

LU

Luxemburg

NL

Netherlands

PL

Poland

RO

Rumänien

RS

Serbien

SI

Slowenien

SK

Slovakia

US

USA

ZA

Südafrika
Example
"AR"

Cursor

Example
Cursor

CustomerId

Example
CustomerId

CustomerUuid

Description

pcvisit wide unique id of an customer. With it, we can find them on each internal system.

Example
CustomerUuid

Description

Example
Description

Device

Fields
Field Name Description
childOf - [AssetUuid!]! Attention!! only index of 0 provides a valid value
createdAt - UnixTimeMs!
customerId - CompanyClientReferenceSign! the client id the supporter can assign to an asset (for logging purposes)
customerUuid - CustomerUuid! the company id to which this asset belongs, important for combined subscriptions or requests
decomissionedAt - UnixTimeMs
description - NoteId! link to S3 description entry
displayName - Name!
eventuallyCustomerId - CompanyClientReferenceSign! if customerId is empty, this value is filled with an heuristic value from name or customerId from folders, up in the hirarchy.
group - DeviceGroup!
id - AssetUuid!
inHouseLocation - String placing information of the device (ceiling, left corner under desk etc)
isScanable - Boolean! indicates if the asset can be scanned in the subnet via another online Computer
lastScannedAt - UnixTimeMs! when was this device last found in a discover scan
make - String the maker or vendor of the device, i.e. Apple, Huawei
model - String the model of a device i.e. iPhone 5S, P9
networkAdapters - [NetworkAdapter!]! the adapters this device has access to
noteIds - [NoteId!]! a list of links to S3 note objects
onlineState - OnlineState!
operatingSystem - String
purchasedAt - UnixTimeMs date of purchasing the device
reachableSubnet1 - NetworkAdapter
reachableSubnet2 - NetworkAdapter
reachableSubnet3 - NetworkAdapter
remoteHost - Computer a remote host which reprensents also this device
scannedMake - String
scannedModel - String
scannedName - Name!
scannedType - DeviceType!
scannedVendor - String
serialNumber - SerialNumber
services - [ServiceProperty!]!
type - DeviceType!
typeName - AssetType!
updatedAt - UnixTimeMs!
vendor - String the vendor of the device
wakeOnLanPossible - Boolean! true if there is a remote host in the same subnet which can wake up this device
Example
{
  "childOf": [AssetUuid],
  "createdAt": UnixTimeMs,
  "customerId": CompanyClientReferenceSign,
  "customerUuid": CustomerUuid,
  "decomissionedAt": UnixTimeMs,
  "description": NoteId,
  "displayName": Name,
  "eventuallyCustomerId": CompanyClientReferenceSign,
  "group": "AudioAndVideo",
  "id": AssetUuid,
  "inHouseLocation": "xyz789",
  "isScanable": false,
  "lastScannedAt": UnixTimeMs,
  "make": "abc123",
  "model": "xyz789",
  "networkAdapters": [NetworkAdapter],
  "noteIds": [NoteId],
  "onlineState": "ActiveSession",
  "operatingSystem": "xyz789",
  "purchasedAt": UnixTimeMs,
  "reachableSubnet1": NetworkAdapter,
  "reachableSubnet2": NetworkAdapter,
  "reachableSubnet3": NetworkAdapter,
  "remoteHost": Computer,
  "scannedMake": "abc123",
  "scannedModel": "xyz789",
  "scannedName": Name,
  "scannedType": "Alarm",
  "scannedVendor": "xyz789",
  "serialNumber": SerialNumber,
  "services": [ServiceProperty],
  "type": "Alarm",
  "typeName": "AdHocComputer",
  "updatedAt": UnixTimeMs,
  "vendor": "abc123",
  "wakeOnLanPossible": false
}

DeviceGroup

Values
Enum Value Description

AudioAndVideo

Engineering

HomeAndOffice

Mobile

Network

Server

SmartHome

Unknown

Example
"AudioAndVideo"

DeviceType

Values
Enum Value Description

Alarm

Arduino

AudioPlayer

AVReceiver

BabyMonitor

BarcodeScanner

CableBox

Car

CircuitBoard

Clock

Cloud

Communication

Computer

Controller

Database

Desktop

Detector

DiscPlayer

Display

DomainServer

DomotzBox

Doorbell

eBookReader

Electric

Fax

FileServer

Fingbox

Firewall

GameConsole

GarageDoor

Gateway

Generic

HealthMonitor

HVAC

IPCamera

IPPhone

Laptop

Light

MailServer

MediaPlayer

Mic

Mobile

Modem

MotionDetector

MP3Player

NAS

NetworkAppliance

PetMonitor

PhotoCamera

PhotoDisplay

PoESwitch

PointOfSale

PowerSystem

Printer

ProcessingUnit

Projector

ProxyServer

Radio

Raspberry

RemoteControl

RFIDTag

Robot

Router

Satellite

Scale

Scanner

Sensor

Server

SleepTech

SmallCell

SmartAppliance

SmartCleaner

SmartDevice

SmartFridge

SmartLock

SmartMeter

SmartPlug

SmartWasher

SmartWatch

SmokeDetector

SolarPanel

SpeakerAmp

Sprinkler

StreamingDongle

Switch

Tablet

Television

Terminal

Thermostat

TouchPanel

Toy

Unknown

UPS

USB

VirtualMachine

VoiceControl

VPN

WaterSensor

Wearable

WeatherStation

WebServer

WiFi

WiFiExtender

Example
"Alarm"

Domain

Description

Domain name on a network/computer system.

Example
Domain

DurationMs

Example
DurationMs

Email

Description

Email.

Example
Email

EmailOrSpecialAccessGroups

Example
EmailOrSpecialAccessGroups

ErrorIDs

Values
Enum Value Description

Ac_ServiceSupplyExceeded

AccessDenied

ActiveUserInSession

AdHocDesktopLinkAlreadyExists

AgentNotInstalled

AlreadySessionParticipant

ApplicationFailure

AssetAlreadyLinked

AssetLinked

AssetsNotLinked

BackendFailure

CanceledSubscription

ChangedUrl

ComputerAccessIsForbidden

ComputerDoesNotAllowFileTransfer

ComputerDoesNotAllowRdp

ComputerIsOffline

ComputerIsOfflineButWakeable

ComputerNotYetInstalled

ContractAlreadyExist

CouldNotCreateFile

CustomerIsAlreadyLinkedToCompany

DoesNotExist

DownloadCanceled

EmailDeniedAsSuspicious

EmptyPasswordNotAllowed

FeatureNotLicensed

FileDoesNotExist

FunctionNotAvailable

IncompleteInstallation

InsufficientRights

InvalidValue

InvalidVatId

IsNotCreatorOfSession

IsNotParticipantOfSession

LimitExceeded

LoggedOutByInactivity

LoggedOutByUser

LoggedOutByUserFromOtherTab

LogOnUserDoesNotExist

MaxEntriesAddedToDashboard

MemberIsAlreadyActiveInTeam

Mfa_AlreadyActiveForOtherCompany

Mfa_AlreadyActiveForOwnCompany

MissingValue

MonthlySessionLimitReached

NeedAccountOrLocalInputFlag

NeedPassword

NeedPingConnection

NeedRefreshToken

NoError

NoProxyFoundForWakeOnLAN

NoRessourceFound

NotAllServicesAvailable

NotConnectedToServer

NotFound

NothingToUpdate

NotImplemented

NotInitialized

NotSupportedFormat

ObjectExists

OsVersionTooOld

ParallelSessionLimitReached

ParticpantLimitReached

RdpNotSupportedLocally

ScanInfrastructureNotReachable

ServerDenyConnection

ServerNotResponding

ServiceAlreadyRunning

ServiceNotRunning

ServiceNotSupported

SessionAlreadyClosed

SharingViolation

SpecialFolderCouldNotBeChanged

SpecialFolderCouldNotBeDeleted

TeamUserLimitReached

TimeOut

TimeOut: Used for rate limiting and timeout scenarios. When this error occurs due to rate limiting, the comment_for_dev field contains HTTP-style Retry-After information in the format: "Retry-After: seconds (until )". Parse this value to determine when to retry. Example: "Retry-After: 5 seconds (until Mon, 01 Jan 2024 12:00:00 GMT)". The comment_for_dev also includes the configured rate limit (e.g., "Rate limit: 100 requests per minute"). Always respect the Retry-After timing to avoid further rate limit violations.

TokenExpired

TryAgainLater

TryAgainLater: Similar to TimeOut, indicates the request should be retried later. Check the comment_for_dev field for specific retry instructions and timing information.

TypeDoesNotExist

UnknownError

UnknownType

UnsupportedVersionUsed

UserAlreadyExists

UserCanceledAction

UserDeniedRequest

UserIsLastActiveAdminInTeam

UserIsTeamOwner

UserNotInTeam

UserNotVerified

WrongArguments

WrongCredentials

WrongPassword

WrongRole

WrongState

Example
"Ac_ServiceSupplyExceeded"

ExportOutputFormat

Values
Enum Value Description

csv

pdf

xlsx

Example
"csv"

ExportSummary

Fields
Field Name Description
exportDocumentDownloadLink - Url!
Example
{"exportDocumentDownloadLink": Url}

Failure

Description

Following here this failure strategy: https://blog.apollographql.com/full-stack-error-handling-with-graphql-apollo-5c12da407210 Each mutate or request returns ALWAYS the expect result OR an Failure. So, the network layer on client side itself (in case the network to the server is down) and the whole server has to ensure this behaviour.

Fields
Field Name Description
comment_for_dev - String
comment_for_user - String!
error - ErrorIDs!
Example
{
  "comment_for_dev": "abc123",
  "comment_for_user": "abc123",
  "error": "Ac_ServiceSupplyExceeded"
}

FilePath

Example
FilePath

Filter

Fields
Input Field Description
input - String! see https://www.npmjs.com/package/ filtrex i.e. "onlineState == "Online" or typeName == "Folder""
Example
{"input": "xyz789"}

GroupIdentity

Fields
Field Name Description
CompanyID - CustomerUuid!
Group - GroupName!
Example
{
  "CompanyID": CustomerUuid,
  "Group": GroupName
}

GroupName

Example
GroupName

HomeConnected

Values
Enum Value Description

HOME_OFFLINE

HOME_ONLINE

Example
"HOME_OFFLINE"

IP

Description

Address of an endpoint

Example
"2001:0db8:85a3:0000:0000:8a2e:0370:7334"

Identity

Fields
Field Name Description
CompanyID - CustomerUuid!
UserID - Auth0Uuid!
Example
{
  "CompanyID": CustomerUuid,
  "UserID": Auth0Uuid
}

ImageURL

Description

a URL, refering an image.

Example
ImageURL

Imprint

Fields
Field Name Description
address - Address!
companyId - CompanyId
companyName - String!
customerUuid - CustomerUuid!
email - Email!
isPictureFallback - Boolean!
phone - PhoneNumber!
picture - Url!
vatId - VATID!
Example
{
  "address": Address,
  "companyId": CompanyId,
  "companyName": "abc123",
  "customerUuid": CustomerUuid,
  "email": Email,
  "isPictureFallback": true,
  "phone": "+17895551234",
  "picture": Url,
  "vatId": VATID
}

InputSessionExportOptions

Fields
Input Field Description
exportWithComments - Boolean!
outputFileFormat - ExportOutputFormat!
Example
{"exportWithComments": false, "outputFileFormat": "csv"}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

IntegratorApiToken

Description

Integrator API Token, can be used to allow an integrator to consume this API.

Example
IntegratorApiToken

IoDevicesPolicySettingsForComputer

Fields
Field Name Description
inheritFromParentFolder - Boolean! if the settings for turnOffLocalInput, turnOffWallpaper and turnOffMonitors should be taken from the parent folder's settings
preventShutdown - Boolean!
turnOffLocalInput - Boolean! if the local input is turned off or not for remote host in session
turnOffMonitors - Boolean! if the monitor is turned off or not for remote host in session
turnOffWallpaper - Boolean! if the wallpaper is turned off or not for remote host in session
Example
{
  "inheritFromParentFolder": true,
  "preventShutdown": true,
  "turnOffLocalInput": true,
  "turnOffMonitors": true,
  "turnOffWallpaper": true
}

JWT

Description

JSON Web Token, can be used to consume this API.

Example
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyLCJwcm9qZWN0IjoiZ3JhcGhxbC1zY2FsYXJzIn0.nYdrSfE2nNRAgpiEU1uKgn2AYYKLo28Z0nhPXvsuIww"

LifeSignOfOsSession

Values
Enum Value Description

ConnectionLost

InteractiveScreen

LockScreen

LoggedOff

LoginScreen

Rebooting

SecurityOrUac

TerminalSessionDisconnected

UnknownScreen

Example
"ConnectionLost"

LoggedOnUser

Fields
Field Name Description
displayName - Name!
isInWindowsConsoleSession - Boolean!
logonName - Name!
logonUserDomain - Domain!
screenState - LifeSignOfOsSession!
windowsSessionId - Int!
Example
{
  "displayName": Name,
  "isInWindowsConsoleSession": false,
  "logonName": Name,
  "logonUserDomain": Domain,
  "screenState": "ConnectionLost",
  "windowsSessionId": 987
}

LoginPolicy

Fields
Field Name Description
allowRememberBrowser - Boolean
challengeChannel - ChallengeChannel
companyMayChangePhoneNumber - Boolean!
type - LoginType!
Example
{
  "allowRememberBrowser": true,
  "challengeChannel": "google_authenticator",
  "companyMayChangePhoneNumber": false,
  "type": "email_password"
}

LoginPolicyOfCompanyRole

Fields
Field Name Description
customer_uuid - CustomerUuid!
loginPolicy - LoginPolicy!
role - LoginPolicyRole!
Example
{
  "customer_uuid": CustomerUuid,
  "loginPolicy": LoginPolicy,
  "role": "r2oCustomer"
}

LoginPolicyRole

Values
Enum Value Description

r2oCustomer

supportTeammember

Example
"r2oCustomer"

LoginType

Values
Enum Value Description

email_password

mfa

Example
"email_password"

Mac

Example
Mac

Name

Description

FirstName + LastName

Example
Name

NetworkAdapter

Fields
Field Name Description
description - Description
gatewayAddress - IP!
gatewayHardwareAdress - Mac!
hardwareAdress - Mac!
id - SubnetId!
ip - IP!
name - Name
subnetMask - IP!
Example
{
  "description": Description,
  "gatewayAddress": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
  "gatewayHardwareAdress": Mac,
  "hardwareAdress": Mac,
  "id": SubnetId,
  "ip": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
  "name": Name,
  "subnetMask": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
}

NoteId

Example
NoteId

OnlineState

Values
Enum Value Description

ActiveSession

AgentNotInstalled

Forbidden

Locked

Offline

Online

Zombie

Example
"ActiveSession"

Os

Values
Enum Value Description

osAndroid

osDontCare

osIos

osLinux

osMacOSx

osNintendo

osPlaystation

osTvOS

osUnknown

osWatchOS

osWin32

osWin32_xp

osXbox

Example
"osAndroid"

Os_Role

Values
Enum Value Description

Client

DomainController

Server

Unknown

Example
"Client"

Pagination

Fields
Input Field Description
cursor - Cursor Default to the very first element, if not present
lengthStartingFromOffset - Int!
offset - Int Default to Null, if not present
Example
{
  "cursor": Cursor,
  "lengthStartingFromOffset": 987,
  "offset": 987
}

Password

Example
Password

PhoneNumber

Example
"+17895551234"

Port

Example
60679

PostSessionBehavior

Description

enum for how the client module shall behave when leaving the session

Values
Enum Value Description

Default

users stays unchanged

InheritFromParent

LockComputer

LogOffCurrentUser

Example
"Default"

ProtocolConfigurationRdp

Fields
Field Name Description
isAllowed - Boolean! if this type of protocol is allowed for the R2O User
sessionPrivileges - [AccessRightsPolicy!]!
Example
{"isAllowed": true, "sessionPrivileges": ["AllowAudio"]}

ProtocolConfigurationSftp

Fields
Field Name Description
isAllowed - Boolean! if this type of protocol is allowed for the R2O User
sessionPrivileges - [AccessRightsPolicy!]!
Example
{"isAllowed": true, "sessionPrivileges": ["AllowAudio"]}

ProtocolConfigurationVnc

Fields
Field Name Description
isAllowed - Boolean! if this type of protocol is allowed for the R2O User
postSessionBehaviour - PostSessionBehavior!
sessionBehaviour - IoDevicesPolicySettingsForComputer!
sessionPrivileges - [AccessRightsPolicy!]!
Example
{
  "isAllowed": true,
  "postSessionBehaviour": "Default",
  "sessionBehaviour": IoDevicesPolicySettingsForComputer,
  "sessionPrivileges": ["AllowAudio"]
}

R2O_AccessRole

Description

the role a user has in a r2o configuration

Values
Enum Value Description

customer

a paying customer for the company

teammember

a non paying teammember of the company

unknown

Example
"customer"

RdpProperties

Fields
Field Name Description
availableServices - [AccessRightsPolicy!]
capabilityVersion - Version!
rdpVersion - Version
status - ErrorIDs! state of the service, might be one of the following codes: NoError - Rdp is working UnsupportedVersionUsed - Remote Host is outdated, no correct info available FunctionNotAvailable - platform might be mac or linux but not Windows AgentNotInstalled - computer is still only a placeholder SharingViolation - multiple processes are listening on the rdp port, so the service might be buggy ServiceNotSupported - service not configured, might be a Windows Home edition ServiceNotRunning - the neccessary Rdp Processes are not running or listening NotAllServicesAvailable - rpd is up and running but not all services are available
Example
{
  "availableServices": ["AllowAudio"],
  "capabilityVersion": Version,
  "rdpVersion": Version,
  "status": "Ac_ServiceSupplyExceeded"
}

RemoteAppProperties

Fields
Field Name Description
availableServices - [AccessRightsPolicy!]
capabilityVersion - Version!
launchApp - FilePath
rdpVersion - Version
status - ErrorIDs! state of the service, might be one of the following codes: NoError - Rdp is working UnsupportedVersionUsed - Remote Host is outdated, no correct info available FunctionNotAvailable - platform might be mac or linux but not Windows AgentNotInstalled - computer is still only a placeholder SharingViolation - multiple processes are listening on the rdp port, so the service might be buggy ServiceNotSupported - service not configured, might be a Windows Home edition ServiceNotRunning - the neccessary Rdp Processes are not running or listening NotAllServicesAvailable - rpd is up and running but not all services are available
Example
{
  "availableServices": ["AllowAudio"],
  "capabilityVersion": Version,
  "launchApp": FilePath,
  "rdpVersion": Version,
  "status": "Ac_ServiceSupplyExceeded"
}

RemoteHostServiceInstance

Fields
Field Name Description
computerIdentity - AssetUuid!
displayName - Name!
homeConnectionState - HomeConnected!
id - UserIdentity!
isInRemoteAccess - Boolean!
isInWindowsConsoleSession - Boolean!
levelableState - UacLevelState!
logonName - Name!
logonUserDomain - Domain!
resourceObjectIdentity - ResourcePath!
screenState - LifeSignOfOsSession!
type - ComputerUserType!
windowsSessionId - Int!
Example
{
  "computerIdentity": AssetUuid,
  "displayName": Name,
  "homeConnectionState": "HOME_OFFLINE",
  "id": UserIdentity,
  "isInRemoteAccess": true,
  "isInWindowsConsoleSession": false,
  "levelableState": "AdminRights_Active",
  "logonName": Name,
  "logonUserDomain": Domain,
  "resourceObjectIdentity": ResourcePath,
  "screenState": "ConnectionLost",
  "type": "ConsoleUser",
  "windowsSessionId": 987
}

ResourcePath

Example
ResourcePath

Salt

Example
Salt

SerialNumber

Example
SerialNumber

ServiceProperty

Fields
Field Name Description
banner - String!
createdAt - UnixTimeMs!
displayName - String!
id - Port!
protocol - ServiceProtocol!
type - ServiceType!
updatedAt - UnixTimeMs!
Example
{
  "banner": "xyz789",
  "createdAt": UnixTimeMs,
  "displayName": "abc123",
  "id": 60679,
  "protocol": "tcp",
  "type": "EPMAP",
  "updatedAt": UnixTimeMs
}

ServiceProtocol

Values
Enum Value Description

tcp

udp

Example
"tcp"

ServiceType

Values
Enum Value Description

EPMAP

HTTP

HTTPS

MsRpc

RDP

SNMP

SSH

Unknown

VNC

WMI

Example
"EPMAP"

SessionName

Example
SessionName

SessionProtocol

Fields
Field Name Description
clientCompany - ClientCompany
commentsLink - Url
customDuration - DurationMs
duration - DurationMs
id - TaskUuid!
invoiceState - TaskInvoiceStatus!
lastUpdatedAt - UnixTimeMs! timestamp of the last update (event) of this protocol
name - SessionName!
participants - [SessionProtocolParticipant!]!
sessionCompanyUuid - CustomerUuid!
sessionCreatedAt - UnixTimeMs!
sessionFinishedAt - UnixTimeMs
state - SessionState!
target - SessionProtocolMainTarget
type - SessionType!
Example
{
  "clientCompany": ClientCompany,
  "commentsLink": Url,
  "customDuration": DurationMs,
  "duration": DurationMs,
  "id": TaskUuid,
  "invoiceState": "Invoiced",
  "lastUpdatedAt": UnixTimeMs,
  "name": SessionName,
  "participants": [SessionProtocolParticipant],
  "sessionCompanyUuid": CustomerUuid,
  "sessionCreatedAt": UnixTimeMs,
  "sessionFinishedAt": UnixTimeMs,
  "state": "AwaitingAccessAsParticipant",
  "target": SessionProtocolMainTarget,
  "type": "AdHocSessionForSupporter"
}

SessionProtocolEdge

Fields
Field Name Description
batchLoadingIsStillActive - Boolean! if true, there will be coming more data, if false there is no more data to be expected for now (until a real update is triggered)
nodes - [SessionProtocolNode!]!
reportingActiveSince - UnixTimeMs! the starting timepoint for gathering all session data for this company
totalCount - Int! the total number of protocols in the result independent from paging
Example
{
  "batchLoadingIsStillActive": false,
  "nodes": [SessionProtocolNode],
  "reportingActiveSince": UnixTimeMs,
  "totalCount": 987
}

SessionProtocolMainTarget

Fields
Field Name Description
computerDisplayName - Name!
computerHostName - Name
computerId - AssetUuid!
computerMacAddress - Mac
computerTeamViewerId - String
computerUserDisplayName - Name
termsAndConditionsNameUsedForAccepting - Name
termsAndConditionsRequestState - TermsAndConditionsRequestState!
Example
{
  "computerDisplayName": Name,
  "computerHostName": Name,
  "computerId": AssetUuid,
  "computerMacAddress": Mac,
  "computerTeamViewerId": "xyz789",
  "computerUserDisplayName": Name,
  "termsAndConditionsNameUsedForAccepting": Name,
  "termsAndConditionsRequestState": "Accepted"
}

SessionProtocolNode

Fields
Field Name Description
cursor - Cursor!
index - Int!
value - SessionProtocol!
Example
{
  "cursor": Cursor,
  "index": 987,
  "value": SessionProtocol
}

SessionProtocolParticipant

Fields
Field Name Description
isSessionCreator - Boolean!
legacyParticipantName - Name
supporterContact - Contact!
supporterIdentity - Identity!
Example
{
  "isSessionCreator": false,
  "legacyParticipantName": Name,
  "supporterContact": Contact,
  "supporterIdentity": Identity
}

SessionState

Values
Enum Value Description

AwaitingAccessAsParticipant

CreatingStream

Documenting

ServingStream

SessionClosed

SessionInvalid

Example
"AwaitingAccessAsParticipant"

SessionToAsset

Fields
Field Name Description
createdAt - UnixTimeMs!
creatorCompanyName - Name!
creatorFirstName - Name!
creatorLastName - Name!
Example
{
  "createdAt": UnixTimeMs,
  "creatorCompanyName": Name,
  "creatorFirstName": Name,
  "creatorLastName": Name
}

SessionType

Values
Enum Value Description

AdHocSessionForSupporter

DeviceSessionForR2O

DeviceSessionForSupporter

Example
"AdHocSessionForSupporter"

SessionUuid

Description

pcvisit wide unique id of a session. With it, we can found them on each internal system.

Example
SessionUuid

SftpProperties

Fields
Field Name Description
availableServices - [AccessRightsPolicy!]
capabilityVersion - Version!
status - ErrorIDs! state of the service, might be one of the following codes: NoError - Rdp is working UnsupportedVersionUsed - Remote Host is outdated, no correct info available FunctionNotAvailable - platform might be mac or linux but not Windows AgentNotInstalled - computer is still only a placeholder SharingViolation - multiple processes are listening on the rdp port, so the service might be buggy ServiceNotSupported - service not configured, might be a Windows Home edition ServiceNotRunning - the neccessary Rdp Processes are not running or listening NotAllServicesAvailable - rpd is up and running but not all services are available
Example
{
  "availableServices": ["AllowAudio"],
  "capabilityVersion": Version,
  "status": "Ac_ServiceSupplyExceeded"
}

SiFindUserByMailResult

Types
Union Types

Failure

User

Example
Failure

SiRetrieveSignedJwtResult

Types
Union Types

Failure

SignedJwtWasRetrieved

Example
Failure

SiRetrieveSignedTokenPayloadResult

Types
Union Types

Failure

SignedTokenPayload

Example
Failure

SignedJwtWasRetrieved

Fields
Field Name Description
customerUuid - CustomerUuid!
token - JWT!
Example
{
  "customerUuid": CustomerUuid,
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyLCJwcm9qZWN0IjoiZ3JhcGhxbC1zY2FsYXJzIn0.nYdrSfE2nNRAgpiEU1uKgn2AYYKLo28Z0nhPXvsuIww"
}

SignedTokenPayload

Fields
Field Name Description
base64 - String! the base64 encoded value to be put into the jwt
payload - String! the content of base64 value as stringified json for controlling purpose
signature - String! the signature to verify the base64 encoded value
Example
{
  "base64": "abc123",
  "payload": "abc123",
  "signature": "abc123"
}

Sort

Description

Describes how to sort a list of elements. path points to a value within the result as property we are sorting for, in the form of: x.y.z The backend might use a kind of lexiographical sort algorithm. Thus, hashSize defines the size of the hash for each property we sort, but influences the accuracy of the results. Default is 15; if the values we sort for exceeds this size, we should adapt in the size of the hashSize.

Fields
Input Field Description
direction - SortDirection!
hashSize - Int
mapToIndex - [String!]
path - String!
Example
{
  "direction": "Asc",
  "hashSize": 123,
  "mapToIndex": ["abc123"],
  "path": "xyz789"
}

SortDirection

Values
Enum Value Description

Asc

Desc

Example
"Asc"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

SubnetId

Example
SubnetId

TaskInvoiceStatus

Values
Enum Value Description

Invoiced

task has been handled

NotRequired

task invoice does not need handling

Pending

not yet invoiced or decided what to do
Example
"Invoiced"

TaskUuid

Example
TaskUuid

TermsAndConditionsRequestState

Values
Enum Value Description

Accepted

Denied

UnknownOrNotRequested

Example
"Accepted"

TimeFrame

Fields
Input Field Description
endDate - UnixTimeMs
startDate - UnixTimeMs
Example
{
  "endDate": UnixTimeMs,
  "startDate": UnixTimeMs
}

UacLevelState

Values
Enum Value Description

AdminRights_Active

Levelable_by_Myself

Levelable_w_OtherAccount

Missing_Privileges

SystemRights_Active

Unknown

Example
"AdminRights_Active"

UnixTimeMs

Description

Time as Unixtime in ms (see https://de.wikipedia.org/wiki/Unixzeit, number of milliseconds since 1. Januar 1970 00:00:00 UTC)

Example
UnixTimeMs

Url

Description

a URL.

Example
Url

UsageRightByPerson

Fields
Field Name Description
id - Auth0Uuid!
userRole - R2O_AccessRole!
Example
{"id": Auth0Uuid, "userRole": "customer"}

User

Fields
Field Name Description
company_ids - [CustomerUuid!]!
company_in_charge_ids - [CustomerUuid!]!
created - UnixTimeMs!
email - Email!
email_verified - Boolean!
firstName - Name!
id - Auth0Uuid!
isPictureFallback - Boolean!
lastLogin - UnixTimeMs
lastName - Name!
lastPasswordReset - UnixTimeMs
loginPoliciesOfCompanies - [LoginPolicyOfCompanyRole!]!
phone - PhoneNumber!
picture - ImageURL!
strongestActiveLoginPolicy - LoginPolicy
Example
{
  "company_ids": [CustomerUuid],
  "company_in_charge_ids": [CustomerUuid],
  "created": UnixTimeMs,
  "email": Email,
  "email_verified": true,
  "firstName": Name,
  "id": Auth0Uuid,
  "isPictureFallback": false,
  "lastLogin": UnixTimeMs,
  "lastName": Name,
  "lastPasswordReset": UnixTimeMs,
  "loginPoliciesOfCompanies": [LoginPolicyOfCompanyRole],
  "phone": "+17895551234",
  "picture": ImageURL,
  "strongestActiveLoginPolicy": LoginPolicy
}

UserApiToken

Description

User API Token, can be used to allow an integrator to consume this API on behalf of an user.

Example
UserApiToken

UserIdentity

Example
UserIdentity

UserOrGroup

Types
Union Types

GroupIdentity

Identity

Example
GroupIdentity

VATID

Example
VATID

Version

Example
Version

VncProperties

Fields
Field Name Description
availableServices - [AccessRightsPolicy!]
capabilityVersion - Version!
status - ErrorIDs! state of the service, might be one of the following codes: NoError - Rdp is working UnsupportedVersionUsed - Remote Host is outdated, no correct info available FunctionNotAvailable - platform might be mac or linux but not Windows AgentNotInstalled - computer is still only a placeholder SharingViolation - multiple processes are listening on the rdp port, so the service might be buggy ServiceNotSupported - service not configured, might be a Windows Home edition ServiceNotRunning - the neccessary Rdp Processes are not running or listening NotAllServicesAvailable - rpd is up and running but not all services are available
Example
{
  "availableServices": ["AllowAudio"],
  "capabilityVersion": Version,
  "status": "Ac_ServiceSupplyExceeded"
}