---
title: "List prompts"
method: GET
path: "/brands/{brandId}/prompts"
tags: ["prompts"]
---

# List prompts

`GET /brands/{brandId}/prompts`

## Request

- Base URL: `https://shruwd.io/api/v1`
- URL: `https://shruwd.io/api/v1/brands/{brandId}/prompts`
- Auth: HTTP bearer

Active prompts. With `engine`, each prompt carries its `coverage` over
the window from the rollups. Per-prompt coverage is often below n = 10;
the metric says `insufficient_data` rather than showing a number.

## Query parameters

- `includeInactive` '1'
- `engine` 'google_aio' | 'google_ai_mode' | 'chatgpt': `google_aio` — Google AI Overviews. `google_ai_mode` — Google AI Mode, tracked since 2026-10-15. `chatgpt` — ChatGPT.
- `from` string, date
- `to` string, date

## Response `200`

Prompts.

- PromptList
  - `prompts` object[], required
    - `promptGroupId` string, required: Stable across edits. Use it for trends and for `PATCH`/`DELETE`.
    - `promptId` string, required: The current version's id. Changes when text or intent is edited.
    - `text` string, required
    - `intent` 'informational' | 'comparison' | 'commercial' | 'navigational' | 'problem', required: Why someone would ask the prompt. `informational` — learning about a topic. `comparison` — weighing named options. `commercial` — choosing what to buy. `navigational` — looking for a specific site or brand. `problem` — fixing something. The intent decides which diagnostic rules apply to the prompt's results.
    - `tags` string[], required
    - `active` boolean, required
    - `createdAt` string, date-time, required
    - `version` integer, required
    - `page` string, nullable, required: The page on the brand's own site that should answer this question, set by a person. Findings about it name this page. Null when none is set.
    - `coverage` PromptCoverage
      - `promptGroupId` string, required
      - `text` string, required
      - `intent` string, required
      - `nResponses` integer, required
      - `selfMentionCount` integer, required
      - `unbrandedCount` integer, required: Responses that mentioned no tracked entity at all.
      - `emptyCount` integer, required: Responses where the engine produced no AI answer.
      - `selfMentionRate` union, required: A metric that can be shown. Never a bare number: either a point estimate with its 95% interval and `n`, or an explicit reason there is no number. `insufficient_data` is **not** zero.
        - object
          - `state` 'ok', required
          - `point` number, required: Proportion in [0, 1].
          - `lo` number, required: Lower bound of the 95% interval.
          - `hi` number, required: Upper bound of the 95% interval.
          - `n` integer, required: Responses the estimate rests on.
        - object
          - `state` 'insufficient_data', required
          - `n` integer, required
          - `needed` integer, required: How many more responses would cross the floor of ten.
        - object
          - `state` 'undefined', required
          - `n` integer, required
          - `reason` string, required
    - `autocorrected` PromptAutocorrect
      - `query` string, required: The query the engine answered in place of the prompt.
      - `at` string, date-time, required: When that attempt ran.
  - `window` object, nullable, required
    - `engine` 'google_aio' | 'google_ai_mode' | 'chatgpt', required: `google_aio` — Google AI Overviews. `google_ai_mode` — Google AI Mode, tracked since 2026-10-15. `chatgpt` — ChatGPT.
    - `from` string, date, required
    - `to` string, date, required
    - `historyFrom` string, date, nullable, required

## Other responses

- `404`: `not_found`: no such resource in this workspace.
- `default`: Every failure has this body.

---

[API](https://skmtc.dev/shruwd/apis/shruwd-api.md) · [All operations](https://skmtc.dev/shruwd/apis/shruwd-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shruwd/apis/shruwd-api/revisions/64a5da079928?raw)
