Skip to content

API Reference

All routes are under /api/v1. Researcher endpoints require a bearer token. Public participant endpoints use a response-scoped participant_token after start.

Auth

MethodEndpointPurpose
POST/auth/registerCreate a researcher account.
POST/auth/loginReturn a JWT for admin operations.
GET/auth/meRead current researcher profile.
PATCH/auth/meUpdate researcher display name.

Survey Management

MethodEndpointPurpose
POST/surveysCreate a survey with platform style, group count, tracking, calibration, and language settings.
GET/surveysList researcher-owned surveys.
GET/surveys/{survey_id}Read one survey and its configuration.
PATCH/surveys/{survey_id}Update title, settings, status-adjacent fields, style, groups, and tracking flags.
DELETE/surveys/{survey_id}Delete a survey and dependent data.
POST/surveys/{survey_id}/publishPublish a draft and expose its share code.
GET/surveys/{survey_id}/previewReturn the participant payload for a selected group/language without creating final export data.

Posts, Comments, Questions

MethodEndpointPurpose
POST/surveys/{survey_id}/postsCreate a post card from a URL and Open Graph metadata.
GET/surveys/{survey_id}/postsList post cards for editing.
PATCH/surveys/{survey_id}/posts/{post_id}Update display overrides, engagement numbers, group visibility, and labels.
DELETE/surveys/{survey_id}/posts/{post_id}Remove a post card.
POST/surveys/{survey_id}/posts/{post_id}/commentsAdd a researcher-authored fake comment.
POST/surveys/{survey_id}/posts/{post_id}/questionsAdd a post-attached question.
GET/surveys/{survey_id}/posts/{post_id}/questionsList post-attached questions.
PATCH/surveys/{survey_id}/posts/{post_id}/questions/{question_id}Update question text/type/config/order.
DELETE/surveys/{survey_id}/posts/{post_id}/questions/{question_id}Delete a post-attached question.
POST/surveys/{survey_id}/questionsAdd a survey-level question.
GET/surveys/{survey_id}/questionsList survey-level questions.
PATCH/surveys/{survey_id}/questions/{question_id}Update a survey-level question.
DELETE/surveys/{survey_id}/questions/{question_id}Delete a survey-level question.

Translations

MethodEndpointPurpose
GET/surveys/{survey_id}/translations/exportExport translation templates or completed translations as JSON/CSV.
POST/surveys/{survey_id}/translations/importImport JSON/CSV translations for survey, post, and question copy.

Participant Flow

MethodEndpointPurpose
GET/surveys/public/{share_code}Read public landing metadata for a published survey.
POST/surveys/{share_code}/startCreate or resume an anonymous participant response, assign group, and return posts/questions/tracking settings.
GET/surveys/responses/{response_id}/stateResume like/comment state with a valid participant token.
POST/surveys/responses/{response_id}/interactRecord participant like/comment/share-style events.
POST/surveys/responses/{response_id}/likes/toggleToggle current like state and record the event.
POST/surveys/responses/{response_id}/commentsCreate a participant-authored comment.
PATCH/surveys/responses/{response_id}/comments/{comment_id}Edit a participant-authored comment.
DELETE/surveys/responses/{response_id}/comments/{comment_id}Delete a participant-authored comment.
POST/surveys/responses/{response_id}/attention-summaryStore survey-time face/eye coverage counts and server-computed confidence before completion.
POST/surveys/responses/{response_id}/completeComplete the response and persist final attention quality if supplied.

Tracking

MethodEndpointPurpose
POST/tracking/calibration/sessionsStart a calibration session for one response.
POST/tracking/calibration/sessions/{session_id}/pointsStore numeric samples for one calibration point.
POST/tracking/calibration/sessions/{session_id}/completeCompute pass/fail, quality score, and calibration summary.
POST/tracking/gazeStore batched survey-time gaze samples.
POST/tracking/clicksStore batched survey-time click samples.

Analytics and Export

MethodEndpointPurpose
GET/surveys/{survey_id}/analytics-summaryReturn dashboard metrics, group comparison, engagement totals, and attention/export readiness.
GET/surveys/{survey_id}/participant-commentsReturn participant comments for qualitative review.
GET/surveys/{survey_id}/engagement-statsReturn post/group engagement stats.
GET`/surveys/{survey_id}/export?format=csvjson`