---
title: "Retrieve a campaign's questionnaire"
method: GET
path: "/questionnaires/{campaign_id}"
tags: ["Questionnaires"]
---

# Retrieve a campaign's questionnaire

`GET /questionnaires/{campaign_id}`

## Request

- Base URL: `https://api.presscart.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.presscart.com/questionnaires/{campaign_id}`
- Auth: HTTP bearer

Returns the LIVE view of a campaign's questionnaire — live schema-filtered answers, live completeness, and live story eligibility, regardless of submitted/unlocked status. Always 200s; `questionnaire` is null until the campaign has been assigned a questionnaire.

## Path parameters

- `campaign_id` string, uuid, required

## Response `200`

Campaign questionnaire envelope retrieved successfully

- CampaignQuestionnaireEnvelope
  - `enabled` boolean, required
  - `requires_action` boolean, required
  - `questionnaire` CampaignQuestionnaire, nullable, required
    - `id` string, uuid, required
    - `campaign_id` string, uuid, required
    - `status` 'in_progress' | 'submitted' | 'unlocked', required
    - `story_type` 'PROFILE_ARTICLE' | 'THOUGHT_LEADERSHIP' | 'LISTICLE' | 'PRESS_RELEASE' | 'EDUCATION' | 'PERSONAL_EXPERIENCE' | 'CASE_STUDY', nullable, required
    - `story_selected_at` string, nullable, required
    - `submitted_at` string, nullable, required
    - `unlocked_at` string, nullable, required
    - `unlock_note` string, nullable, required
    - `eligibility` object, required
      - `story_module` boolean, required
      - `eligible_story_types` string[], required
      - `preselected` 'PROFILE_ARTICLE' | 'THOUGHT_LEADERSHIP' | 'LISTICLE' | 'PRESS_RELEASE' | 'EDUCATION' | 'PERSONAL_EXPERIENCE' | 'CASE_STUDY', nullable, required
      - `recommendations` object[], required
        - `story_type` 'PROFILE_ARTICLE' | 'THOUGHT_LEADERSHIP' | 'LISTICLE' | 'PRESS_RELEASE' | 'EDUCATION' | 'PERSONAL_EXPERIENCE' | 'CASE_STUDY', required
        - `rank` integer, required
        - `reasons` string[], required
    - `modules` object[], required
      - `module_type` 'PROFILE' | 'SHARED_CORE' | 'STORY', required
      - `form_key` string, required
      - `name` string, required
      - `fields` QuestionnaireField[], required
        - `key` string, required
        - `label` string, required
        - `type` 'TEXT' | 'TEXTAREA' | 'RICH_TEXT' | 'SELECT' | 'MULTISELECT' | 'BOOLEAN' | 'NUMBER' | 'DATE' | 'URL' | 'EMAIL' | 'FILE', required
        - `required` boolean
        - `core` boolean
        - `order` integer, required
        - `options` string[]
        - `placeholder` string
        - `ai_assist` 'manual' | 'suggestion' | 'prefill'
        - `example_answer` string
        - `how_to_answer` string
        - `drill_down_prompts` string[]
        - `profile_write_through` 'name' | 'website_url' | 'overview' | 'products_and_services' | 'founded_year' | 'key_achievements' | 'unique_value_propositions' | 'legal_company_name'
        - `capture` 'audience_tags' | 'industry_tags'
      - `answers` object, required
      - `completeness` QuestionnaireCompleteness, required
        - `core_complete` boolean, required
        - `unanswered_core` string[], required
        - `optional_remaining` integer, required
        - `answered_count` integer, required
        - `total_count` integer, required
    - `overall_completeness` QuestionnaireCompleteness, required
      - `core_complete` boolean, required
      - `unanswered_core` string[], required
      - `optional_remaining` integer, required
      - `answered_count` integer, required
      - `total_count` integer, required
    - `pending_story_core_count` integer
    - `profile_tags` object, required
      - `audience` string[], required
      - `topic` string[], required

---

[API](https://skmtc.dev/presscart/apis/presscart-prod-api.md) · [All operations](https://skmtc.dev/presscart/apis/presscart-prod-api/llms.txt) · [OpenAPI document](https://skmtc.dev/presscart/apis/presscart-prod-api/revisions/2154581d845e?raw)
