{"id":13728,"date":"2024-08-06T11:55:36","date_gmt":"2024-08-06T08:55:36","guid":{"rendered":"https:\/\/trueconf.com\/blog\/?p=13728"},"modified":"2026-03-12T11:35:04","modified_gmt":"2026-03-12T08:35:04","slug":"how-to-get-started-with-trueconf-api","status":"publish","type":"post","link":"https:\/\/trueconf.com/blog\/knowledge-base\/how-to-get-started-with-trueconf-api","title":{"rendered":"How to get started with TrueConf API"},"content":{"rendered":"<p>With TrueConf, you can use video conferencing to facilitate your <a href=\"https:\/\/trueconf.com\/business.html\" target=\"_blank\" rel=\"noopener noreferrer\">business processes<\/a>: from <a href=\"https:\/\/trueconf.com\/what-is-video-conferencing.html\" target=\"_blank\" rel=\"noopener noreferrer\">video communication<\/a> with your <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/embedding-trueconf-video-conferencing-into-your-website.html\" target=\"_blank\" rel=\"noopener noreferrer\">website visitors<\/a> to video contact center services. This article explains how to implement different video conferencing scenarios using TrueConf APIs.<\/p>\n<p><!--more--><\/p>\n<h2>Getting Started<\/h2>\n<p><strong>TrueConf Server API<\/strong> is an application programming interface designed for interaction of your applications with <a href=\"https:\/\/trueconf.com\/products\/server\/video-conferencing-server.html\" target=\"_blank\" rel=\"noopener noreferrer\">TrueConf Server<\/a>. It implements <a href=\"https:\/\/restfulapi.net\/\" target=\"_blank\" rel=\"noopener\">RESTful API<\/a> architecture and is based on GET, POST, PUT and DELETE HTTP requests which are returned in JSON format by the server. To see the full list of TrueConf Server API features, please <a href=\"https:\/\/developers.trueconf.com\/api\/server\/\" target=\"_blank\" rel=\"noopener noreferrer\">read our documentation<\/a>.<\/p>\n<p><a href=\"https:\/\/trueconf.com\/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en.png\" data-rel=\"lightbox-gallery-Dmixfbtc\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter size-medium wp-image-17040\" src=\"https:\/\/trueconf.com\/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en-690x442.png\" alt=\"\" width=\"690\" height=\"442\" loading=\"lazy\" title=\"\" srcset=\"https:\/\/trueconf.com/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en-690x442.png 690w, https:\/\/trueconf.com/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en-1024x656.png 1024w, https:\/\/trueconf.com/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en-768x492.png 768w, https:\/\/trueconf.com/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en-1536x984.png 1536w, https:\/\/trueconf.com/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en-284x182.png 284w, https:\/\/trueconf.com/blog\/wp-content\/uploads\/2019\/12\/tcs_api_scheme_en.png 1686w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/a><\/p>\n<div class=\"marked_note marked_note--warning\">Please note that you need to <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/adjust-https-trueconf-server.html\" target=\"_blank\" rel=\"noopener noreferrer\">configure HTTPS<\/a> in the control panel of TrueConf Server.<\/div>\n<p>We recommend using OAuth 2.0 protocol for APIs. You can find more information about it in <a href=\"https:\/\/docs.trueconf.com\/server\/en\/admin\/web-config#oauth2\" target=\"_blank\" rel=\"noopener\">our server documentation<\/a>.<\/p>\n<p>The application interacts with API in the following way:<\/p>\n<ol>\n<li>The application requests a temporary access token.<\/li>\n<li>The application receives the access token.<\/li>\n<li>The access token is used to perform requests from the application to the server.<\/li>\n<\/ol>\n<div class=\"marked_note marked_note--danger\">\n<p style=\"text-align: justify;\">You do not have to create an OAuth application, but rather use the <strong>Secret key<\/strong> from the <strong><a href=\"https:\/\/docs.trueconf.com\/server\/en\/admin\/web-config#web-security\" target=\"_blank\" rel=\"noopener\">Web \u2192 Web security<\/a><\/strong> section of the TrueConf Server control panel, but we do not recommend this method.<\/p>\n<\/div>\n<p style=\"text-align: justify;\">This <strong>Secret key<\/strong> is an unlimited time access token. This means that it is valid until you manually recreate it with the <strong>Generate a new secret key<\/strong> button. The token provides full access to all API functions without pre-authorization using the OAuth protocol. Therefore, we recommend using the secret key only for API testing or for use only by a server administrator with rights that you can&#8217;t specify when creating an OAuth application (e.g. reading logs).<\/p>\n<h2>Step 1. Creating OAuth Application<\/h2>\n<p>Open TrueConf Server control panel and proceed to <a href=\"https:\/\/docs.trueconf.com\/server\/en\/admin\/web-config#oauth2\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>API \u2192 OAuth2<\/strong><\/a>. Create a new OAuth 2.0 application and check the list of necessary permissions.<\/p>\n<p>To perform the following examples, you will require the following permissions:<\/p>\n<ul>\n<li>conferences<\/li>\n<li>conferences:read<\/li>\n<li>conferences:write<\/li>\n<li>conferences.participants<\/li>\n<li>conferences.participants:read<\/li>\n<li>conferences.participants:write<\/li>\n<\/ul>\n<p>Application ID and Secret key will be automatically generated when the application is being created.<\/p>\n<p>To test the API features, you can use <a href=\"https:\/\/en.wikipedia.org\/wiki\/CURL\" target=\"_blank\" rel=\"noopener noreferrer\">cURL<\/a> utility (built-in Windows 10 version 1803 or higher) or <a href=\"https:\/\/www.getpostman.com\/downloads\/\" target=\"_blank\" rel=\"noopener\">Postman<\/a> software. We recommend using Postman as one of the most convenient options.<\/p>\n<h2>Step 2. Creating an Access Token<\/h2>\n<ol>\n<li>In Postman, enter the request in a new workplace:<\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">https:\/\/server.company.name\/oauth2\/v1\/token<\/pre>\n<p>where <code>server.company.name<\/code> is an IP address or an external IP address that is set in <a href=\"https:\/\/docs.trueconf.com\/server\/en\/admin\/web-config#web-settings\" target=\"_blank\" rel=\"noopener\"><strong>Web \u2192 Settings<\/strong><\/a> section of TrueConf Server control panel.<\/p>\n<ol>\n<li value=\"2\">Choose the HTTP method <strong>POST<\/strong> on the left side of an entry field.<\/li>\n<li value=\"3\">Open the <strong>Body<\/strong> tab and set the following parameters:<\/li>\n<\/ol>\n<ul>\n<li>type <strong>x-www-form-urlencoded <\/strong><\/li>\n<li>the following <strong>KEY &#8211; VALUE<\/strong> pairs:<\/li>\n<\/ul>\n<div class=\"scrolling-table__container\">\n<table class=\"scrolling-table\">\n<tbody>\n<tr>\n<th><strong>KEY<\/strong><\/th>\n<th><strong>VALUE<\/strong><\/th>\n<\/tr>\n<tr>\n<td>grant_type<\/td>\n<td>client_credentials<\/td>\n<\/tr>\n<tr>\n<td>client_id<\/td>\n<td>96f2973300c9b7740dd315b3d7890c60fb787fd5<\/td>\n<\/tr>\n<tr>\n<td>client_secret<\/td>\n<td>e19769eb12f6cad7847260dfaa0e94f4a9537f2e<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>where <code>client_id<\/code> and <code>client_secret<\/code>\u00a0are Application ID and Secret key respectively (they were obtained when the application was created).<\/p>\n<ol>\n<li value=\"4\">Press <strong>Send<\/strong> to proceed.<\/li>\n<li>If processed successfully, the server returns JSON object with the access token details:<\/li>\n<\/ol>\n<pre class=\"lang:default decode:true \">{\r\n  \"access_token\": \"e696b81ca99f267fe92ced3c6baaabcd3b964db6\",\r\n  \"expires_in\": 3600,\r\n  \"token_type\": \"Bearer\",\r\n  \"scope\": \"conferences conferences:read conferences:write conferences.participants conferences.participants:read conferences.participants:write\"\r\n}\r\n<\/pre>\n<p>Description:<\/p>\n<ul>\n<li><code>access_token<\/code> \u2013 the access token itself.<\/li>\n<li><code>expires_in<\/code> \u2013 expiration period in seconds from the moment the conference was created (1 hour).<\/li>\n<li><code>token_type<\/code> \u2013 a type of access token, always equals \u201cBearer\u201d.<\/li>\n<li><code>scope<\/code> \u2013 the list of permissions granted to this application.<\/li>\n<\/ul>\n<div class=\"marked_note marked_note--warning\">When the access token expires, it becomes invalid and you will need to request a new one.<\/div>\n<div>\n<h2>Step 3. Creating a Multipoint Conference<\/h2>\n<p>Please use the <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-CreateConference\" target=\"_blank\" rel=\"noopener noreferrer\">Create Conference<\/a> method to create a new video conference.<\/p>\n<ol>\n<li>List the properties of the created conference in the JSON object <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Objects-Conference\" target=\"_blank\" rel=\"noopener\">ObjectConference<\/a> by specifying these parameters:<\/li>\n<\/ol>\n<ul>\n<li><code>\"topic\":\"My Conference\"<\/code> \u2013 conference name.<\/li>\n<li><code>\"type\":0<\/code> \u2013 <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/the-ultimate-guide-to-conference-modes.html\" target=\"_blank\" rel=\"noopener noreferrer\">conferencing mode<\/a>; in this case \u201call on screen\u201d.\n<div class=\"marked_note\">Keep in mind that with the help of the <code>type<\/code> parameter we can create only one general type of a role-based conference (a meeting with appointed speakers and attendees) on the server side by specifying the value <code>\u201ctype\u201d: 3<\/code>. To select the subtype of this conference (a moderated role-based conference or smart meeting), one has to set the separate parameter <code>vad_selector<\/code>: if its value equals <code>1<\/code>, a smart meeting will be created, if the value is set to <code>0<\/code>, a moderated role-based conference will be created. So, to create a smart meeting, one has to specify two parameters:  <code>\u201dtype\u201d: 3<\/code> and <code>\u201dvad_selector\u201d: 1<\/code>.<\/div>\n<\/li>\n<li><code>\"auto_invite\":1<\/code> \u2013 automatic invitation of <a href=\"https:\/\/trueconf.com\/blog\/wiki\/conference-participant\" target=\"_blank\" rel=\"noopener noreferrer\">participants<\/a> to a virtual room when any person (not only from the list of invited users) connects to this room, as a result, participants will be automatically invited when the room is launched.<\/li>\n<li><code>\"max_participants\":10<\/code> \u2013 the maximum number of <a href=\"https:\/\/trueconf.com\/docs\/client\/en\/installation\/#conference-user-roles\" target=\"_blank\" rel=\"noopener\">participants<\/a>.<\/li>\n<li><code>\"invitations\"<\/code> \u00a0\u2013 the list of participants in format <code>{\"id\":\"user_id\"}<\/code>, where <code>user_id<\/code> is a <a href=\"https:\/\/trueconf.com\/blog\/wiki\/trueconf-id\" target=\"_blank\" rel=\"noopener noreferrer\">username<\/a> of the participant.<\/li>\n<li><code>\"schedule\":{\"type\":-1}<\/code>\u2013\u00a0 conference schedule; in this case <a href=\"https:\/\/trueconf.com\/blog\/wiki\/virtual-room\" target=\"_blank\" rel=\"noopener noreferrer\">room<\/a> (without schedule).<\/li>\n<li><code>\"owner\":\"helen\"<\/code> \u2013\u00a0 username\u00a0 of the conference <a href=\"https:\/\/trueconf.com\/blog\/wiki\/owner\" target=\"_blank\" rel=\"noopener noreferrer\">owner<\/a>.<\/li>\n<\/ul>\n<ol>\n<li value=\"2\">JSON object of the conference will look in the following way:<\/li>\n<\/ol>\n<pre class=\"lang:js decode:true\">{\r\n  \"topic\":\"My Conference\",\r\n  \"type\":0,\r\n  \"auto_invite\":1,\r\n  \"max_participants\":10,\r\n  \"invitations\":[\r\n    {\r\n      \"id\":\"helen\"\r\n    },\r\n    {\r\n      \"id\":\"dean\"\r\n    }\r\n  ],\r\n  \"schedule\":{\r\n    \"type\":-1\r\n  },\r\n  \"owner\":\"helen\"\r\n}\r\n<\/pre>\n<ol>\n<li value=\"3\">Enter the request:<\/li>\n<\/ol>\n<pre class=\"lang:js decode:true\">https:\/\/server.company.name\/api\/v3.8\/conferences?access_token=e696b81ca99f267fe92ced3c6baaabcd3b964db6\r\n<\/pre>\n<ol>\n<li value=\"4\">Choose the HTTP method <strong>POST<\/strong>.<\/li>\n<li>In <strong>Body<\/strong> tab<b>:<\/b><\/li>\n<\/ol>\n<ul>\n<li>set the <strong>raw<\/strong> type<\/li>\n<li>add the JSON request in entry field.<\/li>\n<\/ul>\n<ol>\n<li value=\"6\">Send the request. If the request has been successfully processed, the server returns the JSON object containing the details of the created conference:<\/li>\n<\/ol>\n<pre class=\"lang:js decode:true\">{\r\n  \"conference\": {\r\n    \"id\": \"4219111751\",\r\n    \"type\": 0,\r\n    \"topic\": \"My Conference\",\r\n    \"owner\": \"helen@ruwu1.trueconf.name\",\r\n    \"description\": \"\",\r\n    \"max_podiums\": 10,\r\n    \"max_participants\": 10,\r\n    \"schedule\": {\r\n      \"type\": -1\r\n    },\r\n    \"invitations\": [\r\n      {\r\n        \"id\": \"dean\",\r\n        \"display_name\": null\r\n      },\r\n      {\r\n        \"id\": \"helen\",\r\n        \"display_name\": null\r\n      }\r\n    ],\r\n    \"allow_guests\": false,\r\n    \"auto_invite\": 1,\r\n    \"state\": \"stopped\",\r\n    \"url\": \"https:\/\/server.company.name\/c\/4219111751\",\r\n    \"webclient_url\": \"https:\/\/server.company.name\/webrtc\/4219111751\",\r\n    \"created_at\": 1573653531,\r\n    \"multicast_enable\": false,\r\n    \"multicast_address\": \"224.0.1.224:4000-6000\",\r\n    \"tags\": [],\r\n    \"recording\": 0,\r\n    \"stream_recording_state\": 0,\r\n    \"rights\": {\r\n      \"guest\": {\r\n        \"chat_send\": true,\r\n        \"chat_rcv\": true,\r\n        \"slide_show_send\": true,\r\n        \"slide_show_rcv\": true,\r\n        \"white_board_send\": true,\r\n        \"white_board_rcv\": true,\r\n        \"file_transfer_send\": true,\r\n        \"file_transfer_rcv\": true,\r\n        \"desktop_sharing\": true,\r\n        \"recording\": true,\r\n        \"audio_send\": true,\r\n        \"audio_rcv\": true,\r\n        \"video_send\": true,\r\n        \"video_rcv\": true\r\n      },\r\n      \"user\": {\r\n        \"chat_send\": true,\r\n        \"chat_rcv\": true,\r\n        \"slide_show_send\": true,\r\n        \"slide_show_rcv\": true,\r\n        \"white_board_send\": true,\r\n        \"white_board_rcv\": true,\r\n        \"file_transfer_send\": true,\r\n        \"file_transfer_rcv\": true,\r\n        \"desktop_sharing\": true,\r\n        \"recording\": true,\r\n        \"audio_send\": true,\r\n        \"audio_rcv\": true,\r\n        \"video_send\": true,\r\n        \"video_rcv\": true\r\n      }\r\n    },\r\n    \"broadcast_enabled\": false,\r\n    \"broadcast_id\": null,\r\n    \"broadcast\": null,\r\n    \"allow_only_planned_participants\": false\r\n  }\r\n}\r\n<\/pre>\n<p>The server creates a <a href=\"https:\/\/trueconf.com\/blog\/wiki\/conference-id\" target=\"_blank\" rel=\"noopener noreferrer\">conference ID<\/a> which is displayed in the <code>id<\/code>field.<\/p>\n<p>In case of an error, the server returns the JSON object with the error message.<\/p>\n<h2>Step 4. Getting the Conference List<\/h2>\n<p>You can get the list of conferences with the help of <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-GetConferenceList\" target=\"_blank\" rel=\"noopener noreferrer\">Conferences<\/a> method. Please use the HTTP method <strong>GET<\/strong> to perform the request:<\/p>\n<pre class=\"lang:default decode:true\">https:\/\/server.company.name\/api\/v3.8\/conferences?access_token=e696b81ca99f267fe92ced3c6baaabcd3b964db6\r\n<\/pre>\n<p style=\"text-align: justify;\">The JSON object returned to you by the server will contain the room you <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api.html#Step_3_Creating_a_Multipoint_Conference\" target=\"_blank\" rel=\"noopener\">have previously created<\/a>.<\/p>\n<h2>Step 5. Getting the Information About the Conference<\/h2>\n<p>To obtain the information about the conference, use the <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-GetConferenceList\" target=\"_blank\" rel=\"noopener noreferrer\">Conferences<\/a> method, the <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api.html#Step_3_Creating_a_Multipoint_Conference\" target=\"_blank\" rel=\"noopener\">conference ID<\/a> and the HTTP method <strong>GET<\/strong> for the request:<\/p>\n<pre class=\"lang:default decode:true\">https:\/\/server.company.name\/api\/v3.8\/conferences\/4219111751?access_token=e696b81ca99f267fe92ced3c6baaabcd3b964db6\r\n<\/pre>\n<p style=\"text-align: justify;\">The server returns the JSON object containing the required information.<\/p>\n<h2>Step 6. Launching the Conference<\/h2>\n<p>To start a video conference, use the <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences-GetConferenceList\" target=\"_blank\" rel=\"noopener noreferrer\">Conferences<\/a> method, the conference ID and the HTTP method <strong>POST<\/strong> for the request:<\/p>\n<pre class=\"lang:default decode:true\">https:\/\/server.company.name\/api\/v3.8\/conferences\/4219111751\/run?access_token=e696b81ca99f267fe92ced3c6baaabcd3b964db6\r\n<\/pre>\n<p style=\"text-align: justify;\">If the request has been successfully processed, the server starts the conference immediately. The participants will immediately be invited to the conference, as you have previously set the automatic invitation during <a href=\"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api.html#Step_3_Creating_a_Multipoint_Conference\" target=\"_blank\" rel=\"noopener\">creating the conference<\/a>.<\/p>\n<\/div>\n<h2>Step 7. Inviting a New Participant to the Conference<\/h2>\n<p>Once the conference is started, you can invite new participants. To send an invitation, use the <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Conferences_Participants-InviteParticipant\" target=\"_blank\" rel=\"noopener noreferrer\">Conferences_Participants<\/a> method and HTTPS method <strong>POST<\/strong><b>:<\/b><\/p>\n<pre class=\"lang:default decode:true\">https:\/\/server.company.name\/api\/v3.8\/conferences\/4219111751\/participants?access_token=e696b81ca99f267fe92ced3c6baaabcd3b964db6\r\n<\/pre>\n<p style=\"text-align: justify;\">Enter the JSON <code>{\"participant_id\":\"user_id\"}<\/code>, \u0433\u0434\u0435 <code>user_id<\/code> is a username, e.g. <code>{\"participant_id\":\"kevin\"}<\/code>in <strong>Body<\/strong> tab in Postman.<\/p>\n<p>If processed successfully, the server returns <a href=\"https:\/\/developers.trueconf.com\/api\/server\/#api-Objects-Participant\" target=\"_blank\" rel=\"noopener\">ObjectParticipant<\/a> object of the invited participant.<\/p>\n<p style=\"text-align: justify;\">\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"HowTo\",\n  \"name\": \"How to get started with TrueConf API\",\n  \"description\": \"Step-by-step guide to start working with TrueConf Server API: configure HTTPS, create an OAuth 2.0 application, request an access token, create a conference, and add participants.\",\n  \"url\": \"https:\/\/trueconf.com\/blog\/knowledge-base\/how-to-get-started-with-trueconf-api\",\n  \"inLanguage\": \"en\",\n  \"estimatedCost\": {\n    \"@type\": \"MonetaryAmount\",\n    \"currency\": \"USD\",\n    \"value\": \"0\"\n  },\n  \"supply\": [\n    {\n      \"@type\": \"HowToSupply\",\n      \"name\": \"TrueConf Server\"\n    },\n    {\n      \"@type\": \"HowToSupply\",\n      \"name\": \"OAuth 2.0 application credentials\"\n    },\n    {\n      \"@type\": \"HowToSupply\",\n      \"name\": \"User accounts for conference participants\"\n    }\n  ],\n  \"tool\": [\n    {\n      \"@type\": \"HowToTool\",\n      \"name\": \"TrueConf Server control panel\"\n    },\n    {\n      \"@type\": \"HowToTool\",\n      \"name\": \"Postman\"\n    },\n    {\n      \"@type\": \"HowToTool\",\n      \"name\": \"cURL\"\n    }\n  ],\n  \"step\": [\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 1,\n      \"name\": \"Configure HTTPS on TrueConf Server\",\n      \"text\": \"Before using the API, configure HTTPS in the TrueConf Server control panel.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 2,\n      \"name\": \"Create an OAuth 2.0 application\",\n      \"text\": \"Open the TrueConf Server control panel and go to API \u2192 OAuth2. Create a new OAuth 2.0 application and enable the permissions required for conference management.\",\n      \"itemListElement\": [\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Required permissions for the example include conferences, conferences:read, conferences:write, conferences.participants, conferences.participants:read, and conferences.participants:write.\"\n        },\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Save the generated Application ID and Secret key.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 3,\n      \"name\": \"Prepare a token request\",\n      \"text\": \"In Postman or another API client, create a POST request to the token endpoint of your TrueConf Server.\",\n      \"itemListElement\": [\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Use the endpoint: https:\/\/server.company.name\/oauth2\/v1\/token\"\n        },\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Replace server.company.name with the server IP address or external IP configured in Web \u2192 Settings.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 4,\n      \"name\": \"Request an access token\",\n      \"text\": \"Send the request as x-www-form-urlencoded with OAuth client credentials.\",\n      \"itemListElement\": [\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Set grant_type=client_credentials\"\n        },\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Set client_id to the generated Application ID\"\n        },\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Set client_secret to the generated Secret key\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 5,\n      \"name\": \"Save the Bearer token\",\n      \"text\": \"After a successful request, the server returns a JSON object with access_token, expires_in, token_type, and scope. Use the Bearer access token in subsequent API requests.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 6,\n      \"name\": \"Create a conference payload\",\n      \"text\": \"Prepare a JSON object describing the conference settings before calling the Create Conference API method.\",\n      \"itemListElement\": [\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Set topic to the conference name, for example: My Conference\"\n        },\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Set type to define the conference mode\"\n        },\n        {\n          \"@type\": \"HowToDirection\",\n          \"text\": \"Set auto_invite, max_participants, invitations, schedule, and owner as needed\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 7,\n      \"name\": \"Create a multipoint conference\",\n      \"text\": \"Use the Create Conference API method and send the prepared JSON object together with the access token.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 8,\n      \"name\": \"Specify participants\",\n      \"text\": \"Add invited users in the invitations array using the format {\\\"id\\\":\\\"user_id\\\"}, where user_id is the TrueConf username of each participant.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 9,\n      \"name\": \"Use special parameters for role-based conferences if needed\",\n      \"text\": \"To create a role-based conference, set type to 3. To create a smart meeting, additionally set vad_selector to 1.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 10,\n      \"name\": \"Repeat token generation when the token expires\",\n      \"text\": \"Access tokens are temporary. When the token expires, request a new one and continue working with the API.\"\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With TrueConf, you can use video conferencing to facilitate your business processes: from video communication with your website visitors to video contact center services. This article explains how to implement different video conferencing scenarios using TrueConf APIs.<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[260],"tags":[246],"class_list":["post-13728","post","type-post","status-publish","format-standard","hentry","category-knowledge-base","tag-api-and-sdk","wpautop"],"_links":{"self":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/13728","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/comments?post=13728"}],"version-history":[{"count":18,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/13728\/revisions"}],"predecessor-version":[{"id":43772,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/posts\/13728\/revisions\/43772"}],"wp:attachment":[{"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/media?parent=13728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/categories?post=13728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trueconf.com/blog\/wp-json\/wp\/v2\/tags?post=13728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}