Skip to main content
The /v1/questions endpoint returns a paginated list of every question stored in your Honestly account. Use it to look up question IDs, texts, types and answer options before you request scores. The list is account-wide and is not a picture of your current surveys: it contains more than your active surveys ask, and the same question text can appear under many IDs. Read What the list contains and Question IDs and surveys before you build a data model on top of it.

Endpoint

Query Parameters

integer
Maximum number of questions to return per page. Accepts values from 0 to 1000. Defaults to 100.
integer
Number of questions to skip before returning results. Defaults to 0.

Example Request

Example Response

Response Fields

integer
Total number of questions matching the query.
array
List of question objects.
The type field uses an extensible enum — new question types may be added as Honestly introduces new features. Make sure your code handles unknown values gracefully.
The dimension field is planned for v1.4.0 and is not yet returned by api.honestly.com. It is documented here so you can plan your integration. Watch Versioning for the release.
To score a whole dimension, collect the IDs of every question whose dimension matches that title and pass them together as question_ids to /v1/scores — the endpoint aggregates them into one score.

What the list contains

The list covers every questionnaire in your account, not just the surveys you are running today. Besides the questions of your active surveys it includes:
  • questions from archived surveys
  • deleted questions, marked with is_deleted: true
  • questions from questionnaires that no survey uses any more
  • questions from 360° feedback questionnaires, whose surveys /v1/surveys does not return
If you want to rebuild the structure of one particular survey, expect /v1/questions to return more than that survey asks.

Question IDs and surveys

Why the same text appears under several IDs

Every question ID belongs to exactly one questionnaire. How a survey gets its questionnaire decides whether it shares IDs with other surveys:
  • A survey created from a template (for example the Pulse Survey) or from scratch gets its own new questionnaire. All of its questions receive new IDs, even when their text is identical to a question in another survey.
  • A survey created with Reuse existing shares the questionnaire of the survey it was based on, and therefore uses the same question IDs.
Both cases usually occur in the same account. An account that created 30 surveys from the same template therefore returns each template question 30 times, each time with a different id. This is expected, not duplicated data.
Question IDs are not stable across surveys. Do not treat an id as the key for “the same question” over time or across surveys. To group questions that ask the same thing, match on the question text in name, or on dimension once it is available.

Mapping a question to its survey

The Export API currently has no field that links a question to a survey: the question object carries no survey reference, and /v1/surveys does not list a survey’s questions. You cannot tell from these two endpoints which survey a question ID belongs to.