Make a webinar's email signatures
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
Makes (or remakes) the signature banners, before and after the start, from the webinar as it is now and
in the event's brand. Signatures already pasted pick up the new banner through their stable image URL.
Sends nothing. Returns the same payload as the GET. Requires write:marketing.
Request example
curl --request POST \ --url 'https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures' \ --header 'x-access-token: <api-token>' \ --header 'Content-Type: application/json' \ --data '{}'const response = await fetch('https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures', { method: 'POST', headers: { "x-access-token": "<api-token>", "Content-Type": "application/json" }, body: JSON.stringify({}),});
const data = await response.json();console.log(data);import requests
response = requests.request( "POST", "https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures", headers={ "x-access-token": "<api-token>", "Content-Type": "application/json" }, json={},)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/sharing/signatures", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => '{}', 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", strings.NewReader(`{}`)) 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")) .header("x-access-token", "<api-token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{}")) .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
bodyobject
{}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
401
Missing, invalid or expired token.
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 } ] }}