---
title: "Create or bulk-create tracked prompts"
method: POST
path: "/v3/ai-tracker/prompts"
tags: ["AI Tracker"]
---

# Create or bulk-create tracked prompts

`POST /v3/ai-tracker/prompts`

Track AI-visibility prompts. CONSUMES CREDITS (each prompt is run against the AI platforms): always ask the user for permission before calling this. Single mode: creates one prompt and returns its record. Bulk mode: pass `items` array to create multiple at once. `isEnabled`, `isBranded` and `region` apply to `prompt` and are also the defaults for every entry in `items`, so bulk callers set them once at the top level.

## Request body

- union
  - object
    - `teamId` string
    - `prompt` string, required — Single prompt text
    - `isEnabled` boolean — Whether to start tracking straight away. Defaults to true. Applies to `prompt` and is the default for every entry in `items` (an entry's own `isEnabled` wins). Pass false to add prompts without tracking them: nothing runs and no credits are spent until they are enabled, and prompts that already exist but are paused stay paused.
    - `isBranded` boolean — Marks the prompt as brand-specific. Applies to `prompt` and is the default for every entry in `items`. Detected from the prompt text when omitted.
    - `region` object, nullable — Optional region targeting. Applies to `prompt` and is the default for every entry in `items`. Omit for the team's default region, or pass null to track worldwide.
    - `items` object[] — Bulk prompt items
      - `prompt` string, required
      - `isEnabled` boolean
      - `isBranded` boolean
      - `region` object, nullable — Region targeting for this entry, overriding the top-level `region`. Omit to inherit it, or pass null to track this entry worldwide.
    - `enqueue` boolean — When false, skips only the immediate run. The prompt is still tracked, so the refresh cron picks it up and bills for it on its next tick. To add a prompt without tracking it, use `isEnabled: false` instead.
  - object
    - `teamId` string
    - `prompt` string — Single prompt text
    - `isEnabled` boolean — Whether to start tracking straight away. Defaults to true. Applies to `prompt` and is the default for every entry in `items` (an entry's own `isEnabled` wins). Pass false to add prompts without tracking them: nothing runs and no credits are spent until they are enabled, and prompts that already exist but are paused stay paused.
    - `isBranded` boolean — Marks the prompt as brand-specific. Applies to `prompt` and is the default for every entry in `items`. Detected from the prompt text when omitted.
    - `region` object, nullable — Optional region targeting. Applies to `prompt` and is the default for every entry in `items`. Omit for the team's default region, or pass null to track worldwide.
    - `items` object[], required — Bulk prompt items
      - `prompt` string, required
      - `isEnabled` boolean
      - `isBranded` boolean
      - `region` object, nullable — Region targeting for this entry, overriding the top-level `region`. Omit to inherit it, or pass null to track this entry worldwide.
    - `enqueue` boolean — When false, skips only the immediate run. The prompt is still tracked, so the refresh cron picks it up and bills for it on its next tick. To add a prompt without tracking it, use `isEnabled: false` instead.

## Response `201`

Default Response

- object
  - `id` string — Single-prompt result
  - `prompt` string
  - `status` string
  - `isEnabled` boolean
  - `createdAt` string, date-time
  - `success` boolean — Bulk-create result
  - `created` number
  - `revived` number
  - `enqueued` number
  - `skipped` number
  - `results` object[]
    - `id` string
    - `prompt` string
    - `status` string
    - `isEnabled` boolean
    - `createdAt` string, date-time
    - `enqueued` boolean

## Other responses

- `400` — Default Response
- `500` — Default Response

## Changes

- **2026-09-18** `e0163b1c37cb` — 1 info
  - added the success response with the status `201`
- **2026-08-24** `21b010d779d2` — 1 info
  - added the new optional request property `items/items/region`
- **2026-08-08** `6e50f4761eea` — 2 warning
  - the `items/items/prompt` request property's maxLength was set to `600`
  - the `prompt` request property's maxLength was set to `600`

[Change history](https://skmtc.dev/snowseo/apis/snowseo-api/changes/v3/ai-tracker/prompts/post.md)

---

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