A recording's gate, button and end card
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
What happens around a recording on your public pages. settings holds what you chose (gate off, before or at gate_at_s; the button's cta_mode auto, custom or off and cta_at_s; end_card); resolved holds what viewers see today. With nothing chosen, anyone can watch, the button is "Register for" your next event at the end, and a "Watch next" card follows. Requires read:marketing; refused for a key restricted to particular events. Also at GET /v1/marketing/video/items/{mediaId}.
Request example
curl --request GET \ --url 'https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/video/items/{mediaId}' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/video/items/{mediaId}', { method: 'GET', headers: { "x-access-token": "<api-token>" },});
const data = await response.json();console.log(data);import requests
response = requests.request( "GET", "https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/video/items/{mediaId}", headers={ "x-access-token": "<api-token>" },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/video/items/{mediaId}", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http")
func main() { req, _ := http.NewRequest("GET", "https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/video/items/{mediaId}", nil) req.Header.Add("x-access-token", "<api-token>")
res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/video/items/{mediaId}")) .header("x-access-token", "<api-token>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();
HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Try it
Response headers
Authorizations
x-access-tokenstringheaderOrganization API token. Generate from Organization Settings → API Tokens.
AuthorizationBearer <token>headerorOAuth 2.1 access token. Obtained via the OAuth PKCE flow at
/oauth/token.
Send one of these. See Authentication.
Path parameters
orgIdstringpathrequiredYour organization ID. Any other organization returns
404.mediaIdstring<uuid>pathrequiredThe recording (Media item)
Responses
200application/json
payload is a VideoOptions
payloadVideoOptionsWhat happens around a recording on your public pages.
Show child attributes
media_idstringsettingsobjectShow child attributes
gatestring- Allowed values
"off", "before", "at"
gate_at_sinteger | nullgate_form_idstring | nullThe sign-up form visitors fill in; share it as /subscribe/{gate_form_id}
cta_modestringauto = "Register for" your next event
- Allowed values
"auto", "custom", "off"
cta_labelstring | nullcta_urlstring | nullcta_at_sinteger | nullShow the button from this second; null = at the end
end_cardbooleanSuggest what to watch next when it ends
resolvedobjectWhat viewers see today (the button resolves to your next event when cta_mode is auto)
is_defaultboolean
403
SCOPE_REQUIRED— the token lacksread:marketing(reads) orwrite:marketing(writes).ORG_WIDE_TOKEN_REQUIRED— the token is restricted to particular events; this operation reads the whole organization.FORBIDDEN— the organization's plan does not include Marketing, or the token's user cannot change goals (writes need an organization admin or the organization settings permission).
404
The recording is not in your organization.
Response examples
{ "payload": { "media_id": "<string>", "settings": { "gate": "off", "gate_at_s": 123, "gate_form_id": "<string>", "cta_mode": "auto", "cta_label": "<string>", "cta_url": "<string>", "cta_at_s": 123, "end_card": true }, "resolved": {}, "is_default": true }}