openapi: 3.2.0 info: title: GoTo Webinar 2.0 REST Recording Assets API description: We recommend you use the v2 of this API. version: 2.0.0 servers: - url: https://api.getgo.com/G2W/rest/v2 security: - OAuth2: [] tags: - name: Recording Assets description: Operations available for assets of a given organizer. paths: /recordingassets/search: post: tags: - Recording Assets operationId: searchAssets summary: Search for completed recording assets description: 'Allows search for a completed recording asset. ### Example Interaction with curl The default request is represented below, that excludes the `includes` query parameter. You will get the `mp4DownloadUrl` and `transcriptUrl` by default in the response if they exist. The `recordingShareUrl` and `webinarKey` fields will not be included. ``` curl --request PUT ''https://api.getgo.com/G2W/rest/v2/recordingassets/search?page={page}&size={size}'' \ --header ''Authorization: Bearer {ACCESS_TOKEN}'' \ --header ''Content-Type: application/json'' \ --data-raw ''{ "accountKey": "123456", "sortField": "CREATETIME", "sortOrder": "DESC" }'' ``` By adding the `includes` query parameter has shown below, you''ll get the `recordingShareUrl` and `webinarKey` fields in the response. ``` curl --request PUT ''https://api.getgo.com/G2W/rest/v2/recordingassets/search?page={page}&size={size}&includes=recordingShareUrl%2CwebinarKey'' \ --header ''Authorization: Bearer {ACCESS_TOKEN}'' \ --header ''Content-Type: application/json'' \ --data-raw ''{ "accountKey": "123456", "sortField": "CREATETIME", "sortOrder": "DESC" }'' ```' parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/size' - $ref: '#/components/parameters/includes' requestBody: content: application/json: schema: $ref: '#/components/schemas/AssetsSearchReq' description: The asset search parameters required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AssetsResponse' '400': description: Bad Request '403': description: Forbidden '404': description: Not Found x-codeSamples: - lang: Node + Axios source: "var axios = require(\"axios\").default;\n\nvar options = {\n method: 'POST',\n url: 'https://api.getgo.com/G2W/rest/v2/recordingassets/search',\n params: {\n page: 'SOME_INTEGER_VALUE',\n size: 'SOME_INTEGER_VALUE',\n includes: 'SOME_ARRAY_VALUE'\n },\n headers: {\n Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n },\n data: {\n accountKey: 'string',\n name: 'string',\n sortField: 'CREATETIME',\n sortOrder: 'DESC'\n }\n};\n\naxios.request(options).then(function (response) {\n console.log(response.data);\n}).catch(function (error) {\n console.error(error);\n});" - lang: Shell + Curl source: "curl --request POST \\\n --url 'https://api.getgo.com/G2W/rest/v2/recordingassets/search?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&includes=SOME_ARRAY_VALUE' \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data '{\"accountKey\":\"string\",\"name\":\"string\",\"sortField\":\"CREATETIME\",\"sortOrder\":\"DESC\"}'" - lang: Python + Python3 source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.getgo.com\")\n\npayload = \"{\\\"accountKey\\\":\\\"string\\\",\\\"name\\\":\\\"string\\\",\\\"sortField\\\":\\\"CREATETIME\\\",\\\"sortOrder\\\":\\\"DESC\\\"}\"\n\nheaders = {\n 'Authorization': \"Bearer REPLACE_BEARER_TOKEN\",\n 'content-type': \"application/json\"\n }\n\nconn.request(\"POST\", \"/G2W/rest/v2/recordingassets/search?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&includes=SOME_ARRAY_VALUE\", payload, headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Php + Http2 source: "append('{\"accountKey\":\"string\",\"name\":\"string\",\"sortField\":\"CREATETIME\",\"sortOrder\":\"DESC\"}');\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/recordingassets/search');\n$request->setRequestMethod('POST');\n$request->setBody($body);\n\n$request->setQuery(new http\\QueryString([\n 'page' => 'SOME_INTEGER_VALUE',\n 'size' => 'SOME_INTEGER_VALUE',\n 'includes' => 'SOME_ARRAY_VALUE'\n]));\n\n$request->setHeaders([\n 'Authorization' => 'Bearer REPLACE_BEARER_TOKEN',\n 'content-type' => 'application/json'\n]);\n\n$client->enqueue($request)->send();\n$response = $client->getResponse();\n\necho $response->getBody();" - lang: Ruby + Native source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://api.getgo.com/G2W/rest/v2/recordingassets/search?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&includes=SOME_ARRAY_VALUE") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Authorization"] = ''Bearer REPLACE_BEARER_TOKEN'' request["content-type"] = ''application/json'' request.body = "{\"accountKey\":\"string\",\"name\":\"string\",\"sortField\":\"CREATETIME\",\"sortOrder\":\"DESC\"}" response = http.request(request) puts response.read_body' /accounts/{accountKey}/recordingassets/search: post: tags: - Recording Assets operationId: searchAssetsForAdmin summary: Search for completed recording assets of an admin user description: 'Allows search for a completed recording asset for an admin user. The authorization token must represent an admin. ### Example Interaction with curl The default request is represented below, that excludes the `includes` query parameter. You will get the `mp4DownloadUrl` and `transcriptUrl` by default in the response if they exist. The `recordingShareUrl` and `webinarKey` fields will not be included. ``` curl --request POST ''https://api.getgo.com/G2W/rest/v2/accounts/{accountKey}/recordingassets/search?page={page}&size={size}'' \ --header ''Authorization: Bearer {ACCESS_TOKEN}'' \ --header ''Content-Type: application/json'' \ --data-raw ''{ "name": "Test" "organizerKey": "123456", "sortField": "CREATETIME", "sortOrder": "DESC", "fromTime":"2021-01-01T00:00:00Z", "toTime":"2022-02-02T06:36:02.352Z" }'' ``` By adding the `includes` query parameter has shown below, you''ll get the `recordingShareUrl` and `webinarKey` fields in the response. ``` curl --request POST ''https://api.getgo.com/G2W/rest/v2/accounts/{accountKey}/recordingassets/search?page={page}&size={size}&includes=recordingShareUrl%2CwebinarKey'' \ --header ''Authorization: Bearer {ACCESS_TOKEN}'' \ --header ''Content-Type: application/json'' \ --data-raw ''{ "name": "Test" "organizerKey": "123456", "sortField": "CREATETIME", "sortOrder": "DESC", "fromTime":"2021-01-01T00:00:00Z", "toTime":"2022-02-02T06:36:02.352Z" }'' ```' parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/size' - $ref: '#/components/parameters/includes' - $ref: '#/components/parameters/accountKey' requestBody: content: application/json: schema: $ref: '#/components/schemas/AssetsSearchRequestForAdmin' description: The asset search parameters required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AssetsResponse' '400': description: Bad Request '403': description: Forbidden or oauth scope is invalid '404': description: Not Found x-codeSamples: - lang: Node + Axios source: "var axios = require(\"axios\").default;\n\nvar options = {\n method: 'POST',\n url: 'https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/recordingassets/search',\n params: {\n page: 'SOME_INTEGER_VALUE',\n size: 'SOME_INTEGER_VALUE',\n includes: 'SOME_ARRAY_VALUE'\n },\n headers: {\n Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n },\n data: {\n organizerKey: 'string',\n name: 'string',\n sortField: 'CREATETIME',\n sortOrder: 'DESC',\n fromTime: 'string',\n toTime: 'string'\n }\n};\n\naxios.request(options).then(function (response) {\n console.log(response.data);\n}).catch(function (error) {\n console.error(error);\n});" - lang: Shell + Curl source: "curl --request POST \\\n --url 'https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/recordingassets/search?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&includes=SOME_ARRAY_VALUE' \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data '{\"organizerKey\":\"string\",\"name\":\"string\",\"sortField\":\"CREATETIME\",\"sortOrder\":\"DESC\",\"fromTime\":\"string\",\"toTime\":\"string\"}'" - lang: Python + Python3 source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.getgo.com\")\n\npayload = \"{\\\"organizerKey\\\":\\\"string\\\",\\\"name\\\":\\\"string\\\",\\\"sortField\\\":\\\"CREATETIME\\\",\\\"sortOrder\\\":\\\"DESC\\\",\\\"fromTime\\\":\\\"string\\\",\\\"toTime\\\":\\\"string\\\"}\"\n\nheaders = {\n 'Authorization': \"Bearer REPLACE_BEARER_TOKEN\",\n 'content-type': \"application/json\"\n }\n\nconn.request(\"POST\", \"/G2W/rest/v2/accounts/%7BaccountKey%7D/recordingassets/search?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&includes=SOME_ARRAY_VALUE\", payload, headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Php + Http2 source: "append('{\"organizerKey\":\"string\",\"name\":\"string\",\"sortField\":\"CREATETIME\",\"sortOrder\":\"DESC\",\"fromTime\":\"string\",\"toTime\":\"string\"}');\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/recordingassets/search');\n$request->setRequestMethod('POST');\n$request->setBody($body);\n\n$request->setQuery(new http\\QueryString([\n 'page' => 'SOME_INTEGER_VALUE',\n 'size' => 'SOME_INTEGER_VALUE',\n 'includes' => 'SOME_ARRAY_VALUE'\n]));\n\n$request->setHeaders([\n 'Authorization' => 'Bearer REPLACE_BEARER_TOKEN',\n 'content-type' => 'application/json'\n]);\n\n$client->enqueue($request)->send();\n$response = $client->getResponse();\n\necho $response->getBody();" - lang: Ruby + Native source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/recordingassets/search?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&includes=SOME_ARRAY_VALUE") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Authorization"] = ''Bearer REPLACE_BEARER_TOKEN'' request["content-type"] = ''application/json'' request.body = "{\"organizerKey\":\"string\",\"name\":\"string\",\"sortField\":\"CREATETIME\",\"sortOrder\":\"DESC\",\"fromTime\":\"string\",\"toTime\":\"string\"}" response = http.request(request) puts response.read_body' components: parameters: accountKey: name: accountKey in: path description: The key of the account required: true schema: type: integer format: int64 page: name: page in: query required: false description: The page number to be displayed. The first page is 0. schema: type: integer format: int64 includes: name: includes in: query required: false description: Add the response variables. schema: type: array collectionFormat: csv items: type: string enum: - recordingShareUrl - webinarKey size: name: size in: query required: false description: The size of the page. schema: type: integer format: int64 maximum: 200 schemas: AssetsSearchRequestForAdmin: description: Describes the details used to search a completed recordingasset. required: - organizerKey properties: organizerKey: type: string description: The key of the organizer name: type: string description: The name of the recordingasset sortField: type: string description: Sorts on the specified field. The default value is 'CREATETIME'. The possible values are 'CREATETIME' and 'NAME'. default: CREATETIME sortOrder: description: Specifies the sort order type. The default value is 'DESC'. The possible values are 'DESC', 'ASC'. type: string default: DESC fromTime: description: Specifies the time from which the recordings should be included. Date should be in ISO format. type: string toTime: description: Specifies the time till which the recordings should be included. Date should be in ISO format. type: string AssetsSearchReq: description: Describes the details used to search a completed recordingasset. required: - accountKey properties: accountKey: type: string description: The key of the account name: type: string description: The name of the recordingasset sortField: type: string description: Sorts on the specified field. The default value is 'CREATETIME'. The possible values are 'CREATETIME' and 'NAME'. default: CREATETIME sortOrder: description: Specifies the sort order type. The default value is 'DESC'. The possible values are 'DESC', 'ASC'. type: string default: DESC Asset: description: Describes a completed recordingasset. required: - name - recordingAssetKey - productName - createTime - creatorKey - accountKey - totalReferenceCount - mp4DownloadUrl properties: name: type: string description: The name of the asset recordingAssetKey: type: string description: The unique identifier for the recording asset productName: type: string description: The product with which the asset was originally created createTime: type: string format: date-time description: The create time of the asset creatorKey: type: string description: The key of the creator accountKey: type: string description: The key of the account totalReferenceCount: type: integer format: int32 description: The total number of references of the asset across products mp4DownloadUrl: type: string description: The url to download recording assets video transcriptDownloadUrl: type: string description: The url to download the transcript for the given recording video, available only if the transcript was generated recordingShareUrl: type: string description: The share link for recording webinarKey: type: string description: The webinarKey of parent webinar for which this online recordings was created, not available for uploaded recordings AssetsResponse: description: Describes a list of completed assets required: - _embedded - page properties: _embedded: $ref: '#/components/schemas/Assets' page: $ref: '#/components/schemas/page' Assets: description: '' required: - recordingAssets properties: recordingAssets: type: array items: $ref: '#/components/schemas/Asset' page: required: - size - totalElements - totalPages - number properties: size: type: integer format: int32 description: The page size totalElements: type: integer format: int32 description: The total elements totalPages: type: integer format: int32 description: The pages count number: type: integer format: int32 description: The current page number. The first page is 0 securitySchemes: OAuth2: type: oauth2 description: 'To use this API, you _must_ provide an OAuth Token that has been requested from LogMeIn OAuth Authorization Server. See https://goto-developer.logmeininc.com/how-get-access-token-and-organizer-key for documentation about how to use LogMeIn’s OAuth. ' in: header name: Authorization scheme: Bearer flows: password: tokenUrl: https://authentication.logmeininc.com/oauth/token refreshUrl: https://authentication.logmeininc.com/oauth/token authorizationCode: authorizationUrl: https://authentication.logmeininc.com/oauth/authorize tokenUrl: https://authentication.logmeininc.com/oauth/token refreshUrl: https://authentication.logmeininc.com/oauth/token