Skip to content

Create a sign-up form

POST/v1/organization/{orgId}/marketing/audience/forms/create

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

A new sign-up form. Everything is optional: the heading, line and button default from the event, the organization or the recording. A recording gate (placement: recording_gate or clip) needs targetKind and targetId. Double opt-in is on unless doubleOptIn: false. Requires write:marketing. Also at POST /v1/marketing/audience/forms/create.

Request example

Terminal window
curl --request POST \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/marketing/audience/forms/create' \
--header 'x-access-token: <api-token>' \
--header 'Content-Type: application/json' \
--data '{
"eventId": 123,
"placement": "event_page",
"targetKind": "media_item",
"targetId": "<string>",
"name": "<string>",
"heading": "<string>",
"body": "<string>",
"buttonText": "<string>",
"fields": {
"name": true,
"company": true
},
"listKey": "<string>",
"doubleOptIn": true,
"consentText": "<string>",
"successMessage": "<string>"
}'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
Body application/json
POST

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • orgIdstringpathrequired

    Your organization ID. Any other organization returns 404.

Request body

application/json

Every field is optional; defaults come from the event, the organization or the recording.

  • eventIdinteger | null
  • placementstring
    Allowed values
    "event_page", "gallery", "clip", "recording_gate"
  • targetKindstring | null
    Allowed values
    "media_item", "content_item", "gallery", "gallery_item", null
  • targetIdstring | null
  • namestring

    A label your team sees.

  • headingstring
  • bodystring
  • buttonTextstring
  • fieldsobject
    Show child attributes
    • nameboolean
    • companyboolean
  • listKeystring
  • doubleOptInboolean
  • consentTextstring

    What visitors agree to; {org} is replaced with your organization's name.

  • successMessagestring
{
"eventId": 123,
"placement": "event_page",
"targetKind": "media_item",
"targetId": "<string>",
"name": "<string>",
"heading": "<string>",
"body": "<string>",
"buttonText": "<string>",
"fields": {
"name": true,
"company": true
},
"listKey": "<string>",
"doubleOptIn": true,
"consentText": "<string>",
"successMessage": "<string>"
}

Responses

201

payload.form

400

A field is not valid (for example a gate without the recording it unlocks).

403

  • SCOPE_REQUIRED — the token lacks read:marketing (reads) or write: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 event or recording is not in your organization.