GoToWebinar Recording Assets API
Operations available for assets of a given organizer.
Operations available for assets of a given organizer.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gotowebinar-recording-assets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
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: "<?php\n\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n\n$body = new http\\Message\\Body;\n$body->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: "<?php\n\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n\n$body = new http\\Message\\Body;\n$body->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