Skip to main content
Once a study is published, share its participation link:
If the study has voice_enabled or video_enabled set, you’ll also get voice_participation_url and video_participation_url, each with a short variant.
The response reports completed_interviews and quota_remaining. Subscribe to the study.full webhook to hear when a study fills up.
Check redirect_url_warning on the response. It’s set when the API has a concern about the redirect URL you saved.

Attribute participants to your own IDs

Add query parameters to any participation link:
Then look the person up later:
You can also filter interviews.list, transcripts.list, transcripts.search and webhooks.list_deliveries by external_participant_id. Any redirect_url can include {{external_participant_id}} to pass the ID on.
participant_id and source come from the link, so a participant can change them. Don’t treat them as proof of identity. For verified values, use signed embed metadata.

Embed the interview

To run the interview inside your own site or app, create a publishable key for the origins it’ll load on, then generate the install snippet.
1

Create a key

create_key is the only time publishable_key and signing_secret are returned. Store them before doing anything else.
Origins must be exact (scheme, host and port). The "*" wildcard isn’t allowed.
2

Get the snippet

Paste snippet.snippet into your page. mode sets the widget’s presentation (data-mode) and defaults to chat.

Signed metadata

The basic snippet passes metadata through a data-metadata attribute, which a visitor can edit. When the interview needs to rely on a metadata value, use snippet.signed_snippet. Your server mints a JWS (HS256) token with the key’s signing_secret, and the token’s metadata claim is recorded as verified, overriding any page-supplied value of the same name. Each metadata item on an interview carries its provenance:

Managing keys