How the tools work together
Most conversations start with the discovery tools, then move into reports. Here’s what that typically looks like:1
Confirm access
Ask what data you can see. The assistant confirms the signed-in user, available organizations, regions, and entitlements with
whoami.2
Find the right scope
Ask about the brand or site you care about. The assistant resolves it with
list_organizations, then list_categories for visibility reports or list_domains for traffic reports.3
Add optional filters
Ask to narrow the question to a market, AI engine, prompt set, topic, or tag. The assistant resolves those filters with
list_regions, list_models, list_tags, list_topics, and list_prompts.4
Run a report
Ask about what you want reported. The assistant retrieves visibility, sentiment, citations, prompt answers, shopping, prompt volume, referrals, or bot crawl data for the date range you name.
Behavior and safety
All tools are read-only. They retrieve analytics data, but don’t create, update, or delete anything in Profound.
All report tools set the following MCP hints:
Dates are ISO 8601 strings in
YYYY-MM-DD format. Reports validate start_date and end_date and return an actionable error if the date window is invalid.
Visibility reports
These tools are scoped to acategory_id and a date range. Use them to understand how brands appear in AI answers, both in regular text answers and in shopping mode results.
Brand visibility reports
Use these tools to understand how brands appear in AI answers, how those answers feel, how accurate they are, and which sources AI engines cite.get_visibility_report
get_visibility_report
Measures how often and how prominently a brand appears in AI answers for a category over a date range.Example prompts:
- “How visible were we in AI answers last month, broken down by model?”
- “Are we gaining or losing visibility against competitors this quarter?”
visibility_score. The other metrics are share_of_voice and average_position.visibility_score is a raw decimal. Multiply it by 100 to match the percentage the Profound platform shows, so 0.42 is 42%.InputsNotes:
- Every row carries an
assetobject of{name, owned}. Results are always grouped by brand as well as bygroup_by, so you get one row per brand per bucket. limitcaps top-level groups rather than rows, so a grouped query returns more rows than the limit you set.
get_sentiment_report
get_sentiment_report
Measures the sentiment AI answers express about one brand or competitor in a category over a date range, or the sentiment of the pages those answers cite.Example prompts:
- “How do AI answers feel about our pricing?”
- “Which cited pages are most negative about our brand?”
source selects which.InputsNotes:
citation_category,page_contains,citation_sort_by, andcitation_sort_directionare available only whensourceiscitation, and return an error otherwise.- Filters narrow results, and never group them. When
sourceiscitation, themodelchanges which pages qualify and their citation share, but the sentiment is still for the page, not for the model.
get_citations_report
get_citations_report
Shows which sources AI engines cite for a category, and how often, over a date range.Example prompts:Inputs
- “Which sites do AI engines cite most in our category?”
- “How often do AI answers cite our own domain?”
count and citation_share. count is raw citation frequency, and citation_share is averaged per AI model so it stays comparable across models.With no group_by, each row is one cited domain, ranked most cited first. Use that default to find which sites AI engines cite most.group_by: ["page"] returns one row per cited page and can’t be combined with scope: "owned" or domain_filter, which both narrow to a domain.Notes:
- Every row carries a
rank, where1is the most cited.first_cited_atis returned on page rows only. limitcaps top-level groups rather than rows, so a grouped query returns more rows than the limit you set.
get_prompt_answers
get_prompt_answers
Retrieves the answers AI engines gave for a category’s prompts over a date range: the raw text behind the visibility metrics.Example prompts:
- “What did AI engines answer for our savings prompts last week?”
- “Pull the answers behind last month’s visibility drop.”
Notes:
- Several IDs in one list match any of those IDs. When both inputs are set, an answer has to match both.
- Filters apply before pagination, so a filtered call pages through matching answers only.
get_factcheck_report
get_factcheck_report
Reports how accurately AI answers describe a category over a date range: the FactCheck score, its trend, and the accurate and inaccurate counts behind it.Example prompts:
- “What’s our FactCheck score for last month?”
- “Is accuracy improving, and which models are least accurate?”
accuracy, accurate, and inaccurate. With no group_by, the report returns the headline score for the category.InputsNotes:
- FactCheck is scoped to a category, so there’s no brand or competitor input.
- Filters match names exactly.
topic_negateapplies totopiconly, and leaves the other filters narrowing as usual.
get_factcheck_claims
get_factcheck_claims
Lists the inaccurate claims AI answers made about a category over a date range.Example prompts:
- “Which inaccurate claims came up in our category last month?”
- “What’s the evidence behind the most common inaccurate claim, and which pages are cited for it?”
Notes:
group_bytakes one value, andgroup_by: ["tag"]can’t be combined with atagfilter. Grouping by date, citation, or claim isn’t supported.citation_sourcesadds the pages cited for each claim, so it can’t be combined withgroup_by, andlimithas to be 5 or less. A higher limit returns an error instead of being reduced automatically.- The
includevalues add why each claim is inaccurate, which models repeated it, and which pages are cited for it. Those values can be combined, so one ungrouped call can return a claim’s theme, reasoning, models, evidence, and citation sources together. - For the score, its trend, or accurate and inaccurate counts, use
get_factcheck_reportinstead.
Legacy visibility and citations reports
get_visibility_report and get_citations_report each have an earlier version that returns the legacy response shape: rows as positional values, grouped with dimensions rather than group_by, and without the scope and assets brand scoping. Both remain available for integrations built against the earlier shape.
These tools take a half-open date window:
start_date is inclusive and end_date is exclusive. To cover all of April 2026, pass start_date: 2026-04-01 and end_date: 2026-05-01. The current tools treat both ends as inclusive, so the same dates cover a different window.get_visibility_report_v1
get_visibility_report_v1
Measures how often and how prominently a brand appears in AI answers for a category over a date range, and returns the legacy response shape. For new integrations, use
get_visibility_report instead.Default metric: visibility_score.Other useful metrics include share_of_voice, mentions_count, executions, and average_position. Useful dimensions include date, region, topic, model, prompt, tag, persona, and asset_name.InputsNotes:
visibility_scoreis a raw decimal. Multiply it by 100 to match the percentage the Profound platform displays.- Without an asset filter or
asset_nameindimensions,visibility_scoreis summed across every tracked brand in the category, so the total can exceed 1. To scope the report to one brand, passasset_filteror addasset_nametodimensions.
get_citations_report_v1
get_citations_report_v1
Shows which sources AI engines cite for a category, and how often, over a date range, and returns the legacy response shape. For new integrations, use Inputs
get_citations_report instead.Default metrics: count and citation_share. Dimensions include hostname, path, root_domain, url, model, topic, prompt, tag, and persona.root_domain_filter must be paired with dimensions: ["root_domain"].Shopping visibility reports
Shopping analysis data is currently available only for ChatGPT.
get_shopping_brands_report
get_shopping_brands_report
Measures how often each brand appears when ChatGPT returns shopping results. This is the shopping counterpart to
get_visibility_report.Example prompts:- “Which brands appear most in ChatGPT shopping results for our category?”
- “How does our shopping visibility compare to competitors, day by day?”
Notes:
- Every row carries an
assetobject of{name, owned}, and asset is always an implicit grouping key: results are one row per asset and group-by bucket.
get_shopping_products_report
get_shopping_products_report
Measures individual product visibility inside AI shopping results, one row per product plus any group-by bucket.Example prompts:
- “How visible are our products in ChatGPT shopping results?”
- “Where is our flagship product sold, and at what price?”
Notes and tips:
- The default metrics are
visibility_score,average_position,visibility_rank,position1_percentage,position2_percentage,position3_percentage,position_above3_percentage,product_rating, andproduct_num_reviews. - The
positionmetrics are how your assistant tells “always shown, always fourth” from “sometimes shown first”. Each one is a raw 0–1 fraction of the product’s appearances at that slot, and together they sum to about 1, so 0.30 is 30%. include_merchantsmode accepts nogroup_byortarget_product, and the position-frequency metrics aren’t available in it.
get_shopping_merchants_report
get_shopping_merchants_report
Measures which retailers appear in a category’s shopping results.Example prompt:
- “Which retailers does ChatGPT surface for our category?”
The
view input decides what each row represents and which metrics are available.Each view accepts its own metrics, and the server rejects anything outside the set:
Notes and tips:
- This report has no merchant or product filter, so you can’t narrow the results to one retailer. Instead, narrow by topic, region, persona, prompt, or tag, then look up the retailer you care about in the returned rows.
- The
info.viewmetadata field names the view the server applied.viewis optional and defaults todistribution, so if the rows don’t look like what you expected, checkinfo.viewto see which view produced them.
get_shopping_trigger_rate_report
get_shopping_trigger_rate_report
Measures how often prompts return shopping mode results. This is the denominator behind the other shopping reports, the assistant can use it to explain a thin or empty result.Example prompts:
- “How often do our prompts trigger shopping mode results?”
- “Which topics trigger shopping mode most often?”
Notes and tips:
- The default metrics are
total_runs,shopping_triggered_runs, andtrigger_rate_percentage. - Despite its name,
trigger_rate_percentageis a decimal fraction between 0 and 1, so 0.17 means 17%. - Group results by
promptortopicto see which prompts or topics trigger shopping results most often. Those are the places where shopping visibility is worth optimizing.
Prompt volume reports
These tools measure demand for a keyword across everything people ask AI platforms. Ask about one keyword at a time; the assistant makes one call per keyword. To see how you appear in the prompts you track, ask for a visibility report instead.When the assistant reports no estimate for a keyword, that doesn’t mean nobody asks about it. Either nothing matched the keyword in that date range, or every slice had two or fewer distinct users and Profound removed it for privacy.
get_prompt_volume
get_prompt_volume
Measures projected weekly and monthly volume for a keyword, by country and platform.Example prompts:
- “How many people asked ChatGPT about running shoes last month?”
- “Is demand for ‘project management software’ going up this quarter?”
- Figures come back as weekly and monthly projections, one per country and platform. Weekly figures are dated by the Monday of that week, and monthly figures by the first day of the month. A monthly figure exists only for a calendar month that falls fully inside the date range you ask about, never the current month, so a question about this month gets weekly figures only. A monthly figure isn’t the sum of its weeks, because a week that crosses a month boundary is split between the two months. When you need a monthly number, ask for one rather than adding up weeks.
- A broad question, such as every country and platform over several months, can exceed the 10,000-row limit. The assistant then gets incomplete totals and
info.truncatedset totrue. Narrow the question to a country, a platform, or a shorter date range to get complete figures. - Each new keyword counts toward your organization’s limit of 1,000 distinct keywords per UTC day. Asking again about a keyword you already looked up that day doesn’t count. If you reach the limit, wait and ask about the same keyword again. Rephrasing it uses more of the allowance.
get_prompt_volume_intents
get_prompt_volume_intents
Measures the share of conversations about a keyword that fall under each intent, so you can tell whether people are researching or ready to buy. It doesn’t measure how many people ask;
get_prompt_volume does.Example prompts:- “Are people researching CRM software or ready to buy?”
- “What intents drive AI conversations about electric bikes?”
pct_conversation, so 0.42 is 42%. Shares across all intents add up to 100%. Where an intent has subcategories, each subcategory is its own row (main_classification plus sub_category_classification), and the share for the main intent is the sum of its subcategories.Inputs- Asking about intents doesn’t count toward the daily keyword limit, but it shares a burst limit with
get_prompt_volume. If the assistant is rate-limited, asking about the same keyword again a little later works.
Traffic reports
These tools are scoped to a tracked domain, not a category. The assistant resolves the domain withlist_domains first and passes the exact hostname Profound returns.
get_referrals_report
get_referrals_report
Measures visits a domain received from AI engines, such as ChatGPT and Perplexity, over a date range.Default metric:
visits. Useful dimensions include referral_type, referral_source, and date.Inputsget_bots_report
get_bots_report
Measures AI crawler activity against a domain over a date range, including bots such as GPTBot and PerplexityBot.Example prompts:
- “Which AI crawlers visit our domain?”
- “Is GPTBot crawling us more since the site update?”
count and citations. Useful dimensions include bot_provider, bot_name, bot_type, and date.InputsResources
Profound MCP also exposes read-only MCP resources: static reference material that an MCP client can load into context.
The
{term} slot accepts any slug from the glossary index, which includes the metrics and report concepts behind this page’s tools: