Skip to main content
POST
Error

Authorizations

Authorization
string
header
required

A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.

Headers

X-Organization-Id
string

The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.

Query Parameters

environment
enum<string>
default:live

Which environment to act in. A view parameter, valid only on the staff surface — a machine credential never chooses its environment, it is resolved from the key.

Available options:
live,
test

Body

application/json
kind
enum<string>
required
Available options:
nps,
custom
question
string
required
Maximum string length: 300
active
boolean
default:false
cooldown_days
integer
default:7
Required range: 0 <= x <= 365
segment_id
string<uuid> | null

The audience, or null for everybody. Must belong to the same environment.

triggers
object[]
Maximum array length: 5

Response

The survey, with its triggers.

survey
object

One question, asked at a moment you chose, of an audience you already defined. kind decides what an answer means — nps has the fixed 0–10 scale the results screen computes a number from, custom is anything else — and it cannot change, because the scores already given were given on the old scale.