{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/athenahq-ai/json-schema/athenahq-ai-prompt-schema.json",
  "title": "Prompt",
  "description": "A prompt resource for AI-powered content generation",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/athenahq-ai-openapi.json#/components/schemas/Prompt",
  "type": "object",
  "required": [
    "id",
    "prompt",
    "status",
    "country",
    "countries",
    "tags",
    "prompt_type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the prompt"
    },
    "prompt": {
      "type": "string",
      "description": "The prompt text used for content generation"
    },
    "topic_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "The name of the topic category this prompt belongs to"
    },
    "current_monthly_searches": {
      "type": "integer",
      "description": "Estimated monthly search volume for this prompt. The keyword-volume provider only measures volume above a floor of ~100/mo; prompts below that floor are returned as 100."
    },
    "current_total_value": {
      "type": [
        "number",
        "null"
      ],
      "description": "Estimated total monthly value for this prompt"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "paused"
      ],
      "description": "Current status of the prompt"
    },
    "country": {
      "type": "string",
      "deprecated": true,
      "description": "Deprecated. Use `countries` instead. Returns the primary country if one is marked primary, otherwise the alphabetically first country. Falls back to `\"United States\"` when the prompt has no countries."
    },
    "countries": {
      "type": "array",
      "description": "All target countries for the prompt. The primary country (if any) is listed first; remaining countries follow in alphabetical order. Empty when the prompt has no countries assigned.",
      "items": {
        "type": "object",
        "required": [
          "country",
          "is_primary"
        ],
        "properties": {
          "country": {
            "type": "string",
            "description": "Country name"
          },
          "is_primary": {
            "type": "boolean",
            "description": "Whether this is the prompt's primary country. At most one country per prompt is primary."
          }
        }
      }
    },
    "tags": {
      "type": "array",
      "description": "Tags assigned to the prompt, sorted case-insensitively by name. Empty when the prompt has no tags. Tag IDs can be passed to the `prompt_tags` filter on this endpoint or to `tag_ids` on POST /api/v1/prompts. List a website's full tag catalog with GET /api/v1/prompt-tags.",
      "items": {
        "$ref": "#/$defs/PromptTag"
      }
    },
    "prompt_type": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "branded",
        "non_branded"
      ],
      "description": "Whether Athena shows the prompt as Branded or Non-branded. Returned separately from `tags`, which lists only custom tags. Uses the same values as the `prompt_type` filter on the metrics endpoints. `null` when the prompt has no type. To set it, send `type` on POST /api/v1/prompts or PATCH /api/v1/prompts/{prompt_id}, where `high_intent` is Branded and `discovery` is Non-branded."
    }
  },
  "$defs": {
    "PromptTag": {
      "type": "object",
      "description": "A prompt tag reference",
      "required": [
        "id",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the tag"
        },
        "name": {
          "type": "string",
          "description": "Tag name"
        }
      }
    }
  }
}