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
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/tokenopendataMints 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-loginopendataCompletes 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/accountosintLoads 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/licensesopendataReturns 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-factoropendataReports 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-devicesosintPages 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-statsopendataReturns 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/ssoopendataReturns 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/contactsosintPages 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
- 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}osintLoads 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
- 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-groupsopendataPages 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}/computersopendataReturns 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}opendataLoads 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/recentopendataReturns 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/connectopendataStarts 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-casesosintCreates 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
- 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}/messagesopendataPages 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-mobileopendataSends 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-lanopendataSends 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