Add teammates to a webinar's email signatures
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
Gives organization members their own tracked link for the webinar's email signatures, without emailing
them. Returns the GET payload. Requires write:marketing and a user whose role on the webinar can
edit sharing.
Request example
curl --request POST \ --url 'https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures/team' \ --header 'x-access-token: <api-token>' \ --header 'Content-Type: application/json' \ --data '{ "user_ids": [ 1042, 1077 ]}'const response = await fetch('https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures/team', { method: 'POST', headers: { "x-access-token": "<api-token>", "Content-Type": "application/json" }, body: JSON.stringify({ "user_ids": [ 1042, 1077 ] }),});
const data = await response.json();console.log(data);import requests
response = requests.request( "POST", "https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures/team", headers={ "x-access-token": "<api-token>", "Content-Type": "application/json" }, json={ "user_ids": [ 1042, 1077 ] },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures/team", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => '{ "user_ids": [ 1042, 1077 ]}', CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", "Content-Type: application/json", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http" "strings")
func main() { req, _ := http.NewRequest("POST", "https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures/team", strings.NewReader(`{ "user_ids": [ 1042, 1077 ]}`)) req.Header.Add("x-access-token", "<api-token>") req.Header.Add("Content-Type", "application/json")
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/event/{eventId}/sharing/signatures/team")) .header("x-access-token", "<api-token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"user_ids\": [\n 1042,\n 1077\n ]\n}")) .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
eventIdintegerpathrequiredThe webinar's event id.
Request body
user_idsinteger[]requiredOrganization members' user ids.
- Min items
1- Max items
50
{ "user_ids": [ 1042, 1077 ]}Responses
200application/json
The signatures and the team.
successbooleanpayloadSharingSignaturesShow child attributes
generatedbooleangenerated_atstring<date-time> | nullstalebooleanstartedbooleanstarts_atstring<date-time> | nulltimezonestring | nullregistration_urlstring | nullwidthintegerheightintegerbanner_urlstring | nullStable banner URL; "Save your seat" until the start, "Watch the recording" after.
bannersobjectShow child attributes
livestring | nullon_demandstring | null
variantsobject[]Show child attributes
idstring- Allowed values
"banner", "line", "text"
namestringhtmlstringtextstring
variants_availableobject[]Show child attributes
idstringnamestring
teamobject[]Show child attributes
idstring<uuid>user_idintegernamestringemailstringshare_urlstringemailed_atstring<date-time> | nullopened_atstring<date-time> | nullcopied_atstring<date-time> | nullclicksintegerregistrationsinteger
400
user_ids missing, empty or longer than 50, or a user who is not an active member of the organization.
403
SCOPE_REQUIRED: the token lacksread:events(reads) orwrite:marketing(writes).EVENT_NOT_ALLOWED: the event is outside the token's event allow-list.- Otherwise the token's user cannot read (or edit) sharing on this webinar.
409
The event is not a webinar.
Response examples
{ "success": true, "payload": { "generated": true, "generated_at": "2026-01-15T09:30:00Z", "stale": true, "started": true, "starts_at": "2026-01-15T09:30:00Z", "timezone": "<string>", "registration_url": "<string>", "width": 123, "height": 123, "banner_url": "<string>", "banners": { "live": "<string>", "on_demand": "<string>" }, "variants": [ { "id": "banner", "name": "<string>", "html": "<string>", "text": "<string>" } ], "variants_available": [ { "id": "<string>", "name": "<string>" } ], "team": [ { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "user_id": 123, "name": "<string>", "email": "<string>", "share_url": "<string>", "emailed_at": "2026-01-15T09:30:00Z", "opened_at": "2026-01-15T09:30:00Z", "copied_at": "2026-01-15T09:30:00Z", "clicks": 123, "registrations": 123 } ] }}