List sign-up forms
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
The organization's sign-up forms (on event pages, libraries, clips and recordings), newest first, each with signups (total, pending, subscribed). Archived forms are left out unless includeArchived=true. Requires read:marketing. Also at GET /v1/marketing/audience/forms.
Request example
curl --request GET \ --url 'https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/audience/forms' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/audience/forms', { 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/audience/forms", 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/audience/forms", 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/audience/forms", 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/audience/forms")) .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.
Query parameters
eventIdintegerqueryplacementstringquery- Allowed values
"event_page", "gallery", "clip", "recording_gate"
includeArchivedbooleanquery
Responses
200application/json
payload.forms
payloadobjectShow child attributes
formsSignupForm[]Show child attributes
idstring<uuid>event_idinteger | nullplacementstring- Allowed values
"event_page", "gallery", "clip", "recording_gate"
target_kindstring | null- Allowed values
"media_item", "content_item", "gallery", "gallery_item", null
target_idstring | nullheadingstringbodystring | nullbutton_textstringfieldsobjectShow child attributes
namebooleancompanyboolean
list_keystringdouble_opt_inbooleanstatusstring- Allowed values
"active", "archived"
signupsobjectShow child attributes
totalintegerpendingintegersubscribedinteger
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).
Response examples
{ "payload": { "forms": [ { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "event_id": 123, "placement": "event_page", "target_kind": "media_item", "target_id": "<string>", "heading": "<string>", "body": "<string>", "button_text": "<string>", "fields": { "name": true, "company": true }, "list_key": "<string>", "double_opt_in": true, "status": "active", "signups": { "total": 123, "pending": 123, "subscribed": 123 } } ] }}