ResponseDock Docs
Menu

Questions & Pages API

Pages

GET/surveys/:sid/pagesList pages in a survey version
POST/surveys/:sid/pagesCreate a new page
PATCH/pages/:idUpdate a page
DELETE/pages/:idDelete a page
POST/surveys/:sid/pages/reorderReorder pages

Page Object

{
  "id":          "page_xxxx",
  "surveyVersionId": "ver_xxxx",
  "title":       "Section 1",
  "description": null,
  "order":       0,
  "optional":    false
}

Blocks

GET/pages/:pid/blocksList blocks in a page
POST/pages/:pid/blocksCreate a block
PATCH/blocks/:idUpdate a block
DELETE/blocks/:idDelete a block
POST/pages/:pid/blocks/reorderReorder blocks

Block Object

{
  "id":      "block_xxxx",
  "pageId":  "page_xxxx",
  "type":    "question",   // "question" | "heading" | "text" | "divider" | "image" | "follow_up_email"
  "order":   0,
  "question": { ... }     // present when type = "question"
}

Question Object

{
  "id":           "q_xxxx",
  "blockId":      "block_xxxx",
  "type":         "nps",
  "label":        "How likely are you to recommend us?",
  "description":  null,
  "required":     true,
  "placeholder":  null,
  "options": [
    { "id": "opt_1", "label": "Option A", "order": 0 }
  ],
  "translations": {
    "de": { "label": "Wie wahrscheinlich ist es, dass..." }
  }
}

Question Types

"radio" | "checkbox" | "short_text" | "long_text"
"phone" | "country" | "date" | "integer" | "decimal" | "number"
"rating" | "nps" | "yes_no" | "dropdown" | "file_upload"

Date questions

A date question uses the respondent's native date picker. Answers are ISO strings without a time zone, so they mean the same calendar day wherever they are read:

ConfigAnswer value
default"2026-05-01" (YYYY-MM-DD)
"includeTime": true"2026-05-01T14:30" (YYYY-MM-DDTHH:mm, the respondent's local time)

minDate and maxDate limit the allowed days (inclusive). Each is a date ("2026-05-01") or "today", the respondent's current day; the API accepts one day either side of the UTC day for "today", because respondents can be ahead of or behind UTC. The API rejects answers that are not real calendar days or fall outside the limits. In conditional logic and page jumps, less_than / greater_than (and the_or_equal variants) mean before / after, and a date-only value matches any time on that day.

{
  "type": "date",
  "label": { "en": "Which day did you attend?" },
  "required": true,
  "config": { "minDate": "2026-05-01", "maxDate": "today", "includeTime": false }
}

Create a Question Block

POST /pages/:pid/blocks

{
  "type": "question",
  "order": 2,
  "question": {
    "type":     "radio",
    "label":    "How did you hear about us?",
    "required": false,
    "options": [
      { "label": "Social media", "order": 0 },
      { "label": "Word of mouth", "order": 1 },
      { "label": "Search engine", "order": 2 }
    ]
  }
}