responses_aggregates
ChatGPTGet aggregate statistics for survey questions. Buckets are sparse: values with no responses are omitted instead of returned with count: 0. Percentages use respondents who answered the question (totalAnswered) as their denominator, so multi-select percentages can sum above 100%; totalSelections reports their selection count. NPS questions also include the computed score and promoter/passive/detractor groups.
responses_crosstab
ChatGPTCross-tabulate answers between two non-matrix survey questions. Matrix questions are rejected because the two-axis contract cannot select an individual matrix row.
responses_delete
ChatGPTOwner only. Delete responses by response_ids (the stable resp_/part_ identifiers returned by responses_list, webhook deliveries and exports), by row_numbers from responses_list, or all responses for a survey. Prefer response_ids: row numbers rank the surviving rows, so a concurrent deletion shifts them onto different responses. Deleted responses stop being returned by every read surface immediately and cannot be recovered through the API.
responses_export
ChatGPTExport unlocked survey responses as CSV, XLSX, JSON, or SPSS and return a temporary signed download URL plus the actual file_extension. SPSS is a ZIP bundle. By default, only completed participations are exported unless include_incomplete_participations=true.
responses_export_charts
ChatGPTExport unlocked survey charts in one of six formats: pptx (native editable PowerPoint), pptx_images (PowerPoint with raster slides), pdf, docx, zip_images (ZIP of PNG charts), or chart_json (structured chart data). Every format answers with the finished export in one call: chart_json inline, the other five as a temporary signed download URL valid for one hour plus the actual file_extension (pptx_images → pptx, zip_images → zip). Rendering takes seconds on a typical survey and about a minute on the largest ones. In chart_json, a question's totalAnswers is the number of plotted bucket mentions; for multiple-choice this means selections, not respondents. Question types with configured options or a bounded scale keep their complete chart axis, including unused configured values with count: 0; historical answered values remain visible after the configured domain changes. Chart exports do not return a row count. A survey with no answers yet has nothing to chart and is refused with no_chartable_data.
responses_list
ChatGPTList unlocked survey participations newest first, each with a stable opaque response_id and a global newest-first row ranking (row_no) for pagination/deletion workflows. Supports order and an exclusive since watermark for polling clients. Returns full answers and response metadata without internal IDs.
responses_survey_stats
ChatGPTSurvey-level statistics: view count, started and completed responses, completion rate, and completion time (average, shortest, longest, median). Field names are camelCase because the payload mirrors the analytics core.
survey_create
ChatGPTCreate a new unpublished survey draft. Prefer mode: "ai" when the user describes the survey goal, audience, or intent; use mode: "manual" when the user has already provided the exact survey content. The server assigns question and option IDs automatically; question_id is refused in a question payload. To wire up logic or translations in this same call, give a question a ref and reference it from logic_rules and translations. New pages are declared in pages with a ref in the same way, which questions use in page_id and page logic rules in target_page_id. Use survey_edit for later targeted changes, then survey_publish to make the survey live. For text-rating, put the required answer-button labels in matrix_columns; matrix_rows is unsupported. For multiple-choice and image-multiple-choice, omitting subtitle materializes a locale-specific multi-select hint and sets show_subtitle: true; send show_subtitle: false to hide it.
survey_delete
ChatGPTDelete a survey and its responses. This cannot be undone through the API: the survey answers 404 from the moment this returns, and its responses, logic rules and translations go with it.
survey_duplicate
ChatGPTCreate a copy of an existing survey (unpublished draft). Owner only: the copy is a new survey owned by the caller, so it leaves the source survey's collaboration entirely. Question, option, matrix-axis and logic-rule IDs are regenerated, and logic references are remapped to those new IDs. The copy has no publication schedule. Counts against the same creation quota as survey_create (10 per hour, 50 per day per account).
survey_edit
ChatGPTUpdate the survey working draft without publishing it. Prefer mode: "ai" for content changes: adding or rewriting questions and options, logic, pages, and anything the user describes rather than specifies. Use mode: "manual" for a targeted change to a known field with a known value: a setting, the design (template, color, logo), the display mode, a required flag, or replacing a text with wording the user gave. Re-sending an edit whose result already matches the draft is safe: it answers 200 with an empty applied_changes and a warning saying nothing was changed, rather than a conflict. A 409 from this operation means a genuine concurrent modification. Manual edits accept only the sections being changed. Reference existing questions by question_id, logic rules by rule_id, options by option_id and pages by their id from survey_get. For text-rating, put the required answer-button labels in matrix_columns; matrix_rows is unsupported. For multiple-choice and image-multiple-choice, omitting subtitle materializes a locale-specific multi-select hint and sets show_subtitle: true; send show_subtitle: false to hide it.
survey_get
ChatGPTGet both complete states of a survey: draft is the current working draft and published is the most recently published definition, or null when the survey has never been published. The top-level status and schedule describe current respondent access. Options, matrix_rows, and matrix_columns in both states are returned as {option_id, label} objects. Use draft as the basis for edits and published.questions[].question_id for response analytics. Translation entries with status: "pending" may contain master-locale text as an editable placeholder; that text is not a completed target-locale translation.
survey_list
ChatGPTList all surveys owned by or shared with the authenticated user, including each survey's effective draft, scheduled, live, or ended status.
survey_publish
ChatGPTPublish the current survey working draft. If the survey is already published, this updates it from the current draft. Returns the public URL and effective scheduled, live, or ended status; a scheduled result also explains when the URL begins accepting responses. Plan-gated features. Publishing is refused with plan_features_exceeded when the survey uses a feature the survey OWNER's plan does not include (a collaborator's own plan is not read). survey_get.plan_gate answers the same question before the call, and survey_create / survey_edit warn as soon as a draft crosses the line.
survey_revert_draft
ChatGPTReplace the survey working draft with the currently published version. Every unpublished edit in the draft is discarded and cannot be recovered through the API; the live survey and its responses are untouched. The result reports what was discarded — the question count before and after, which sections differed, and the questions the draft had added, removed or changed. The two counts are snapshot sizes: equal counts can still accompany additions, removals, or modifications. A survey that has never been published has no version to fall back on and is refused.
survey_unpublish
ChatGPTUnpublish a survey and move it back to draft status. Owner or editor — taking a survey off-line is the inverse of putting it on-line, and the same collaborators may do both.
responses_aggregates
Clauderesponses_crosstab
Clauderesponses_delete
Clauderesponses_export
Clauderesponses_export_charts
Clauderesponses_list
Clauderesponses_survey_stats
Claudesurvey_create
Claudesurvey_delete
Claudesurvey_duplicate
Claudesurvey_edit
Claudesurvey_get
Claudesurvey_list
Claudesurvey_publish
Claudesurvey_revert_draft
Claudesurvey_unpublish
Claude