---
title: "GET Questionnaire Questions"
method: GET
path: "/v2/questionnaires/questions"
tags: ["Questions"]
---

# GET Questionnaire Questions

`GET /v2/questionnaires/questions`

Returns a paginated list of questions extracted from questionnaires submitted to ConveyorAI. Each question includes the bot's draft answer, the final human-reviewed answer, grading data, collaborators, cited sources, answer revision history, and metadata about the parent questionnaire.

## Query parameters

- `created_at_start` string, date-time
- `created_at_end` string, date-time
- `questionnaire_id` string
- `questionnaire_type` 'RFP' | 'Security Questionnaire' | 'Past Answers Import'
- `questionnaire_status` string
- `is_test` 'true' | 'false'
- `is_conveyorai_answered` 'true' | 'false'
- `reusable` true | false
- `page` integer
- `per_page` integer

## Headers

- `X-API-KEY` string, required

## Response `200`

Paginated list of questions.

- object
  - `questions` object[], required
    - `id` string, uuid, required — Unique identifier for the question.
    - `question_type` 'free_response' | 'select_one' | 'select_multiple' | 'object_response', required — The answer format expected for this question.
    - `question_text` string, required — The question.
    - `bot_answer_text` string, nullable — ConveyorAI's draft free-response answer, or null if no answer was generated.
    - `bot_structured_answer` string, nullable — ConveyorAI's draft answer for select_one questions, or null.
    - `bot_object_response` object, nullable — ConveyorAI's draft answer for object_response type questions. An object mapping column label to answer value. Null for other question types.
    - `final_answer_text` string, nullable — The human-reviewed final free-response answer, or null if not yet reviewed.
    - `final_structured_answer` string, nullable — The human-reviewed final answer for select_one questions, or null.
    - `final_structured_answers` string[], nullable — The human-reviewed final answers for select_multiple questions, or null.
    - `final_object_response` object, nullable — Human-reviewed answer for object_response type questions. Same shape as bot_object_response. Null for other question types.
    - `status` string, required — The review status of the question.
    - `reusable` boolean — Whether this question's answer is eligible for the Past Answers Knowledge Base. Answers are reusable when they've been human-reviewed and meet quality criteria.
    - `edit_history` object[] — Full answer revision history, ordered most recent first.
      - `answer_type` 'ai_generated' | 'canonical' | 'verbatim' | 'topic_verbatim' | 'rule_based' | 'ai_assisted' | 'conditional_child_na' | 'human' — How the answer was created.
      - `editor` object, nullable — Who made this edit. Null for bot or system answers.
        - `name` string, nullable — Editor display name.
        - `email` string — Editor email address.
      - `answer_text` string, nullable — The answer prose at this revision.
      - `structured_answer` string, nullable — The structured or short answer at this revision, for example Yes or No.
      - `created_at` string, date-time — When this revision was created.
    - `grading` object, nullable — Accuracy grading for ConveyorAI's answer, or null if not graded.
      - `overall_category` string, nullable — Overall grade for the answer.
    - `conveyorai_answer_result` object, nullable — Classification of ConveyorAI's answer quality, or null if the bot has not answered or grading is unavailable.
      - `result` 'Perfect Answer' | 'Accurate Edited' | 'Inaccurate' | 'Unanswered' — Classification of the bot's answer quality.
    - `last_edited_by` object, nullable — The user who last edited the answer, or null.
      - `name` string, nullable — User's display name.
      - `email` string, email — User's email address.
    - `collaborators` object[], required — Users assigned to or collaborating on this question.
      - `name` string, nullable — User's display name.
      - `email` string, email — User's email address.
    - `cited_sources` object[], required — Sources cited in ConveyorAI's answer.
      - `title` string — Title of the cited source.
      - `source_type` string — Type of source.
    - `questionnaire_id` string, uuid, nullable — ID of the parent questionnaire (if applicable).
    - `questionnaire_type` 'RFP' | 'Security Questionnaire' | 'Past Answers Import', nullable — Cleaned label for the parent questionnaire type.
    - `connection_domain` string, nullable — Domain of the customer who sent this questionnaire.
    - `created_at` string, date-time, required — When the question was created.
    - `questionnaire_completed_at` string, date-time, nullable — When the parent questionnaire was marked completed.
  - `page` integer, required
  - `per_page` integer, required
  - `total_pages` integer, required

## Other responses

- `400` — Invalid filter parameter.
- `403` — Invalid or missing API key.

---

[API](https://skmtc.net/conveyor/apis/portal-api.md) · [All operations](https://skmtc.net/conveyor/apis/portal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conveyor/portal-api/revisions/adc0da85b126/schema)
