Skip to content

Studies

A study defines the scope, tasks, targeting criteria, and compensation for a round of user testing. Once created, testers are matched and assigned. Studies map to internal jobs in the API path.

Endpoints

POST /api/jobs JWT

Create a new study

Request body

{
"title": "Checkout Redesign - Usability Test",
"description": "Evaluate the redesigned checkout flow for clarity and completion rate.",
"prototypeUrl": "https://www.figma.com/proto/abc123/checkout-v2",
"prototypeType": "figma",
"tasks": [
{
"title": "Add a product to your cart",
"description": "Start from the homepage and add any item to your cart.",
"successCriteria": "Cart count increments to 1.",
"order": 1
},
{
"title": "Complete the checkout",
"description": "Proceed through checkout and reach the order confirmation screen.",
"successCriteria": "Order confirmation page is displayed.",
"order": 2
}
],
"targeting": {
"countries": ["US", "GB", "CA"],
"ageRange": { "min": 18, "max": 55 },
"devices": ["desktop", "mobile"],
"languages": ["en"],
"testerCount": 10
},
"abTest": {
"enabled": true,
"variants": [
{ "label": "A", "description": "Current checkout flow" },
{ "label": "B", "description": "Redesigned checkout flow" }
],
"splitRatio": { "A": 0.5, "B": 0.5 }
},
"compensation": {
"currency": "USD",
"amount": 15.00,
"type": "flat"
},
"settings": {
"requireThinkAloud": true,
"recordScreen": true,
"recordFacial": true,
"recordVoice": true,
"maxDurationMinutes": 45,
"reminderAfterHours": 24
}
}

Field reference

FieldTypeRequiredDescription
titlestringYesStudy title shown to testers
descriptionstringYesInternal description of the study objectives
prototypeUrlstringYesURL to the prototype or live product
prototypeTypestringYesOne of: figma, invision, marvel, url
tasksarrayYesOrdered list of tasks the tester must complete
targetingobjectYesTester matching criteria
targeting.countriesarray of stringsYesISO 3166-1 alpha-2 country codes
targeting.ageRangeobjectNo{ min, max } age range
targeting.devicesarray of stringsYesOne or more of: desktop, mobile, tablet
targeting.languagesarray of stringsNoBCP 47 language codes. Defaults to ["en"].
targeting.testerCountintegerYesNumber of testers to recruit
abTestobjectNoA/B test configuration. Omit for single-variant studies.
abTest.enabledbooleanYesWhether A/B testing is active
abTest.variantsarrayYesVariant definitions with label and description
abTest.splitRatioobjectNoProportion of testers per variant. Must sum to 1.0. Defaults to equal split.
compensation.currencystringYesISO 4217 currency code
compensation.amountnumberYesPayment per completed session
compensation.typestringYesflat (only supported type currently)
settings.requireThinkAloudbooleanNoWhether testers must narrate while testing
settings.recordScreenbooleanNoEnable screen recording
settings.recordFacialbooleanNoEnable facial analysis
settings.recordVoicebooleanNoEnable voice transcription and analysis
settings.maxDurationMinutesintegerNoSession time limit. Defaults to 60.
settings.reminderAfterHoursintegerNoHours before sending an inactivity reminder

Task schema

FieldTypeRequiredDescription
titlestringYesShort task title shown to the tester
descriptionstringYesFull task instructions
successCriteriastringNoObservable condition for task completion
orderintegerYesPresentation order (1-indexed)

Response

{
"success": true,
"data": {
"jobId": "job_abc123",
"title": "Checkout Redesign - Usability Test",
"status": "draft",
"testerCount": 10,
"abTestEnabled": true,
"variants": ["A", "B"],
"estimatedLaunchDate": "2026-03-17T00:00:00Z",
"createdAt": "2026-03-16T10:00:00Z"
},
"error": null,
"metadata": null
}

Study status lifecycle

StatusDescription
draftCreated but not yet active. Testers cannot be assigned.
activeOpen for tester assignment and sessions.
pausedTemporarily closed. Existing sessions continue.
completedAll target sessions collected.
archivedClosed and removed from active dashboards.

After creation, a study is in draft status. Activate it via the dashboard or the study management API.