create()
draft, in linear interview mode, with an empty question list.
str | UUID
required
Project to create the study in.
str
required
Study name, shown to participants.
str
Study description.
str | StudyType
default:"sociology"
sociology, user_experience, customer_development or polling.str
The research question or questions.
str
Research objectives.
str
Who you want to interview.
str
Methodology notes.
str
Benefits of taking part. Used in consent text.
str
Risks of taking part. Used in consent text.
str
Researcher or support contact.
str
Institutional affiliation.
str
default:"English"
Primary interview language.
bool
Skip collecting participants’ first names.
str | ModelTier
default:"open_weights"
open_weights, standard or premium. frontier is accepted by the API as a deprecated alias for premium.str
Where participants go after completing. May contain
{{external_participant_id}}.int
Response quota. Omit for unlimited.
bool
Offer a voice-call interview link alongside text chat.
bool
Offer a video-call interview link alongside text chat.
StudyOut.
list()
StudyListOut, with studies holding a list of StudySummary.
get()
question_count and screening_enabled) and participation links.
Returns StudyOut.
update()
create() except project_id; only the ones you pass change. To remove a response quota, use recruitment.update(clear_max_responses=True).
Returns StudyOut.
get_stats()
StudyStatsOut.
draft()
create(), then fill in questions with questions.generate(). Usually takes 20–40 seconds.
str | StudyType
required
The methodology. It decides which brief fields are read.
str
default:"English"
Language to write the draft in, which also becomes the interview language.
survey_type are read:
All brief fields are strings.
Returns
StudyDraft.
draft_from_site()
is_valid is true, pass draft to create(); otherwise draft is None and rationale explains what was missing. Each site allows a limited number of drafts per user (generations_used of generations_limit), and the API returns 429 (RateLimitError) after that. Usually takes 20–40 seconds.
str
required
Public http(s) URL of the product or startup landing page.
str
default:"English"
Language to write the draft and rationale in.
StudyDraftFromSiteOut.
get_publication()
draft, open, paused or closed), how many studies your plan may have open, the publish-time credit check, the latest validation run and whether the configuration has changed since publishing.
Returns PublicationStatusOut.
validate()
publish() while the configuration is unchanged. This is a model call, so allow up to a minute.
outcome is passed, methodological_issues, ethical_issues or blocking_issues. Each issue’s severity is ethical or blocking (both must be fixed) or methodological (can be acknowledged).
Returns ValidationRunOut.
publish()
ConflictError, whose body carries the refusal code, the issues and the validation_run_id. Publishing a study that’s already open does nothing and returns already_open=True.
str | UUID
To publish despite methodological issues, pass the
validation_run_id from the refusal. Ethical and blocking issues can’t be acknowledged.bool
Publish even though your balance covers at least one interview but not every remaining response.
PublishOut.
pause()
in_flight_count says how many. Resume with publish().
Returns PauseOut..png?fit=max&auto=format&n=G_hwo_L4hZsQ93vT&q=85&s=c00b6042d4688a9b776bae65a530206a)