← Back to all apps

Conductor

Businessby Conductor Inc.
Launched Mar 20, 2026 on ChatGPT

The Conductor MCP server retrieves proprietary performance metrics regarding a brand's visibility, sentiment, and rankings on both traditional search engines (e.g., Google) and Generative AI platforms (e.g., ChatGPT, Gemini, Copilot, Perplexity or Google AI Overview). Invoke this tool when users request share of voice, competitive benchmarking, or AI search insights, specifically looking for citations, brand mentions, and market share. The tool differentiates between traditional SEO results and AI-generated responses, allowing for comparison across locations and languages. Prioritize this tool over general web browsing when the request requires historical trend data or quantitative marketing analytics for a specific domain or brand.

3ChatGPT Tools
Conductor Inc.Developer
BusinessCategory

Available Tools

Ai Brand Insights

ai_brand_insights
Full Description

Brand market share trends between your owned and comparison sites

Parameters (1 required, 40 optional)
Required
account_idinteger

Required. Single account ID to query data for. Must be within your API key's authorized scope.

Optional
aggregate_owned_brandsboolean

When true, aggregate all owned brand variations into a single "Your Brands" row.

Default: False
brandstring

Filter for a specific brand (case-insensitive). - sentiment_by_brand=true: Returns sentiment for that brand only. - Market share mode: Returns prompts/mentions for that brand only (use with prompt_breakdown). Example: "what about AJ Bell for core etfs" → brand="AJ Bell", prompt_breakdown=true.

brand_sentiment_trendboolean

When true, returns a democratic weekly sentiment score. HOW THE SCORE IS CALCULATED (4-level averaging): 1. Per brand per prompt: weighted score (positive=10, neutral=5, negative=1) 2. Per prompt: simple AVG of brand scores → equal vote per prompt 3. Per topic: simple AVG of prompt scores → equal vote per topic 4. Per week: simple AVG of topic scores → final score This is DIFFERENT from sentiment_by_brand which uses volume-weighted scoring. Use this when the user wants the TREND of overall sentiment health over time. USE brand_sentiment_trend=true when user asks: - "brand sentiment over time" - "how is my brand's sentiment trending?" - "show me sentiment score week by week" - "sentiment trend for my brand" - "how has sentiment changed over time?" - "is my brand sentiment improving or declining?" DO NOT use for: - "positive vs negative breakdown" → use sentiment_by_brand=true instead - "what is my market share?" → use default mode (sentiment_score is a side column) - "which brands have best sentiment?" → use default mode or sentiment_by_brand=true brand_sentiment_trend=true returns per week: - time_period_date: week start date - sentiment_score: 1-10 democratic weekly score - positive_count, neutral_count, negative_count: raw mention totals - total_sentiment_count: sum of all sentiment mentions Use latest_only=false to get multi-week trend (default for this mode). Use latest_only=true for current week only. Example: "Show me how my brand sentiment is trending" → brand_sentiment_trend=true, latest_only=false Example: "What is my brand sentiment score this week?" → brand_sentiment_trend=true, latest_only=true

collection_frequencystring

Filter by collection cadence. Comma-separated for multiple. - DAILY: Daily collection - WEEKLY: Weekly collection

Options:DAILYWEEKLY
collection_frequency_breakdownboolean

Include collection frequency column and grouping when true.

competitors_onlyboolean

When true, only return competitor brands.

Default: False
end_datestring

End date of the time period (optional). Note - Results are automatically limited to the most recent 7 days ending on this date, regardless of start_date.

include_sentiment_sourcesboolean

DO NOT USE for basic sentiment questions like "show positive/negative counts". ONLY use when user explicitly asks about which SOURCES or DOMAINS gave positive/negative sentiment. For questions like: - "What's the sentiment breakdown?" → DON'T use (summary counts are enough) - "How many positive mentions?" → DON'T use (summary counts are enough) - "Which sources gave negative sentiment?" → USE this - "What domains have positive sentiment?" → USE this

Default: False
include_snippetsboolean

Adds text snippets/quotes to sentiment_sources array. REQUIREMENTS: Must use sentiment_by_brand=true AND include_sentiment_sources=true. Does NOT work with sentiment_by_source mode. Use when user asks for: quotes, examples, "what are people saying", actual text, WHY sentiment is positive/negative. CORRECT usage: sentiment_by_brand=true, include_sentiment_sources=true, include_snippets=true WRONG (snippets will be missing): sentiment_by_source=true, include_snippets=true WARNING: Makes response very large. Use sparingly.

Default: False
intentstring

Filter by intent(s). Supports comma-separated values. Single: intent="Informational" Multiple: intent="Informational,Transactional"

intent_performanceboolean

When true, returns brand coverage % per intent. TOOL DISAMBIGUATION — both ai_brand_insights and ai_citation_insights have this mode: - ai_brand_insights (THIS tool): measures BRAND MENTION coverage "What % of prompts per intent mention my brand?" - ai_citation_insights: measures WEBSITE CITATION coverage "What % of prompts per intent cite my website?" Route to THIS tool (ai_brand_insights) when user says: - "brand", "mentioned", "brand visibility", "brand mentions" - "intent performance for [brand name]" - "how often is my brand mentioned by intent" Route to ai_citation_insights when user says: - "website", "websites", "cited", "citation", "pages", "URL", "site" - "intent performance for [website name]" - "which intents cite my website" WHEN AMBIGUOUS (user says only "intent performance over time" with no website/brand signal): ASK: "Do you want intent performance by website citations (how often your site is cited) or by brand mentions (how often your brand name is mentioned)?" DO NOT use intent_share=true for these questions — even if the user says "by brand" or "break it down by brand" as a follow-up. Stay in intent_performance=true and use web_property_id to scope. intent_share=true is for the MARKET SHARE path — it adds intent as a dimension to brand market share, producing large inflated counts (sums per-brand mentions across all brands, not distinct prompts for your brand). intent_performance=true returns: - intent_name: the intent category - mentioned_count: distinct prompts where your brand was mentioned - total_collected_prompts: all prompts tracked for that intent (denominator) - brand_coverage_pct: mentioned_count / total_collected_prompts × 100 ALWAYS pair with owned_only=true to scope to the user's own brands. ALWAYS pair with latest_only=true unless user asks for trend over time. Example: "Show intent performance for my brand" → intent_performance=true, owned_only=true, latest_only=true

intent_shareboolean

Include intent as a dimension in the MARKET SHARE output — adds intent_name, intent_total_mentions, and share_of_intent columns to the standard brand market share results. USE intent_share=true only when user wants: - market share broken down by intent (e.g., "which brands dominate the education intent?") - competitive share within a specific intent category DO NOT use for "intent performance" or "brand coverage by intent" questions — use intent_performance=true instead.

languagestring

Filter by language(s). Supports comma-separated values. Single: language="English" Multiple: language="English,Spanish"

language_breakdownboolean

Include language column and grouping when true.

latest_onlyboolean

When true, only return results for the most recent time period.

Default: False
localestring

Filter by locale(s). Supports comma-separated values. Single: locale="US" Multiple: locale="US,UK,CA" OMIT entirely when user asks for "all locales" or does not specify one.

locale_breakdownboolean

Include locale columns (country, description) and grouping when true.

owned_onlyboolean

When true, only return your owned brands (excludes competitors from results). MUST set owned_only=true when user phrases include: - "which topics is MY brand mentioned for" - "show topics for iShares / BlackRock / [their brand]" - "where is my brand mentioned" - "my brand's topic coverage" - "topics where I appear" LEAVE as false (default) when user wants competitive context: - "how do I compare vs competitors per topic" - "who else appears in retirement investing" - "show all brands for each topic"

Default: False
personastring

Filter by persona(s). Supports comma-separated values. Single: persona="Marketing Manager" Multiple: persona="Marketing Manager,SEO Specialist"

persona_breakdownboolean

Adds persona as a dimension to the MARKET SHARE pipeline. Use ONLY when the user wants to see brand market share split by persona (e.g. "which persona has the highest share of brand mentions across all brands?"). CRITICAL: DO NOT use for coverage/performance questions. "persona performance", "brand coverage % by persona", "how often is my brand mentioned per persona" → those all require persona_performance=true, NOT this parameter. Key difference: - persona_breakdown=true → market_share_percent (your brand's share of ALL mentions for that persona) - persona_performance=true → brand_coverage_pct (% of prompts for that persona that mention your brand) The denominator is completely different: - persona_breakdown: total_mentioned_count = all brand mentions across all brands - persona_performance: total_collected_prompts = all prompts tracked for that persona Phrase triggers that mean persona_breakdown (market share), NOT persona_performance: - "market share by persona" - "which persona drives the most brand mentions overall" - "competitive brand share per persona"

persona_performanceboolean

When true, returns brand coverage % per persona. TOOL DISAMBIGUATION — both ai_brand_insights and ai_citation_insights have this mode: - ai_brand_insights (THIS tool): measures BRAND MENTION coverage "What % of prompts per persona mention my brand?" - ai_citation_insights: measures WEBSITE CITATION coverage "What % of prompts per persona cite my website?" Route to THIS tool (ai_brand_insights) when user says: - "brand", "mentioned", "brand visibility", "brand mentions" - "persona performance for [brand name]" - "how often is my brand mentioned by persona" Route to ai_citation_insights when user says: - "website", "websites", "cited", "citation", "pages", "URL", "site" - "persona performance for [website name]" - "which personas cite my website" WHEN AMBIGUOUS (user says only "persona performance over time" with no website/brand signal): ASK: "Do you want persona performance by website citations (how often your site is cited) or by brand mentions (how often your brand name is mentioned)?" DO NOT use persona_breakdown=true for these questions — even if the user says "by brand" or "break it down by brand" in a follow-up. If the conversation is already about persona performance / coverage %, stay in persona_performance=true mode and use web_property_id to scope to specific brands. persona_breakdown=true is for the MARKET SHARE path — it adds persona as a dimension to brand market share, producing inflated counts (sums per-brand mentions, not distinct prompts for your brand). persona_performance=true returns: - persona_name: the audience persona - mentioned_count: distinct prompts where your brand was mentioned - total_collected_prompts: all prompts tracked for that persona (denominator) - brand_coverage_pct: mentioned_count / total_collected_prompts × 100 ALWAYS pair with owned_only=true to scope to the user's own brands. ALWAYS pair with latest_only=true unless user asks for trend over time. Example: "Show persona performance for my brand" → persona_performance=true, owned_only=true, latest_only=true

promptstring

Filter by tracked prompt text. MUST use exact parameter name "prompt". Example: prompt="best seo tools"

prompt_breakdownboolean

Include prompt column and grouping when true.

prompt_statusstring

Filter by prompt/query status. Comma-separated for multiple. - "ACTIVE": Only active prompts (default) - "INACTIVE": Only inactive prompts - "ACTIVE,INACTIVE": Both (matches UI default)

Default: ACTIVE
prompt_typestring

Filter by prompt type (branded vs unbranded prompts). - "branded": Shows only prompts that include a brand name - "unbranded": Shows only generic/non-branded prompts - Omit parameter to show all prompts

Options:brandedunbranded
search_enginestring

Filter by AI search engine(s). Supports comma-separated values for multiple engines. Values: "gemini", "chatgpt", "perplexity", "google aio", "google ai mode", etc. Single: search_engine="perplexity" Multiple: search_engine="perplexity,gemini,google aio" OMIT entirely (do not pass this parameter) when user asks for "all search engines" or does not specify one. DO NOT make separate calls per search engine — one call with no filter covers all engines.

search_engine_breakdownboolean

Include search engine name column and grouping when true.

sentiment_by_brandboolean

USE THIS when the user wants a sentiment BREAKDOWN — positive vs negative counts, score per brand, or sentiment filtered to specific categories. This is the "what IS my sentiment?" mode. KEY SIGNALS to use this mode: - Words: "positive", "negative", "breakdown", "how positive", "what % is positive" - "what is my brand sentiment?" (snapshot, not trend) → sentiment_by_brand - "sentiment for [specific brand]" → sentiment_by_brand - "quotes", "what are people saying" → sentiment_by_brand + include_sentiment_sources + include_snippets - NOTE: sentiment_categories is just a filter — "Ethics sentiment" alone does NOT signal this mode. Use trend keywords (over time, trending) vs breakdown keywords (positive, negative, score) to decide. DO NOT use when user says "over time", "trending", "improving", "week by week" → use brand_sentiment_trend instead. DO NOT use when primary question is market share/rankings → default mode already includes sentiment score. Returns per-BRAND: - brand_sentiment_score (1-10) - positive_count, neutral_count, negative_count, total_sentiment_count - positive_pct, neutral_pct, negative_pct - sentiment_sources array (when include_sentiment_sources=true) with optional snippets Examples: - "What's the sentiment for BlackRock?" → sentiment_by_brand=true - "How many positive mentions does each brand have?" → sentiment_by_brand=true - "What is my Ethics sentiment?" → sentiment_by_brand=true, sentiment_categories="ethics" - "How is my Ethics sentiment trending over time?" → brand_sentiment_trend=true, sentiment_categories="ethics", latest_only=false - "What are people saying about my brand?" → sentiment_by_brand=true, include_sentiment_sources=true, include_snippets=true - "Show me actual quotes" → sentiment_by_brand=true, include_sentiment_sources=true, include_snippets=true

Default: False
sentiment_by_sourceboolean

USE THIS when user asks about SOURCES, DOMAINS, or WHERE sentiment comes from. DO NOT use sentiment_by_brand for source questions - they are DIFFERENT modes. NOTE: This mode does NOT support snippets/quotes. For quotes, use sentiment_by_brand mode instead. Returns per-SOURCE (domain) breakdown like g2.com, reddit.com, forbes.com: - source: domain name (e.g., "g2.com", "reddit.com") - positive_count, neutral_count, negative_count, total_count - pct_of_positive: what % of ALL positive statements came from this source (pre-computed, use directly) - pct_of_negative: what % of ALL negative statements came from this source (pre-computed, use directly) IMPORTANT: Use pct_of_positive and pct_of_negative directly from the response — do NOT recompute percentages from raw counts. positive_count/total_count is a different metric (within-source rate). MUST USE for these questions: - "sources of my sentiments" → sentiment_by_source=true - "which sources have negative sentiment?" → sentiment_by_source=true - "what domains give positive sentiment?" → sentiment_by_source=true - "where is sentiment coming from?" → sentiment_by_source=true - "top sources with positive/negative sentiment" → sentiment_by_source=true

Default: False
sentiment_categoriesstring

Filter by sentiment category/categories. Supports comma-separated values for multiple categories. Categories are DYNAMIC and vary by account - use sentiment_categories_only=true to discover them. Single: sentiment_categories="quality" Multiple: sentiment_categories="experience,health,popularity,price" Default (empty) includes all available categories for the account.

sentiment_categories_onlyboolean

Discovery mode - returns ONLY a list of available sentiment categories for this account. Use this FIRST to discover what sentiment categories exist, then use sentiment_categories parameter to filter. Returns simple array: [{"sentiment_category": "quality"}, {"sentiment_category": "price"}, ...] IMPORTANT: Cannot be combined with other mode switches or filters. When true, ignores all other parameters except account_id. Workflow: 1. Call with sentiment_categories_only=true -> get [{sentiment_category: "ethics"}, ...] 2. Call again with sentiment_categories="ethics, experience" -> filtered results

Default: False
source_levelstring

Controls the granularity of source grouping in sentiment_sources array: - "domain" (default): Groups by root domain (e.g., "conductor.com") - matches UI behavior - "subdomain": Groups by subdomain (e.g., "www.conductor.com", "blog.conductor.com") - "url": Full URL detail (e.g., "https://www.conductor.com/blog/seo-guide") OMIT this parameter unless the user explicitly asks for subdomain or URL level detail. Default (domain) is always used when omitted — do NOT pass source_level="domain" explicitly.

Options:domainsubdomainurl
Default: domain
start_datestring

Start date of the time period (optional, ignored - calculated as end_date minus 6 days)

top_ninteger

Controls how many brands are returned per time period in market share mode. Defaults to 10. Use a higher value (e.g. top_n=25 or top_n=100) when the user asks for "top 25 brands", "show all brands", or "top 100". Not applicable to sentiment_by_brand or sentiment_by_source modes.

Default: 10
top_sourcesinteger

Limits sentiment_sources array to top N sources by mention count. Only relevant when include_sentiment_sources=true.

Default: 10
topicstring

Filter by topic(s). Supports comma-separated values for multiple topics. Single: topic="SEO Tools" Multiple: topic="SEO Tools,ai content optimization"

topic_breakdownboolean

Include topic name column and grouping when true. When topic_breakdown=true, the response includes two share metrics: - share_of_topic: Brand's share WITHIN that specific topic (e.g., 57% of "Retirement Investing" mentions). THIS is the primary metric to present to users when they ask about topics. - market_share_percent: Brand's share of ALL mentions across ALL topics (global view). This is a secondary/context metric - do NOT present it as "topic market share". RULE: When the user asks "which topics is MY brand mentioned for" or "show my brand's topic coverage": - Always add owned_only=true to show only their brands per topic. - Present share_of_topic as the headline metric, not market_share_percent. RULE: When the user asks for competitive comparison within topics (e.g., "how do I compare vs competitors per topic"): - Omit owned_only (default false) to show all brands per topic. - Still present share_of_topic as the primary metric.

topic_statusstring

Filter by topic/campaign status. Comma-separated for multiple. - "ACTIVE": Only active topics (default) - "INACTIVE": Only inactive topics - "ACTIVE,INACTIVE": Both (matches UI default)

Default: ACTIVE
tracked_brands_onlyboolean

MUST use exact parameter name "tracked_brands_only". - true (default): Shows all brands (excludes products) - matches UI behavior - false: Shows ALL mentions including products Example: tracked_brands_only=true

Default: True
web_property_idstring

Optional. Comma-separated WPG IDs to scope brand attribution. If the user asks about multiple web properties, pass ALL their IDs together as a single comma-separated value in ONE call — e.g. "147878,147877". NEVER make separate calls per WPG and combine the results.

Ai Citation Insights

ai_citation_insights
Full Description

Citation market share analysis across AI search engines

Parameters (1 required, 28 optional)
Required
account_idinteger

Required. Single account ID to query data for.

Optional
citation_domain_labelstring

Filter by domain label for drill-down mode (when url_drilldown=true). Use exact labels from marketshare results: - Aggregated labels: "Olay Websites", "Your Comparisons", "Your Websites" - Specific domains: "mastercard.com", "olay.com" REQUIRED when url_drilldown=true.

citation_granularitystring

REQUIRED PARAMETER NAME: "citation_granularity" (NOT "group_by" or any other name) Controls marketshare aggregation level AND drill-down label matching: - "domain": Groups by root domain (e.g., "hsbc.co.uk") - DEFAULT Labels: "Olay Websites", "Your Comparisons", "mastercard.com" - "subdomain": Groups by subdomain (e.g., "www.hsbc.co.uk", "business.hsbc.co.uk") Labels: "www.mastercard.com", "b2b.mastercard.com", "stripe.com" CRITICAL FOR DRILL-DOWN: Must use SAME granularity for both marketshare and drill-down: - Domain marketshare → Domain drill-down (citation_domain_label='Olay Websites') - Subdomain marketshare → Subdomain drill-down (citation_domain_label='www.mastercard.com') Infer from user intent: - "domain marketshare" / "by domain" → use "domain" - "subdomain marketshare" / "by subdomain" → use "subdomain"

Options:domainsubdomain
Default: domain
competitors_onlyboolean

Only show competitor websites.

Default: False
end_datestring

End date (optional). Data limited to 7 days ending on this date.

intentstring

Filter by intent(s). Supports comma-separated values. Example: intent="Informational,Transactional"

intent_breakdownboolean

Include intent column in results for grouping.

Default: False
intent_performanceboolean

Enable Intent Performance Over Time mode. Returns citation coverage % per intent — how often your WEBSITE is CITED for prompts of each intent type. Matches the UI "Intent Performance Over Time — By Website Coverage" sub-mode. TOOL DISAMBIGUATION — both ai_citation_insights and ai_brand_insights have this mode: - ai_citation_insights (THIS tool): measures WEBSITE CITATION coverage "What % of prompts per intent cite my website?" - ai_brand_insights: measures BRAND MENTION coverage "What % of prompts per intent mention my brand?" Route to THIS tool (ai_citation_insights) when user says: - "website", "websites", "cited", "citation", "pages", "URL", "site" - "intent performance for [website name]" - "which intents cite my website" - "website coverage by intent" Route to ai_brand_insights when user says: - "brand", "mentioned", "brand visibility", "brand mentions" - "intent performance for [brand name]" WHEN AMBIGUOUS (user says only "intent performance over time" with no website/brand signal): ASK: "Do you want intent performance by website citations (how often your site is cited) or by brand mentions (how often your brand name is mentioned)?" Typical params: intent_performance=true, owned_only=true, latest_only=true (or latest_only=false for multi-week trend). Disambiguation vs intent_breakdown: - intent_breakdown=true → adds intent as a dimension to market share (competitive view) - intent_performance=true → citation coverage % per intent (visibility view)

Default: False
languagestring

Filter by language(s). Supports comma-separated values. Example: language="English"

language_breakdownboolean

Include language column in results for grouping.

Default: False
latest_onlyboolean

Only show the most recent time period.

Default: True
localestring

Filter by locale/market. Defaults to "United States".

locale_breakdownboolean

Include locale columns in results for grouping.

Default: False
owned_onlyboolean

Only show your owned websites.

Default: False
personastring

Filter by persona(s). Supports comma-separated values. Example: persona="Marketing Manager"

persona_breakdownboolean

Include persona column in results for grouping.

Default: False
persona_performanceboolean

Enable Persona Performance Over Time mode. Returns citation coverage % per persona — how often your WEBSITE is CITED for prompts tracked for each persona. Matches the UI "Persona Performance Over Time — By Website Coverage" sub-mode. TOOL DISAMBIGUATION — both ai_citation_insights and ai_brand_insights have this mode: - ai_citation_insights (THIS tool): measures WEBSITE CITATION coverage "What % of prompts per persona cite my website?" - ai_brand_insights: measures BRAND MENTION coverage "What % of prompts per persona mention my brand?" Route to THIS tool (ai_citation_insights) when user says: - "website", "websites", "cited", "citation", "pages", "URL", "site" - "persona performance for [website name]" - "which personas cite my website" - "website coverage by persona" Route to ai_brand_insights when user says: - "brand", "mentioned", "brand visibility", "brand mentions" - "persona performance for [brand name]" WHEN AMBIGUOUS (user says only "persona performance over time" with no website/brand signal): ASK: "Do you want persona performance by website citations (how often your site is cited) or by brand mentions (how often your brand name is mentioned)?" Typical params: persona_performance=true, owned_only=true, latest_only=true (or latest_only=false for multi-week trend). Disambiguation vs persona_breakdown: - persona_breakdown=true → adds persona as a dimension to market share (competitive view) - persona_performance=true → citation coverage % per persona (visibility view)

Default: False
promptstring

Filter by prompt text. Use exact parameter name "prompt". Example: prompt="best seo tools"

prompt_breakdownboolean

Include prompt column in results for grouping.

Default: False
prompt_typestring

Filter by prompt type (branded vs unbranded prompts). - "branded": Shows only prompts that include a brand name - "unbranded": Shows only generic/non-branded prompts - Omit parameter to show all prompts

Options:brandedunbranded
search_enginestring

Filter by AI search engine(s). Supports comma-separated values. Values: "gemini", "chatgpt", "perplexity", "google aio" Example: search_engine="chatgpt,perplexity"

search_engine_breakdownboolean

Include search engine column in results for grouping.

Default: False
start_datestring

Start date (optional, ignored - calculated as end_date minus 6 days).

top_ninteger

Number of top citations to return per time period.

Default: 10
topicstring

Filter by topic(s). Supports comma-separated values. Example: topic="SEO Tools,Content Marketing"

topic_breakdownboolean

Include topic column in results for grouping.

Default: False
url_drilldownboolean

Enable URL drill-down mode to see which prompts cite specific URLs for a domain/label. WORKFLOW: 1. First call: Get domain marketshare (citation_granularity="domain") 2. Second call: Drill-down into specific domain (url_drilldown=true + citation_domain_label="Olay Websites") Returns: Prompts grouped with their cited URLs for the specified domain/label. - Each row represents ONE prompt - pages_cited: Count of unique URLs cited from this domain - cited_urls: Array of URL objects with WPG attributions - Results sorted by pages_cited DESC (prompts citing most URLs first) Automatically enables prompt_breakdown when true. REQUIRED: Must specify citation_domain_label when url_drilldown=true.

Default: False
web_property_breakdownboolean

Include web property ID column in results for grouping.

Default: False
web_property_idstring

Optional. Comma-separated WPG IDs to scope attribution and topic tracking. IMPORTANT: Accounts with multiple markets (e.g. UK, DE, US) have separate WPGs per market. Without this filter, ALL account WPGs compete for attribution, which can produce incorrect owned labels (e.g. "BlackRock DE Websites" when the user asked about UK). If the user asks about multiple web properties (e.g. "BlackRock UK and iShares UK"), pass ALL of their IDs together as a single comma-separated value in ONE call — e.g. web_property_id="147878,147877". NEVER make separate calls per WPG and combine the results — this splits owned attribution and breaks aggregation. If account_info shows multiple WPGs and the user has not specified which ones, ASK which web property / market they want before running the query. Available WPGs and their IDs are in the account_info context.

Tracked Configs

tracked_configs
Full Description

Discovery endpoint for account tracking configuration — topics, prompts, search engines, locales, brands, web properties, sentiment categories, personas, and intents

Parameters (1 required, 8 optional)
Required
config_typestring

Required. What type of configuration to retrieve: START HERE (no account_id needed): - "what accounts do I have?" → accounts - "what accounts can I access?" → accounts - "list my accounts" → accounts - "switch to account 30721" → {config_type: accounts, account_id: 30721} - "use account X" (numeric ID) → {config_type: accounts, account_id: X} - "switch to the Mastercard account" → accounts + account_name="Mastercard" DISCOVERY / "what do I have?" questions (account_id required): - "what topics do I have?" → topics - "what prompts are configured?" → prompts - "show me topics and their prompts" → topics_with_prompts - "what prompts are under each topic?" → topics_with_prompts - "list all topics with prompts" → topics_with_prompts - "show me prompts for topic X" → prompts with topic="X" - "what prompts are under ai search?" → prompts with topic="ai search" - "what websites am I tracking?" → web_properties - "what AI search engines am I tracking?" → search_engines - "what locations am I tracking?" → locales - "what brands am I tracking?" → brands - "what sentiment categories exist?" → sentiment_categories - "what personas do I have?" → personas - "what intents are configured?" → intents - "give me an overview of my account setup" → summary PRE-FILTER validation (call before other endpoints): - Before filtering ai_brand_insights by topic → config_type: topics (get exact names) - Before filtering by brand → config_type: brands (get exact brand names) - Before filtering by locale → config_type: locales (get exact locale codes/names) - Before filtering by search_engine → config_type: search_engines - Before filtering by sentiment_categories → config_type: sentiment_categories

Options:accountstopicspromptstopics_with_promptsweb_propertiessearch_engineslocalesbrandssentiment_categoriespersonasintentssummary
Optional
account_idinteger

Dual purpose depending on config_type: 1. For all config types EXCEPT accounts: REQUIRED. Scopes the query to that account's data. If you don't know the account_id, call config_type: accounts first. 2. For config_type: accounts (OPTIONAL): filters the accounts list to verify or switch to a specific account. Use when the user provides an account ID. CRITICAL PROTOCOL — when user says "switch to account X" or "use account X" (X is a number): → Call with {config_type: "accounts", account_id: X} → DO NOT assume account doesn't exist because X is a small number or not in browse list → Empty results = not found / no access; data returned = exists, switch to it → The browse list (no account_id) is capped at 100 — NOT sufficient for specific lookups

account_namestring

ACCOUNT SEARCH BY NAME (config_type: accounts only). Case-insensitive. Partial match by default; exact match when account_name_exact: true. QUOTING CONVENTION — infer match mode from how the user types the name: - Unquoted → partial match (LIKE) e.g. "find IBM accounts" or "do I have a Bed Bath account?" - In quotes → exact match e.g. "switch to \"Bed Bath & Beyond\"" Examples: - find IBM accounts → {account_name: "IBM"} - do I have a Bed Bath account? → {account_name: "Bed Bath"} - switch to "Bed Bath & Beyond" → {account_name: "Bed Bath & Beyond", account_name_exact: true} - use "IBM: Hilton" → {account_name: "IBM: Hilton", account_name_exact: true} If partial search returns multiple results, list them and ask which one to use.

account_name_exactboolean

When true, switches account_name from partial LIKE to exact case-insensitive equality. Set automatically when the user provides the name in quotes.

limitinteger

Max rows to return for topics, prompts, and topics_with_prompts. Defaults to 100. ALWAYS tell the user "showing top 100" when returning results at the default limit. If the user asks to see more, increase limit up to 200 maximum. If results are capped, suggest using topic= filter to narrow down to a specific topic.

Default: 100
prompt_statusstring

Filter prompts by status. Defaults to ACTIVE,INACTIVE (show all configured prompts). - "ACTIVE": Only active prompts - "INACTIVE": Only paused/inactive prompts - "ACTIVE,INACTIVE": Both (default)

Default: ACTIVE,INACTIVE
topicstring

Optional. Filter prompts or topics_with_prompts by topic name. Supports comma-separated values for multiple topics. Use this to scope down large accounts — e.g. topic="ai search,seo tools" to see only prompts under those topics. Get exact topic names first via config_type=topics.

topic_statusstring

Filter topics by status. Defaults to ACTIVE,INACTIVE (show all configured topics). - "ACTIVE": Only active/running topics - "INACTIVE": Only paused/inactive topics - "ACTIVE,INACTIVE": Both (default)

Default: ACTIVE,INACTIVE
web_property_idstring

Optional. Comma-separated WPG IDs to scope results to specific web properties. Leave blank to include all WPGs for the account.