---
title: "Create a question"
method: POST
path: "/org/questions"
tags: ["Questions"]
---

# Create a question

`POST /org/questions`

## Request

- Base URL: `https://apiv2.senso.ai/api/v1`
- URL: `https://apiv2.senso.ai/api/v1/org/questions`
- Auth: API key in header `X-API-Key`

Adds a question to your organization. If `geo_pool_id` is omitted — or names a pool that is not yours — the question is filed in your org's first pool (alphabetically), created as "Default" on first use. Any valid `tag_ids` supplied are attached and echoed back (invalid tag ids are ignored and the `tags` field is simply absent); Senso also auto-tags the question in the background. Requires the GEO product.

## Request body

- CreateGeoQuestionRequest
  - `question_text` string, required
  - `type` 'decision' | 'consideration' | 'awareness' | 'evaluation', required: Funnel stage for the question.
  - `geo_pool_id` string, uuid: Pool to file the question under. Defaults to (or creates) your org's default pool when omitted or when the id is not one of your org's pools.
  - `tag_ids` string[]: Tag ids to attach on creation.

## Response `201`

The created question.

- GeoQuestionResponse: A question (prompt) with its tags.
  - `geo_question_id` string, uuid, required
  - `org_id` string, uuid: The owning organization. Omitted for network-scoped questions.
  - `question_text` string, required
  - `type` string, required: Funnel stage. Currently one of `decision`, `consideration`, `awareness`, or `evaluation`.
  - `geo_pool_id` string, uuid: The pool this question belongs to.
  - `persona_id` string, uuid, nullable, required: Always null. Legacy personas were removed; the field is kept until the new org persona API ships.
  - `persona_question_id` string, uuid, nullable, required: Always null. Legacy personas were removed; the field is kept until the new org persona API ships.
  - `persona_name` string, nullable, required: Always null. Legacy personas were removed; the field is kept until the new org persona API ships.
  - `tags` TagResponse[]
    - `id` string, uuid, required
    - `org_id` string, uuid, required
    - `name` string, required
    - `curated` boolean, required: True = part of the org's working vocabulary; false = machine-minted (from search queries), awaiting adoption.
    - `prompt_count` integer: Prompts carrying this tag.
    - `content_count` integer: Content items carrying this tag.
    - `kb_content_count` integer: Knowledge-base nodes carrying this tag.
    - `generated_content_count` integer: Generated content carrying this tag.
    - `generated_draft_count` integer: Generated drafts carrying this tag.
    - `generated_published_count` integer: Published generated content carrying this tag.
    - `kb_search_message_count` integer: Search queries carrying this tag.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: The request body was invalid — either it failed field validation (`ValidationErrorResponse`) or was otherwise malformed (`ErrorResponse`).
- `401`: Missing or invalid credentials — supply a valid org API key in the `X-API-Key` header.
- `403`: The API key is authenticated but not permitted to access this resource.

---

[API](https://skmtc.dev/senso/apis/senso-org-api.md) - [All operations](https://skmtc.dev/senso/apis/senso-org-api/llms.txt) - [OpenAPI document](https://skmtc.dev/senso/apis/senso-org-api/revisions/d789b4fcbe84?raw)
