TeamViewer Remote Control icon

TeamViewer Remote Control Data API

TeamViewer · Business

TeamViewer Remote Control is TeamViewer's Android client for its remote-access platform: technicians, helpdesks and managed service providers use it to reach unattended computers, assist end users and work their Computers & Contacts list from a phone. It serves the remote-support and IT-management market across the US, Brazil, India, Mexico and the UAE, where the platform is a standard tool for distributed IT teams.

As a data source, the app exposes the objects behind those screens: an account record with emailAddress and companyName, license entitlements such as numberOfChannels, a device directory carrying teamViewerId, onlineStatus and isWakeOnLanPossible, plus support cases with sessioncode and joinSessionUrlForRecipient. Integration builders use that surface for ITAM inventory, helpdesk session hand-off and license-seat reconciliation.

TeamViewer Remote Control is TeamViewer's Android app for starting remote-support and unattended-access sessions from a phone, the mobile half of a platform used by IT teams, helpdesks and managed service providers, listed across the US, Brazil, India, Mexico and the UAE. Behind its screens sit a signed-in account profile with license entitlements, a Computers & Contacts directory of devices with online status and Wake-on-LAN flags, and support-case records with join links. That data powers CMDB inventory syncs, helpdesk ticket hand-offs and license-seat reconciliation.

Screenshots

  • TeamViewer Remote Control screenshot 1
  • TeamViewer Remote Control screenshot 2
  • TeamViewer Remote Control screenshot 3
  • TeamViewer Remote Control screenshot 4
  • TeamViewer Remote Control screenshot 5
  • TeamViewer Remote Control screenshot 6
  • TeamViewer Remote Control screenshot 7
  • TeamViewer Remote Control screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Issue a login token

    POST /v1/session/token opendata

    Mints the login token that the token-login call and every later Bearer request use to keep the controller signed in.

    Auth: Signed-in TeamViewer account session. The returned token is sent as Authorization: Bearer on later account, contacts, devices and remote-control calls.

    • token
    • tokenId
    • accountId
    • ssoVerificationToken
    POST /v1/session/token HTTP/1.1
    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.session
    Accept: application/json
    {
      "token": "tv-login-7f3c9a21e8b04d11",
      "tokenId": 88421,
      "accountId": 12345678,
      "ssoVerificationToken": null
    }
    • Reconstructed from the app's sign-in flow.
    • Response fields match the session state the app stores after login.
  • Sign in with a login token

    POST /v1/session/token-login opendata

    Completes token login so the Computers & Contacts and remote-control surfaces accept the Bearer session.

    Auth: None on the exchange itself. Body carries token, tokenId and accountId from POST /v1/session/token. Subsequent calls attach Authorization: Bearer.

    • token
    • tokenId
    • accountId
    • ssoVerificationToken
    • keepMeSignedIn
    POST /v1/session/token-login HTTP/1.1
    Content-Type: application/json
    
    {
      "token": "tv-login-7f3c9a21e8b04d11",
      "tokenId": 88421,
      "accountId": 12345678,
      "ssoVerificationToken": null,
      "keepMeSignedIn": true
    }
    {
      "ok": true
    }
    • Reconstructed from the app's returning-user sign-in flow.
  • Read the signed-in account

    GET /v1/account osint

    Loads the signed-in identity used on the account screen: display name, email, company membership and effective license features.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • accountId
    • profile
    • displayName
    • emailAddress
    • pictureUrl
    • state
    • accountCompanyInfo
    • accountJoinCompanyState
    • isInCompany
    • companyId
    • companyName
    • effectiveLicenseFeatures
    • loginType
    • isTenantManager
    • accountType
    GET /v1/account HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "accountId": 12345678,
      "profile": {
        "displayName": {"value": "Alex Rivera"},
        "emailAddress": {"value": "[email protected]"},
        "pictureUrl": {"value": "https://cdn.example.com/avatar/12345678.png"}
      },
      "state": "Online",
      "accountCompanyInfo": {
        "accountJoinCompanyState": "Joined",
        "isInCompany": true,
        "companyId": 44012,
        "companyName": "Acme IT Services"
      },
      "effectiveLicenseFeatures": [1, 4, 9],
      "loginType": "Regular",
      "isTenantManager": false,
      "accountType": "Regular"
    }
    • Reconstructed from the app's account screen.
    • Field groups mirror the profile, company and license panels shown there.
  • List account licenses

    GET /v1/account/licenses opendata

    Returns the account's remote-control, IoT, assist, backup, MDM, monitoring and endpoint-protection seats that gate session channels.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • tvLicense
    • licenseType
    • displayname
    • numberOfChannels
    • licenseId
    • iotLicense
    • pilotLicense
    • backupLicenses
    • mobileDeviceManagementLicenses
    • monitoringLicenses
    • endpointProtectionLicenses
    • advancedAssetManagementLicenses
    • highestBusinessLicense
    GET /v1/account/licenses HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "tvLicense": {
        "licenseType": "Corporate",
        "displayname": "TeamViewer Corporate",
        "numberOfChannels": 15,
        "licenseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      },
      "iotLicense": {"licenseType": "IoT"},
      "pilotLicense": {"licenseType": "Pilot", "displayname": "Frontline"},
      "backupLicenses": [],
      "mobileDeviceManagementLicenses": [],
      "monitoringLicenses": [],
      "endpointProtectionLicenses": [],
      "advancedAssetManagementLicenses": [],
      "highestBusinessLicense": 15
    }
    • Reconstructed from the account screen's license section.
  • Read two-factor status

    GET /v1/account/security/two-factor opendata

    Reports whether two-factor authentication is enabled on the signed-in account.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • enabled
    GET /v1/account/security/two-factor HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "enabled": true
    }
    • Reconstructed from the app's security settings screen.
  • List trusted devices

    GET /v1/account/trusted-devices osint

    Pages devices the account has marked trusted for skip-2FA and biometric unlock flows.

    Auth: Authorization: Bearer <token> from POST /v1/session/token. Optional continuation token query.

    • trustedDevices
    • teamviewerId
    • trustOrigin
    • displayName
    • validOnce
    • isCurrentDevice
    • continuationToken
    GET /v1/account/trusted-devices HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "trustedDevices": [
        {
          "teamviewerId": 123456789,
          "trustOrigin": "Password",
          "displayName": "Alex's Pixel 8",
          "validOnce": false,
          "isCurrentDevice": true
        }
      ],
      "continuationToken": null
    }
    • Reconstructed from the trusted-devices list in account security settings.
  • Read remote-session metrics

    GET /v1/account/session-stats opendata

    Returns how many remote sessions the account has run, used on the account insights strip.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • remoteSessionsCount
    GET /v1/account/session-stats HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "remoteSessionsCount": 42
    }
    • Reconstructed from the account screen's usage insights strip.
  • Read SSO authentication host

    GET /v1/account/sso opendata

    Returns the company's single-sign-on host URL used when the account signs in through an identity provider.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • hostUrl
    GET /v1/account/sso HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "hostUrl": "https://login.example.com/acme"
    }
    • Reconstructed from the enterprise sign-in flow.
  • List personal contacts

    GET /v1/contacts osint

    Pages the Computers & Contacts partner list with online status, email and group assignment.

    Auth: Authorization: Bearer <token> from POST /v1/session/token. Optional pagination token query.

    • items
    • personalContactId
    • accountId
    • name
    • status
    • ownership
    • pictureUrl
    • groupId
    • groupName
    • email
    • description
    • nextPaginationToken
    GET /v1/contacts HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "items": [
        {
          "personalContactId": 90011,
          "accountId": 55667788,
          "name": "Jordan Lee",
          "status": "Online",
          "ownership": "Own",
          "pictureUrl": "https://cdn.example.com/avatar/90011.png",
          "groupId": 12,
          "groupName": "Helpdesk",
          "email": "[email protected]",
          "description": "Night shift"
        }
      ],
      "nextPaginationToken": "eyJwYWdlIjoyfQ"
    }
    • Reconstructed from the Computers & Contacts tab.
    • Pagination token matches the list's infinite-scroll behavior.
  • Get a personal contact

    GET /v1/contacts/{contactId} osint

    Loads the detail record for one Computers & Contacts partner, including email, note and action/view settings.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • personalContactId
    • accountId
    • name
    • status
    • ownership
    • pictureUrl
    • groupId
    • groupName
    • email
    • description
    • note
    • actionSettings
    • viewSettings
    GET /v1/contacts/90011 HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "personalContactId": 90011,
      "accountId": 55667788,
      "name": "Jordan Lee",
      "status": "Online",
      "ownership": "Own",
      "pictureUrl": "https://cdn.example.com/avatar/90011.png",
      "groupId": 12,
      "groupName": "Helpdesk",
      "email": "[email protected]",
      "description": "Night shift",
      "note": "On-call printer queue"
    }
    • Reconstructed from a contact's detail pane.
  • List computer groups

    GET /v1/device-groups opendata

    Pages the Computers & Contacts groups with share rights and owner, used as the tree on the Devices tab.

    Auth: Authorization: Bearer <token> from POST /v1/session/token. Optional pagination token and page-size query.

    • items
    • groupId
    • name
    • shareStatus
    • shareRight
    • owner
    • accountId
    • nextPaginationToken
    GET /v1/device-groups HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "items": [
        {
          "groupId": 12,
          "name": "Helpdesk",
          "shareStatus": "Shared",
          "shareRight": "FullAccess",
          "owner": {
            "accountId": 12345678,
            "name": "Alex Rivera"
          }
        }
      ],
      "nextPaginationToken": null
    }
    • Reconstructed from the Devices tab's group tree.
  • List computers in a group

    GET /v1/device-groups/{groupId}/computers opendata

    Returns the computers in one group, including the numeric device ID, online state and Wake-on-LAN flags.

    Auth: Authorization: Bearer <token> from POST /v1/session/token. Optional pagination token and page-size query.

    • items
    • deviceId
    • teamViewerId
    • displayName
    • onlineStatus
    • groupId
    • isManagedDevice
    • deviceType
    • notes
    • managedState
    • isWakeOnLanPossible
    • isMobileWakeActivated
    • hasPermanentPassword
    • isKnownDevice
    • nextPaginationToken
    GET /v1/device-groups/12/computers HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "items": [
        {
          "deviceId": 4410,
          "teamViewerId": 123456789,
          "displayName": "NYC-FS01",
          "onlineStatus": "Online",
          "groupId": 12,
          "isManagedDevice": true,
          "deviceType": "Desktop",
          "notes": "File server",
          "managedState": "Managed",
          "isWakeOnLanPossible": true,
          "isMobileWakeActivated": false,
          "hasPermanentPassword": true,
          "isKnownDevice": true
        }
      ],
      "nextPaginationToken": null
    }
    • Reconstructed from a group's device list.
  • Get a managed device

    GET /v2/devices/{deviceId} opendata

    Loads managed-device detail (OS, client version, last seen, managers) for a Computers & Contacts entry.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • managementId
    • displayName
    • teamViewerId
    • onlineStatus
    • deviceType
    • operatingSystemType
    • tvVersion
    • lastSeenTimestamp
    • groupIds
    • hasPassword
    • moduleType
    • managers
    GET /v2/devices/3fa85f64-5717-4562-b3fc-2c963f66afa6 HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "managementId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "displayName": "NYC-FS01",
      "teamViewerId": 123456789,
      "onlineStatus": "Online",
      "deviceType": "Desktop",
      "operatingSystemType": "Windows",
      "tvVersion": "15.81.247",
      "lastSeenTimestamp": "2026-09-28T18:04:11Z",
      "groupIds": ["7c9e6679-7425-40de-944b-e07fc1f90ae7"],
      "hasPassword": true,
      "moduleType": "Host"
    }
    • Reconstructed from a managed device's detail page.
  • List recent connections

    GET /v1/connections/recent opendata

    Returns the Recents strip: last remote-control partners with connectId, lastConnectionDate and online state.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • displayName
    • itemType
    • canBeAddedToPartnerList
    • connectId
    • isMyself
    • lastConnectionDate
    • onlineState
    • pictureUrl
    • buddyId
    • ownership
    GET /v1/connections/recent HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    [
      {
        "displayName": "NYC-FS01",
        "itemType": "Device",
        "canBeAddedToPartnerList": true,
        "connectId": 123456789,
        "isMyself": false,
        "lastConnectionDate": "2026-09-28T17:51:02Z",
        "onlineState": "Online",
        "pictureUrl": null,
        "buddyId": 4410,
        "ownership": "Own"
      }
    ]
    • Reconstructed from the Recents strip on the Connect screen.
  • Connect by TeamViewer ID

    POST /v1/remote-sessions/connect opendata

    Starts a remote-control session to a numeric partner ID from the Connect screen.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • teamviewerId
    • connectionMode
    • promptForConfirmation
    • thirdPartyFeature
    POST /v1/remote-sessions/connect HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Content-Type: application/json
    
    {
      "teamviewerId": 123456789,
      "connectionMode": "RemoteControl",
      "promptForConfirmation": true,
      "thirdPartyFeature": null
    }
    {
      "ok": true
    }
    • Reconstructed from the Connect screen's partner-ID form.
  • Create a support session

    POST /v1/support-cases osint

    Creates a one-time support case with a session code, recipient email and join link for the Session list.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • validityInMinutes
    • name
    • email
    • assignedAccountId
    • groupId
    • supportSessionType
    • sessioncode
    • createdAt
    • validUntil
    • joinSessionUrlForRecipient
    • recipientStatus
    • state
    • password
    • duration
    • customerClientId
    • supporterClientId
    POST /v1/support-cases HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Content-Type: application/json
    
    {
      "validityInMinutes": 60,
      "name": "Printer outage",
      "email": "[email protected]",
      "assignedAccountId": 12345678,
      "groupId": 12,
      "supportSessionType": "RemoteControl"
    }
    {
      "sessioncode": 881122334,
      "createdAt": "2026-09-29T07:10:00Z",
      "validUntil": "2026-09-29T08:10:00Z",
      "joinSessionUrlForRecipient": "https://join.example.com/s/881122334",
      "recipientStatus": "Pending",
      "assignedAccountId": 12345678,
      "groupId": 12,
      "name": "Printer outage",
      "email": "[email protected]",
      "supportSessionType": "RemoteControl",
      "state": "Open",
      "password": "7kQ2nP"
    }
    • Reconstructed from the create-support-session form.
  • List chat messages

    GET /v1/conversations/{conversationId}/messages opendata

    Pages messages in a conversation (author, text, writtenAt, readAt) used by the in-session chat panel.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • allMessagesLoaded
    • messages
    • authorId
    • authorDisplayName
    • messageId
    • conversationId
    • writtenAt
    • isEventMessage
    • text
    • clientMessageId
    • readAt
    GET /v1/conversations/3fa85f64-5717-4562-b3fc-2c963f66afa6/messages HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Accept: application/json
    {
      "allMessagesLoaded": false,
      "messages": [
        {
          "authorId": "12345678",
          "authorDisplayName": "Alex Rivera",
          "messageId": "9c8e6679-7425-40de-944b-e07fc1f90ae7",
          "conversationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "writtenAt": "2026-09-28T16:22:09Z",
          "isEventMessage": false,
          "text": "Can you share the error screenshot?",
          "clientMessageId": 41,
          "readAt": "2026-09-28T16:22:40Z"
        }
      ]
    }
    • Reconstructed from the in-session chat panel.
  • Wake a mobile device

    POST /v1/devices/wake-mobile opendata

    Sends a wake push to a mobile host identified by its device ID so a remote-control attempt can proceed.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • teamviewerId
    • result
    POST /v1/devices/wake-mobile HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Content-Type: application/json
    
    {
      "teamviewerId": 987654321
    }
    {
      "result": "WakeSent"
    }
    • Reconstructed from the wake action shown for offline mobile hosts.
  • Wake a computer on LAN

    POST /v1/devices/wake-on-lan opendata

    Sends a Wake-on-LAN request for a host whose Wake-on-LAN capability flag is set.

    Auth: Authorization: Bearer <token> from POST /v1/session/token.

    • teamviewerId
    • result
    POST /v1/devices/wake-on-lan HTTP/1.1
    Authorization: Bearer tv-login-7f3c9a21e8b04d11
    Content-Type: application/json
    
    {
      "teamviewerId": 123456789
    }
    {
      "result": "WakeSent"
    }
    • Reconstructed from the wake action shown for offline desktops.

Data categories

  • account profile
  • licenses
  • trusted devices
  • contacts
  • device groups
  • managed devices
  • recent connections
  • support sessions
  • chat messages

Where teams use this data

  • ITAM inventory from Computers & Contacts

    A CMDB job pages the group list, the computers inside each group and the managed-device detail (GET /v1/device-groups, GET /v1/device-groups/{groupId}/computers, GET /v2/devices/{deviceId}) to upsert teamViewerId, displayName, onlineStatus, operatingSystemType and tvVersion for every host in a group.

  • Helpdesk session hand-off

    A ticketing bot creates a support case at POST /v1/support-cases with the end-user email, then stores sessioncode, joinSessionUrlForRecipient and validUntil on the ticket so the assigned technician can join without sharing a password in chat.

  • License-seat reconciliation

    FinOps pulls the license entitlements (numberOfChannels plus MDM and backup seats) and the remoteSessionsCount usage counter to compare contracted channels against actual remote-control volume.

  • Partner-directory sync

    An identity feed reads the contacts list (name, email, status, groupName) and the trusted-devices list (teamviewerId, displayName, isCurrentDevice) to keep an internal address book of who can be reached unattended.

Frequently asked questions

How does TeamViewer Remote Control authenticate API calls?

A session call (POST /v1/session/token) returns token, tokenId and accountId, and the token-login call completes sign-in. Every later account, contacts, device and remote-control request sends that token as an Authorization: Bearer header.

Which calls list the computers behind Computers & Contacts?

GET /v1/device-groups pages the groups, and GET /v1/device-groups/{groupId}/computers returns each machine's teamViewerId, displayName, onlineStatus and Wake-on-LAN flags. Managed-device detail such as operatingSystemType and tvVersion comes from GET /v2/devices/{deviceId}.

Can I read support-session join links and recipient email?

Yes. Creating a case at POST /v1/support-cases returns sessioncode, email, joinSessionUrlForRecipient, validUntil and state, everything a ticketing tool needs to hand a session to a technician.

Where are the account email and license seat counts?

GET /v1/account returns the profile with displayName and emailAddress plus company membership, while GET /v1/account/licenses returns numberOfChannels alongside backup, MDM, monitoring and endpoint-protection seats.

Apps similar to TeamViewer Remote Control

  • AnyDesk — Remote desktop software that connects to computers and mobile devices using its proprietary DeskRT codec for low-latency sessions, and is free for personal use.
  • Splashtop — Remote access and support tool covering Windows, Mac, iOS, Android and Chrome OS, with file transfer, chat and remote print built into its sessions.
  • Chrome Remote Desktop — Google's free, browser-based remote access service, where devices are linked by signing in with the same Google account.
  • RustDesk — Open-source remote desktop software that can be self-hosted, giving organizations control over where session data is relayed.
  • Zoho Assist — Cloud-based remote support and unattended access tool from Zoho that integrates with ticketing systems and the wider Zoho suite.
  • Microsoft Remote Desktop — Microsoft's free Remote Desktop client for connecting to Windows PCs, limited to hosts running Windows Pro or Enterprise editions.
  • ConnectWise ScreenConnect — Remote support platform designed for IT support teams, offered with a self-hosted deployment option and API integrations.

Topics

  • teamviewer api
  • teamviewer remote control endpoints
  • computers and contacts api
  • teamviewer devices
  • teamviewer support session
  • teamviewer account licenses
  • teamviewer chat messages
  • teamviewer trusted devices

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote