Build a TeamViewer integration - TeamViewer Support
<main>
<article class="userContent">
<p><br></p><h2 data-id="general">General</h2><div class="blockquote"><div class="blockquote-content"><p class="blockquote-line"><em>This article applies to developers who want to build an integration with TeamViewer.</em></p></div></div><p>Developers can create their own integration for attended access with connection reports to the TeamViewer platform using public TeamViewer APIs.</p><p>It is strongly recommended to read the <a href="https://dl.teamviewer.com/integrate/TeamViewer_API_Documentation.pdf" rel="nofollow noreferrer ugc">API documentation</a> for a detailed description of the functionality used below and for further functionality (e.g. unattended access), which can be included via public APIs.</p><p>The API calls use a bearer token for authorization to enable communication with the TeamViewer backend. This token can be either obtained as a script token via the TeamViewer Management Console or (recommended and described here) via the OAuth procedure described below. </p><p>Once implemented, OAuth can be used to obtain a bearer token from TeamViewer for each platform user. Enable them to connect from the platform where TeamViewer is integrated using their TeamViewer account, create sessions, and get connection reports. </p><p>This article will cover the following calls: </p><ul><li>Authentication via OAuth</li><li>Session creation</li><li>Connection reporting</li></ul><p><strong>📌Note: </strong>Please get in touch with a TeamViewer representative for deeper technical integration and commercial collaboration, including using TeamViewer trademarks. </p><p><br></p><h3></h3><h2 data-id="prerequisites">Prerequisites</h2><p>To authenticate with the TeamViewer backend, a TeamViewer account is needed, which can be created for free at: <a href="https://login.teamviewer.com" rel="nofollow noreferrer ugc">https://login.teamviewer.com</a> </p><p>💡<strong>Hint:</strong> We recommend using a generic account for your company (e.g. admin@yourcompany.com).</p><p>📌<strong>Note:</strong> Once the integration is in place, all users who want to use the integration need a TeamViewer account, and TeamViewer license requirements apply.</p><h3 data-id="create-a-client-app-for-oauth">Create a client app for OAuth</h3><p>The OAuth procedure requires that the backend provides a client app with the client id and client secret.</p><p>1) Click on your user icon and select <strong>Edit profile</strong></p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/6CDP9DFBR48L/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/6CDP9DFBR48L/image.png" alt="image.png" height="299" width="988" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p>2) Select <strong>Apps</strong></p><p>3) Click <strong>Create App</strong> </p><p>4) Give the app a meaningful name</p><p>5) Give the app a meaningful description</p><p>6) Set the redirect URI of your application</p><p>7) Set the app permissions (Session, account, and connection reports are required)</p><p>8) Click <strong>Create</strong></p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/DI41302BIWK9/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/DI41302BIWK9/image.png" alt="image.png" height="564" width="975" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p>You can create a script token to test the API calls without OAuth.</p><p><br></p><h3 data-id="-1"></h3><h2 data-id="oauth">OAuth </h2><p>To enable the users to obtain a bearer token for regular users, the app needs to provide the following functionality: </p><p>1) Call to get the TeamViewer OAuth login mask (Must be called in a browser)</p><p>Here is one example:</p><p><a href="https://login.teamviewer.com/oauth2/authorize?response_type=code&client_id=123456-pDPThfDpeAnIXmuEDSSJ&redirect_uri=http://www.google.com&display=popup" rel="nofollow noreferrer ugc">https://login.teamviewer.com/oauth2/authorize?response_type=code&client_id=123456-pDPThfDpeAnIXmuEDSSJ&redirect_uri=http://www.google.com&display=popup</a></p><p>💡<strong>Hint:</strong> The ClientID, Client Secret, and redirect_uri are the same ones created above.</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/WK1BLT1ZMEJS/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/WK1BLT1ZMEJS/image.png" alt="image.png" height="367" width="1446" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p>2) This call returns a code that needs to be included in the call below together with the client secret from your client apps</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/R3P6VTK57D0O/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/R3P6VTK57D0O/image.png" alt="image.png" height="408" width="938" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p><br></p><h3 data-id="-2"></h3><h2 data-id="sessions-for-attended-access">Sessions for attended access</h2><p>A session a supporter can share with an end customer is created with the following call.</p><p>This call will provide, among other information 3 links: </p><ol><li>Supporter link</li><li>Supporter link for WebClient</li><li>End customer link</li></ol><p>The supporter links (1 & 2) shall be shown to the supporter to activate the TeamViewer connection from their side. The WebClient link can be used if the support session shall be launched from the browser if no installation on the Supporter side is wanted.</p><p>The end customer link will be shown on the end customer's side. Once the end customer clicks on it, it will connect to the session via the installed TeamViewer client or the TeamViewer Quicksupport module.</p><p><br></p><h3 data-id="the-api-call">The API call</h3><p>POST: <a href="https://webapi.teamviewer.com/api/v1/sessions" rel="nofollow noreferrer ugc">https://webapi.teamviewer.com/api/v1/sessions</a></p><p>Body:</p><pre class="code codeBlock" spellcheck="false" tabindex="0">{
"groupname":"TV_test",
"description": "Issue with configuration of corporate email in domain \\example.com",
"end_customer": {
"name": "John Doe",
"email": "john.doe@example.com"
},
}
</pre><p>For further details, please check the <a href="https://dl.teamviewer.com/integrate/TeamViewer_API_Documentation.pdf" rel="nofollow noreferrer ugc">API documentation</a>.</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/TZXAK5QTLSI6/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/TZXAK5QTLSI6/image.png" alt="image.png" height="407" width="975" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p>Use the bearer token obtained via OAuth to execute the API call.</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/CWRLIV8NS8RV/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/CWRLIV8NS8RV/image.png" alt="image.png" height="223" width="975" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p><br></p><h3 data-id="-3"></h3><h2 data-id="connection-reporting">Connection Reporting</h2><p>For auditing purposes and to provide a history for documentation e.g. in a ticketing system, TeamViewer provides connection reports which can be obtained with the following call:</p><p><a href="https://webapi.teamviewer.com/api/v1/reports/connections" rel="nofollow noreferrer ugc">https://webapi.teamviewer.com/api/v1/reports/connections</a> </p><p>The call returns all connections, including their session IDs.</p><p><br></p><h3 data-id="-4"></h3><h2 data-id="api-documentation">API Documentation</h2><p>Please find below further documentation about API.</p><ul><li>PDF</li></ul><p><a href="https://dl.teamviewer.com/integrate/TeamViewer_API_Documentation.pdf" rel="nofollow noreferrer ugc">https://dl.teamviewer.com/integrate/TeamViewer_API_Documentation.pdf</a> </p><ul><li>Swagger documentation</li></ul><p><a href="https://webapi.teamviewer.com/api/v1/docs/index#/" rel="nofollow noreferrer ugc">https://webapi.teamviewer.com/api/v1/docs/index#/</a></p>
</article>
</main>