Trakkr
Track AI search visibility
- Category
- Marketing
- Primary Subcategory
- AI Search & LLM Visibility (AEO/GEO)
Integration details
Description
Measure how your brand appears across ChatGPT, Perplexity, Gemini, Claude, and other AI search experiences. Review visibility trends, model performance, citation gaps, competitors, research, and prioritized actions using your existing Trakkr account.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI Search & LLM Visibility (AEO/GEO)
- Secondary Subcategories
- None listed
- Brand
- Trakkr
- Access
- Account required
- First tracked
- 2026-09-02
- Tool count
- 76
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT AI Search & LLM Visibility (AEO/GEO)
View Category76 tools agents can invoke
Add a source to the brand's knowledge base. Knowledge is the brand-truth Trakkr feeds into AI-facing content generation. Feed in a positioning doc, a product page, a founder Q&A, so generated articles and answers stay accurate. Two modes: - source_type='text': paste raw text. Needs `content` (roughly 50 to 100,000 tokens; under ~200 characters is rejected as too short). - source_type='url': ingest a web page. Needs `url` (http/https). The page is fetched and its text extracted server-side. Processing is async. The call returns fast with status='pending'; the source is then chunked and embedded in the background. Poll get_knowledge(brand_id, view='sources') until status is 'ready' (or 'error'). Duplicate content (same text already added) is rejected. Args: brand_id: The brand to add knowledge to (required). source_type: 'text' or 'url' (required). content: The raw text. Required when source_type='text'. url: The page URL. Required when source_type='url'. name: Optional display name. Defaults to a derived label or the page title.
add_knowledge
Compare multiple brands side by side. Built for agency / pitch workflows — show how a prospect stacks up against their competitors, or how two client brands compare. Returns a per-brand row of the requested metrics across the same date window. Args: brand_ids: 2-10 brand IDs to compare (required). days: Window for time-bounded metrics, 7-365. Default 30. metrics: Optional list of metrics to include. Available: 'visibility', 'citations', 'actions'. Default: all of them.
compare_brands
Compare visibility between two time periods. Generates a comparison showing how the brand's AI visibility changed between a baseline period and a comparison period. Useful for measuring the impact of content changes or campaigns. Args: brand_id: The brand to compare (required). baseline_start: Start of baseline period (YYYY-MM-DD). baseline_end: End of baseline period (YYYY-MM-DD). comparison_start: Start of comparison period (YYYY-MM-DD). comparison_end: End of comparison period (YYYY-MM-DD).
compare_reports
Decide on one suggestion: commit it, dismiss it, or snooze it. Committing turns a suggestion into tracked work AND freezes how it will be measured, which is what makes a before/after result possible when the window closes. Dismissing takes a reason so the pool learns. Snoozing hides it for a while and brings it back. This tool cannot grant an agent permission to do anything. Autonomy is set per brand in the product, never over the API. Args: brand_id: The brand that owns the suggestion (required). opportunity_id: The suggestion id from list_opportunity_pool. action: commit (default) | dismiss | snooze. reason: Why it was dismissed. Recommended when action='dismiss'. snooze_days: How long to hide it. Default 7.
commit_opportunity
Export visibility data as JSON or CSV. Bulk export of Trakkr data for external analysis or reporting. Args: brand_id: The brand to export (required). data_type: What to export: 'prompts', 'results', 'citations', or 'reports'. format: 'json' or 'csv'. Default 'json'. days: Lookback window, 1-365. Default 30. limit: Max rows, 1-10000. Default 1000.
export_data
Generate an AI visibility report. Creates a comprehensive report analyzing the brand's AI search visibility. Reports take 1-2 minutes to generate. Use get_reports to check status and retrieve the finished report. Args: brand_id: The brand to report on (required). report_type: 'executive' (summary), 'weekly', or 'full'. Default 'executive'. time_range: '7d', '14d', or '30d'. Default '7d'.
generate_report
Generate a brand article, grounded in its knowledge and voice. Kicks off generation and returns fast with status='queued'. The draft is written in the background (around 1 to 3 minutes) using the brand's knowledge base and writing style. Consumes one article credit; if the brand owner has none left you get a clear "no article credits remaining" error and nothing is generated. Poll get_articles(brand_id, view='detail', article_id=<id>) until status is 'draft' (or 'error'), then read `content` and `llm_score`. This never publishes. The result is a draft to review and ship from the Trakkr editor. There is no auto-publish path through MCP. Args: brand_id: The brand to write for (required). primary_prompt: The topic or query the article should win, e.g. "best project management tools for agencies" (required, 3-500 chars). secondary_prompts: Optional extra angles to cover. word_target: Target length, 300-6000. Default 2000. template_id: Optional report-template id to structure the piece.
generate_article
Get visibility breakdown by AI model. Shows how the brand performs on each AI platform individually: ChatGPT, Perplexity, Gemini, Claude, Copilot, etc. Useful for understanding which AI models mention the brand most. Args: brand_id: The brand to check (required). days: Lookback window, 7-365. Default 30. include_trends: Include trend data per model.
get_model_breakdown
Get the brand's AI Pages connection state and monthly usage. This is setup and quota, not analysis. It returns the brand (id, name, website), the AI Pages config (whether it is enabled, the domain, the platform, which features are on, which crawlers are allowed), and this month's usage (requests so far, the limit, percent used, reset date). It does NOT return positioning, strengths, weaknesses, opportunities, or themes. For how AI describes the brand use get_perception; for recommendations use get_actions. Args: brand_id: The brand to check (required).
get_prism
Get competitive ranking data in AI search results. Shows where the brand ranks relative to competitors across all tracked prompts and AI models. Useful for understanding competitive positioning. Views: - 'overall': Aggregate rankings across all prompts. - 'by-prompt': Rankings broken down per prompt. Args: brand_id: The brand to check (required). view: 'overall' or 'by-prompt'. Default 'overall'. days: Lookback window, 1-365. Default 30. view='overall' reads at most 90 days and reports what it used in days_effective. include_volume: Include search volume estimates.
get_rankings
Aggregate counts for the brand's action queue. Returns totals by status (pending / in_progress / completed / dismissed / snoozed), quick-win count, completion rate, completed-this-week, and breakdowns by category, action_type, and source. Useful as a one-shot "how does the queue look right now" call before paging through it. Args: brand_id: The brand (required).
get_action_stats
List recommended actions for a brand from Trakkr's unified queue. This is the canonical "what should the brand do" surface. Every signal in Trakkr (site audit, crawler, prompt monitoring, citations, competitors, traffic, reddit, diagnose) flows into one prioritised queue. Returns per action: title, description, detail, first_step, category, action_type, effort, impact, priority_score, priority_level, status, source, affected_models, affected_query_count, action_data (the raw supporting evidence, shape varies by action_type), and a deep_link into the app. Plus, when the action has them: family (the verb family: fix | refresh | create | earn | discuss | optimize | setup | play), page_id and page_url (the page the work is on), and result (the measured before/after outcome: verdict, summary, primary_metric, window_days, measured_at, rolled_back). result is null until the measurement window closes; get_results lists measured results on their own. Common recipes: - AI-search technical audit: get_actions(brand_id, source="site_audit,crawler_monitoring", category="technical") - Crawler analyst view: get_actions(brand_id, lens="crawler") - Quick wins: get_actions(brand_id, quick_win=True) - Diagnose follow-ups: get_actions(brand_id, source="diagnose") Args: brand_id: The brand (required). status: 'open' (default; pending+in_progress+snoozed), 'active' (adds completed), or a literal status. category: Comma-separated. content | technical | competitive | optimization | citation | setup | reddit | diagnose. source: site_audit | crawler_monitoring | prompt_monitoring | citation_monitoring | diagnose | competitor_tracking | content_ideas | traffic_analytics | reddit | setup | manual | ai_synthesizer. action_type: Filter to one canonical action_type, e.g. 'add_llms_txt', 'add_schema_markup', 'unblock_ai_crawlers', 'fix_rendering_for_crawlers', 'create_content_for_gap'. lens: Product-lens shortcut (e.g. 'crawler' = crawler-tab view). quick_win: If true, only high-impact / low-effort actions. search: Text search across title, description, source, action_type. url: Filter to actions scoped to this URL or path. sort_by: priority_score | created_at | updated_at. sort_dir: asc or desc. limit: 1-200. Default 50. offset: Pagination offset.
get_actions
Read brand articles authored inside Trakkr. Articles are long-form pieces written in the in-app editor with real-time AI-visibility scoring. Use this to surface what's been published and pull body content for review or syndication. Views: - 'list': Paginated article list. Filter by `status`. - 'detail': Full body + metadata for one article. Requires `article_id`. Args: brand_id: The brand to inspect (required). view: 'list' or 'detail'. article_id: Required for 'detail'. status: Filter by status. standalone_only: Exclude campaign articles when true. limit: Results per page, 1-200. Default 50. offset: Pagination offset.
get_articles
Get audit issues + flagged pages for an AI-search technical audit. Returns the audit's issue list and the worst-scoring pages, mirroring what the Optimize page's Findings and Pages tabs render. Includes site-wide rollups like has_llms_txt, ai_crawler_blocked, and has_sitemap so the agent can answer "is this site set up for AI search?" in one call. Dismissals are applied. A check the customer marked intentional in Optimize comes back as status='ignored' instead of open, and stays that way across re-scans, because a dismissal is keyed on the brand, the check and the URL rather than on the audit row (audit rows are rebuilt on every scan). Pass issue_status='ignored' to list them. A check dismissed on only some of the URLs it affects stays open, since work remains on the rest. Returns status='no_audit_yet' if the brand has no completed audit. Read-only; never triggers an audit. Args: brand_id: The brand (required). audit_id: Specific audit. Defaults to the brand's latest complete audit. severity: Comma-separated. critical | high | medium | low. Default 'critical,high'. issue_status: Comma-separated. open | in_progress | fixed | ignored. Default 'open,in_progress'. check_name: Filter to issues whose check_name contains this string (e.g. 'llms_txt', 'schema', 'robots'). page_url: Filter to issues whose affected_urls contain this URL. page_type: Filter audit_pages by page_type. url_pattern: Filter audit_pages by URL substring. min_score: Min technical_score for pages (0-100). max_score: Max technical_score for pages (0-100). issues_limit: Max issues. 1-50. Default 20. pages_limit: Max pages. 1-50. Default 20.
get_audit_findings
Read the brand's knowledge base sources. Knowledge entries are the brand-truth facts (positioning lines, product details, founder quotes, etc.) that Trakkr injects into AI-facing content generation. Read-only here; authoring stays in the editor. Views: - 'sources': Knowledge sources with processing status and chunk counts. - 'stats': Aggregate source/chunk/token counts. Args: brand_id: The brand to inspect (required). view: 'sources' or 'stats'.
get_knowledge
Get narrative intelligence data. Narratives track specific topics or storylines across AI models over time. See how AI perception of key themes evolves. Requires Scale plan. Args: brand_id: The brand to check (required). narrative_id: Optional. Get a specific narrative by ID. include: Optional. Comma-separated extras: 'snapshots', 'correctives'. days: Lookback window, 7-365. Default 90.
get_narratives
Get brand perception analysis from AI models. How AI models describe, position, and talk about the brand — sentiment, themes, narrative shifts, and head-to-head perception vs competitors. Read-only. Refreshing perception is intentionally not exposed; trigger that from the dashboard. Views: - 'dashboard': Headline scores, top themes, recent shifts. - 'metrics': Detailed per-dimension scores. Pass `tracked_brand` to compare against a specific competitor. - 'story': Narrative arc — themes pulled from AI answers, grouped by direction (positive / neutral / negative) with example excerpts. - 'narrative_drift': Quarter-over-quarter shifts in how the brand is framed (theme emergence, theme decay, sentiment direction). - 'narrative': Narrative war-room view — corrective actions, themes, sources, and historical snapshots for a single named narrative. Args: brand_id: The brand to check (required). view: 'dashboard', 'metrics', 'story', 'narrative_drift', or 'narrative'. days: Lookback window, 7-365. Default 90. tracked_brand: For metrics view, compare against this competitor.
get_perception
Get citation data showing which URLs AI models cite for your brand. Citations are the source URLs that AI search engines reference in their answers. This tool shows which pages get cited, how often, and trends. Views: - 'list' (default): All citation URLs with metadata. - 'history': Citation count trends over time. - 'queries': Which search queries generate citations, clustered by topic. - 'sources': Deep dive on a specific domain (requires 'domain' param). - 'feed': Recent citation events (new, lost, changed). - 'recent': Compatibility alias for 'feed'. - 'heatmap': Citation coverage matrix across domains and brands. - 'analytics': Aggregate citation analytics and metrics. - 'detail': Detail for a specific URL (pass the URL via the 'domain' param). - 'by_model': Citation breakdown per AI model. - 'top_pages': Top cited pages ranked by frequency. Args: brand_id: The brand to check (required). view: Data view. Default 'list'. days: Lookback window, 7-365. Default 30. limit: Results per page, 1-500. Default 100. offset: Pagination offset. domain: Required when view='sources' or view='detail'. The domain or URL to analyze. days_back: view='feed' only, and rarely needed. Omit it and the feed uses `days`, capped at 30. Set it only to compare over a different window than the rest of the call. tag_ids: Comma-separated tag IDs to filter prompts. prompt_text: Filter to prompts containing this text. response_format: 'concise' (default) caps long citation lists to a readable head to protect the model's context; 'detailed' returns every row (still held under the response ceiling).
get_citations
Get competitor analysis data from AI search. Understand how you stack up against competitors across AI models. Views: - 'summary': Overview of competitive landscape. - 'arena': Prompt-by-prompt leaderboard across all competitors. - 'head-to-head': Direct comparison with one competitor (requires 'competitor' param). - 'by-model': Competitive performance broken down by AI model. - 'threats': Competitors gaining ground + opportunities where you're ahead. - 'heatmap': Competitor presence matrix across prompts and models. - 'over_time': Competitor visibility trends over time. Args: brand_id: The brand to check (required). view: Analysis view. Default 'summary'. competitor: Required for 'head-to-head' view. The competitor brand name or domain. response_format: 'concise' (default) trims wide matrices/leaderboards to a readable head to protect context; 'detailed' returns the full grid (still held under the response ceiling).
get_competitors
Get AI-generated content ideas to improve brand visibility. Returns actionable content suggestions based on citation gap analysis. Each idea includes a topic, rationale, and priority score. Args: brand_id: The brand to check (required). limit: Results per page, 1-200. Default 50. offset: Pagination offset. status: Filter by status: 'active', 'dismissed', or 'implemented'.
get_content_ideas
Get the crawler Access tab data. Returns findings, bot access matrix, robots.txt, llms.txt, and submit-to-search status in the same shape shown in the dashboard.
get_crawler_access
Get the crawler dashboard overview for a brand. Mirrors the dashboard hero and chart: setup/data state, summary metrics, time series, platform breakdown, top pages, and recent preview. Args: brand_id: The brand to check (required). range_preset: 24h, 7d, 30d, 90d, or custom. Default 30d. start_date: Required when range_preset='custom'. Format YYYY-MM-DD. end_date: Required when range_preset='custom'. Format YYYY-MM-DD. compare_to: 'none' or 'previous_period'. Default 'none'.
get_crawler_overview
Get the crawler Pages tab data. Lenses: - 'pages': individual URLs - 'paths': grouped URL paths - 'bots': normalized AI platforms Args: brand_id: The brand to check (required). range_preset: 24h, 7d, 30d, 90d, or custom. Default 30d. start_date: Required when range_preset='custom'. Format YYYY-MM-DD. end_date: Required when range_preset='custom'. Format YYYY-MM-DD. intent: all, interaction, search, or training. Default all. platform: Optional. Comma-separated platform names. search: Optional. Text to match against paths, bots, or URLs. status: Optional page/path status filter. Default all. sort_by: Optional, and the valid values depend on the lens. lens='pages': citations, clicks, health, indexed, page, total, trained. lens='paths': cited, clicks, crawls, health, pages, path. lens='bots': cited, clicks, crawls, name, pages. sort_dir: asc or desc. Default desc. cursor: Optional pagination cursor returned from a previous call. limit: Results per page, 1-100. Default 25.
get_crawler_pages
Open the crawler drawer data for one page URL, path, or bot. Returns the same drawer sections shown in the dashboard: verdict, pipeline, health, next step, traffic, and diagnostics. Pass `entity_id` to match the chosen `kind`: - kind='page': the full page URL. - kind='path': a path id from get_crawler_pages(lens='paths'). - kind='bot': a normalized platform name from get_crawler_pages(lens='bots'). The intent / platform / search / status filters apply to kind='path' and kind='bot' only; they are ignored for kind='page'. Args: brand_id: The brand to check (required). kind: 'page', 'path', or 'bot'. entity_id: The page URL, path id, or bot name — matching `kind`. range_preset: 24h, 7d, 30d, 90d, or custom. Default 30d. start_date: Required when range_preset='custom'. Format YYYY-MM-DD. end_date: Required when range_preset='custom'. Format YYYY-MM-DD. intent: all, interaction, search, or training. Default all (path/bot only). platform: Optional. Comma-separated platform names (path/bot only). search: Optional. Text to match (path/bot only). status: Page/path status filter. Default all (path/bot only).
get_crawler_detail
Get results of a diagnosis, or view diagnosis history/usage. Use with diagnosis_id to get a specific result. Use with brand_id + view='history' to see past diagnoses. Use with brand_id + view='usage' to check remaining quota. Args: brand_id: For history/usage views. diagnosis_id: For fetching a specific result. view: 'history' or 'usage'. Omit for single result. limit: Results per page for history, 1-100. Default 20.
get_diagnosis_result
Get the most recent ready prompt research run for a brand. Canonical 'what does my latest research show' tool — returns the full analytics payload (same shape as get_research_run) for the newest completed run. Prefer this over get_research_runs + get_research_run when you just want the current state. Args: brand_id: The brand to check (required). report_type: Filter to 'full_research' or 'topic_snapshot'. Omit for the most recent of either. results_limit: Max per-prompt results to return, 1-500. Default 100. results_offset: Offset into the results array. Default 0.
get_latest_research
Get the crawler Live tab data. Views: - 'activity': recent crawler events shown in the Live feed - 'pages': top pages relevant to the selected intent - 'sessions': recent crawl sessions Args: brand_id: The brand to check (required). range_preset: 24h, 7d, 30d, 90d, or custom. Default 30d. start_date: Required when range_preset='custom'. Format YYYY-MM-DD. end_date: Required when range_preset='custom'. Format YYYY-MM-DD. intent: all, interaction, search, or training. Default all. platform: Optional. Comma-separated platform names (e.g. "ChatGPT,Perplexity"). http_status: Optional. Comma-separated status groups: 2xx, 3xx, 4xx, 5xx. search: Optional. Text to match against page URLs. sort_by: Optional, and the valid values depend on the view. view='activity': platform, status_code, url, visited_at. view='pages': citations, clicks, health, indexed, page, total, trained. view='sessions': bot_name, duration_secs, page_count, started_at. sort_dir: asc or desc. Default desc. cursor: Optional pagination cursor returned from a previous call. limit: Results per page, 1-100. Default 25.
get_crawler_live
What completed work actually changed, measured before and after. Every row is computed by Trakkr's pipeline from real data over a window that was frozen when the work was committed. Nothing here is self-reported, and nothing claims causation: a result says a metric moved in the window, not that the change caused it. Verdicts: - earned: the metric cleared the bar the plan set. - no_change: it held steady. - harm: it fell. Reported as "coincided with a drop", never as damage the change is proven to have done. - couldnt_measure: the data needed was not available, and the reason says which. Common recipes: - Did our work pay off: get_results(brand_id, verdict="earned") - What went backwards: get_results(brand_id, verdict="harm") Args: brand_id: The brand (required). verdict: earned | no_change | harm | couldnt_measure. family: Narrow to one verb family. days: Optional 1-3650 day measured-history window. limit: 1-200. Default 50. cursor: Opaque cursor from a previous response's meta.next_cursor.
get_results
Read the in-product activity feed for the brand. The activity feed is Trakkr's event timeline — visibility shifts, new citations, competitor moves, action recommendations, workflow firings, site audit results, and more. Use this to answer "what's happened with my brand lately?" Views: - 'list': Chronological events. Filter by `unread_only` or `event_type`. - 'unread_count': Single number — how many unread events exist. Args: brand_id: The brand to inspect (required). view: 'list' or 'unread_count'. unread_only: If true, only return unread events. event_type: Filter by exact notification event_type. days: Lookback window, 1-180. Default 30. limit: Max rows, 1-200. Default 50.
get_notifications
Get citation gap opportunities. Finds prompts where competitors are being cited by AI models but your brand is not. These are content opportunities — topics where creating or improving content could earn AI citations. This is a current set per brand, not a time series. Leave `days` unset to get everything, which is what the Trakkr app shows. If the set is empty the response carries a `note` saying why; retrying with a different `days` or `limit` will not change it. Args: brand_id: Required brand UUID from list_brands. Always prefer the canonical `brand_id` key. The legacy `brand` key is accepted for compatibility with older prompt workflows. days: Optional. Only opportunities first found in the last N days, 1-365. Omit for the current set. limit: Max results, 1-200. Default 50.
get_opportunities
Get the cached deep analysis for a single URL. Returns the full per-page payload: AI diagnosis, citation verdict, failed/warning checks, ready-to-paste schema, detected queries, quotable facts, entities, and bot visibility. This is the same data the Optimize page and crawler page drawer render from. Returns a not-found error if no analysis exists within max_age_days (deliberately — triggering a fresh analysis would consume LLM credit). New analyses are produced via the Trakkr dashboard's Optimize or Crawler pages. Args: brand_id: The brand (required). url: The page URL (required). Will be normalised to https:// if no scheme is provided. max_age_days: Reject cached analyses older than this. 1-365. Default 30.
get_page_analysis
Highest-impact actions across every brand in the portfolio. The portfolio-actions view rolls up the unified action queue for all brands the API key can see (or a single brand group if specified), ranked by impact. Built for agencies running many clients — "what should I work on first today, across every account?" Args: group_id: Optional — limit to one brand group. quick_win: If true, only high-impact / low-effort actions. limit: Max actions, 1-200. Default 50.
get_portfolio_actions
What changed for a brand since you last looked: the "watch" digest. Reads the brand's in-product activity feed (the same notifications the Trakkr app surfaces) and returns a compact digest of material movements: visibility shifts, lost or gained citations, competitor moves, rank changes, crawler signals, new opportunities, and completed reports. This is a read-only pull, safe to call freely. Pair it with the trakkr-watch prompt to keep an eye on a brand across a conversation: call it, note the returned latest_seen cursor, and pass that back as since next time so you only see what is new. Cadence: crawler signals are near real-time, but visibility, citation, competitor, and rank changes are detected when the brand's daily research run completes, so this is a daily watch and not a live stream. Args: brand_id: The brand to check (required). since: Optional ISO-8601 timestamp (e.g. the latest_seen from a prior call). Only changes newer than this are returned. If omitted, the last `days` are summarized. days: Lookback window when `since` is not given, 1-180. Default 7. limit: Max changes to return, 1-200. Default 50.
get_changes
Read Reddit monitoring data for the brand. Reddit is a major source for AI model citations — especially in product recommendation prompts. This tool surfaces brand mentions, sentiment, and actionable threads where you could authentically participate. Views: - 'overview': Connection status, weekly stats, top recent threads. - 'feed': Chronological brand mentions across tracked subreddits. - 'opportunities': Threads where the brand could naturally show up but hasn't been mentioned yet. Filter by `status` and `subreddit`. - 'thread': Full thread + comment tree for a single Reddit thread. Requires `thread_id`. - 'subreddits': List of subreddits being monitored. - 'triggers': List of saved keyword triggers driving the scan. - 'analytics': Mention volume, sentiment trend, top subreddits. Args: brand_id: The brand to check (required). view: Which slice of Reddit data to return. thread_id: Required for view='thread'. status: Filter opportunities by status: all, open, or responded. subreddit: Filter feed/opportunities by subreddit (no r/ prefix). days: Lookback window for feed/analytics, 1-180. Default 30. page_size: Rows per page, 1-100. Default 30.
get_reddit
List reports or retrieve a specific report. Pass at least one of brand_id or report_id. Report IDs are not guessable and are never derived from a brand_id: get one from view='list' first, then pass it back here. Views: - 'list' (default): List reports with metadata. Needs brand_id. - 'results': Detailed visibility results for ONE report. Needs report_id. - 'sentiment': Sentiment analysis from report data. - 'mentions_time_series': Brand mention counts over time from reports. Args: brand_id: Filter by brand. report_id: A specific report's UUID, as returned by view='list'. Required for view='results'. view: Data view. Default 'list'. report_type: Filter by type: 'executive', 'weekly', 'full'. status: Filter by status: 'pending', 'completed', 'failed'. days: Lookback window, 1-365. Default 30. limit: Results per page, 1-100. Default 20. offset: Pagination offset. response_format: 'concise' (default) caps long result/mention arrays and drops verbose dumps to protect context; 'detailed' returns the full report payload (still held under the response ceiling). For a single big report, prefer report_id with a specific view.
get_reports
Get the brand's topic snapshot credit usage for the current month. Topic snapshots are gated by a monthly limit on the account. Call this before run_research_snapshot to confirm credits are available. Args: brand_id: The brand to check (required).
get_research_credits
List prompt research runs for a brand (newest first). Each run summary includes visibility score, mention rate, average and top brand position, win rate, share of voice, brand rank, and the top competitors that surfaced. For topic snapshots the topic and topic context are also included. Args: brand_id: The brand to list runs for (required). report_type: Filter to 'full_research' or 'topic_snapshot'. Omit for both. ready_only: If true (default), only return runs that completed successfully. limit: Results per page, 1-100. Default 20. offset: Pagination offset. Default 0.
get_research_runs
Get Google Search Console performance through the brand's Trakkr connection. Returns real Google clicks, impressions, CTR, and average position. Omit url for property-wide top pages and queries, or pass one page URL for that page's aggregate metrics and top Google queries. Set compare_previous_period=true for an equal preceding period and deltas. This is Search Console average position across recorded impressions, not a fixed SERP rank from one location or device. The brand must have connected Search Console in Trakkr first. Google credentials remain in Trakkr and are never returned to the MCP client. Args: brand_id: The brand to check (required). url: Optional page URL. Omit for the connected property's top pages and queries. days: Inclusive lookback window, 1-90. Default 28. compare_previous_period: Include the immediately preceding equal period and deltas.
get_search_performance
Get submit-to-search status and summary for crawler URLs.
get_crawler_submit_status
Legacy alias for get_results. Use get_results for new integrations.
get_proof
Get AI visibility scores and trends for a brand over time. This is the "how are we doing?" tool. Returns the brand's overall visibility score, presence rate, and historical trend data across all tracked AI search engines. Views: - 'summary' (default): Aggregate scores and overall trend. - 'time_series': Score values over time for charting. - 'by_model': Scores broken down per AI model. - 'by_prompt': Scores broken down per tracked prompt. Args: brand_id: The brand to check (required). view: Data view. Default 'summary'. days: Lookback window, 7-365. Default 90. tag_ids: Optional. Comma-separated tag IDs to filter prompts. prompt_id: Optional. Filter to a single prompt.
get_visibility_scores
Get live traffic data for a brand's website. Shows traffic coming from AI search engines, including visitor counts, referral sources, and trends. Requires traffic tracking to be set up. Views: - 'status': Current traffic tracking status and summary. - 'report': Detailed traffic report with breakdowns. - 'visitors': Individual visitor sessions from AI referrals. Args: brand_id: The brand to check (required). view: Data view. Default 'status'. days: Lookback window for report view, 1-365. Default 30.
get_traffic
Read workflow automation state. Workflows fire when a trigger (visibility drop, new threat, etc.) matches, and run actions (Slack message, webhook ping, email). Use this tool to see what's configured and what's fired recently. Views: - 'list': All workflows for the brand. Filter by `status`. - 'get': Full definition of a single workflow. Requires `workflow_id`. - 'runs': Recent firings across all workflows in the date window. Filter by `workflow_id`. - 'run_detail': Full payload for a single run. Requires `run_id`. - 'templates': Catalogue of starter templates ('Visibility Drop', 'Competitor Alert', 'Weekly Summary', etc.). Args: brand_id: The brand to inspect (required). view: Which slice of workflow data to return. workflow_id: Required for 'get'. Optional filter for 'runs'. run_id: Required for 'run_detail'. status: Filter list/runs by status. days: Lookback window for runs, 1-90. Default 30. limit: Max rows, 1-200. Default 50. offset: Pagination offset. Default 0.
get_workflows
Read the brand's writing-style profile. The writing-style profile is the configured voice (tone, vocabulary, do's and don'ts, sample sentences) that the article editor and AI content tools draw from. Useful when generating brand-aligned copy outside Trakkr. Args: brand_id: The brand to inspect (required). view: 'profile' or 'samples'.
get_writing_style
Get a single prompt research run with the full analytics payload. Returns every field the in-app /research page surfaces: visibility, position_distribution, competitors_breakdown (with top_competitors and share), intent_breakdown, focus_area_breakdown, topic_breakdown, insights (best_prompts, missed_prompts, strongest/weakest intent), and the per-prompt results array (each result has prompt_text, ranked_names, brand_mentioned, brand_position, prompt_intent, prompt_audience, prompt_focus_area). Per-prompt results are paginated because full runs commonly contain 500+ entries. Increase results_limit or page via results_offset to walk the full results array. Args: run_id: The prompt research run ID (required). Get IDs from get_research_runs. results_limit: Max per-prompt results to return, 1-500. Default 100. results_offset: Offset into the results array. Default 0. response_format: 'concise' (default) keeps the full analytics summary but caps the per-prompt results array to a readable head, since a run can hold 500+ rows; 'detailed' returns the whole page (still held under the response ceiling). Page with results_offset for more either way.
get_research_run
List brand groups (agency portfolios) accessible to the API key. A brand group is a collection of brands an agency manages on behalf of multiple clients. Returns each group with its member brands and quick rollup stats (count, last-updated, average visibility).
list_brand_groups
List all brands you're tracking in Trakkr. Returns brand IDs and names — you'll need a brand_id for most other tools. On the hosted connector your brands are already named at the end of this description, so read the id from there instead of calling this. Call it only when that list is absent, truncated, or you need the extra fields below. Each brand also reports its primary 'location' (ISO-2 country code, e.g. 'GB'), plus 'location_region'/'location_city'. A null location means the brand isn't geo-pinned, which can skew competitor analysis toward global/US results — use set_brand_location to fix it. Args: brand_id: Optional. Filter to a single brand. include: Optional. Comma-separated extras: 'markets', 'aliases', 'profile' (the brand's own one-line description). These three are the only ones; an unrecognised value is dropped and reported, not treated as an error. Your brands: Nike = 9dab7956-c402-4e34-80d8-d9e111f3a6b0. Use these ids directly; no lookup call needed.
list_brands
List suggestions waiting on a decision, newest and most useful first. This is Trakkr's unified suggestion pool: every recommendation system (search gaps, crawler, site audit, outreach, Reddit, content ideas, competitors, perception) writes here, so one call sees all of them. Nothing in this list is committed work yet - a person or an agent has to decide, and committing is what freezes a measurement plan so the change can earn a measured result later. NOT the same tool as `get_opportunities`, which lists citation outreach targets (a different object). Both are supported. Ordering is deterministic: impact bands first, then each family's freshest items round-robin, so a high-volume source cannot crowd out everything else. Common recipes: - What should we do next: list_opportunity_pool(brand_id) - Only page fixes: list_opportunity_pool(brand_id, family="fix") - Highest impact first: list_opportunity_pool(brand_id, impact="high") Args: brand_id: The brand (required). family: The verb family. fix | refresh | create | earn | discuss | optimize | setup | play. kind: Comma-separated kinds, e.g. 'search_gap,audit_fix'. impact: low | medium | high. limit: 1-200. Default 50. cursor: Opaque cursor from a previous response's meta.next_cursor.
list_opportunity_pool
List recent deep page analyses for a brand. Returns URL, scores, page_type, and a stale flag for analyses the dashboard has already produced. Use get_page_analysis for the full per-URL payload. Args: brand_id: The brand (required). limit: Max analyses to return. 1-100. Default 20.
list_page_analyses
List all prompt tags for a brand, including tags with no prompts. Returns each tag's id, name, colour, and current prompt_count. Use this before manage_prompt_tags when you want to update or delete an existing tag by id. Args: brand_id: The brand whose prompt tags to list (required).
list_tags
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Trakkr alternatives on ChatGPT?
As of 2026-09-02, Trakkr competes with Agent Ready, AirOps, Amplifyr, Asva AI, AthenaHQ, AuthorityPrompt, Beamtrace, BrightEdge, IQRush, Peec AI, Promptwatch, Ranked AI, Rapid Wombat, Searchable, seoClarity ArcAI, Sitelemetry, Temso, upword, Webless, Yolando in ChatGPT AI Search & LLM Visibility (AEO/GEO), ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.