Reporting tools require read access and the selected organization_id when required. They read site data; get_aeo_report does not start an audit and search_site does not publish or ingest content.
get_analytics#
| Argument | Type | Default / meaning |
|---|---|---|
site_slug |
String, required | Intended site. |
period_days |
Integer, 1–90 | 7. |
Returns site, period_days, human_pageviews, bot_crawls_by_bot, llm_referrals_by_source, top_pages, chat_conversations, chat_answers, traffic_scope, and reporting_window.
The report uses consolidated reporting dates ending on the previous day. Inspect reporting_window for the actual date coverage and freshness; this is not a live request log. traffic_scope.unit is pageview_events, configured site hosts are included, and internal test activity is not automatically excluded. Top pages are limited to ten in this response.
{ "site_slug": "example-site", "period_days": 30 }
Human pageviews, bot requests, referral activity, conversations, and answers are distinct units. A successful crawl does not establish a citation. Analytics access is plan-gated after the Free trial; see limits.
get_chats#
| Argument | Type | Default / meaning |
|---|---|---|
site_slug |
Optional string | Omit for eligible conversations across the organization. |
created_after |
ISO 8601 date/time | Inclusive conversation-creation lower bound. |
created_before |
ISO 8601 date/time | Exclusive conversation-creation upper bound. |
cursor |
Optional string | Opaque next_cursor from the previous response. |
limit |
Integer, 1–100 | 25 conversations. |
include_messages |
Boolean | true; false provides an inventory. |
message_roles |
Unique array of user and/or assistant |
Both roles. |
{
"site_slug": "example-site",
"created_after": "2026-10-01T00:00:00Z",
"created_before": "2026-11-01T00:00:00Z",
"limit": 25,
"include_messages": true,
"message_roles": ["user"]
}
Returns site, total_count, returned_count, has_more, next_cursor, and chats[]. Conversations are ordered newest first by creation time then ID. The time range filters conversation creation, not the timestamps of every included message.
Each chat includes id, site_slug, title, status, llm_model, creation/update timestamps, and message_count for the chosen roles. With messages included, messages[] is ordered oldest first and contains id, role, sender_type, content, token_count, and created_at.
Continue with the same filters and returned next_cursor until has_more is false. Do not invent or decode a cursor to advance manually. Save compact analysis between batches instead of loading all transcripts into one prompt. An inventory still counts messages matching the selected roles.
Dedicated contact fields and internal message metadata are excluded. Message text can still contain personal information volunteered by a visitor; the export is not automatically redacted. Handle it according to data practices.
Errors include chat_invalid_date, chat_invalid_roles, and chat_invalid_cursor. Correct the filter or restart from the first page with a consistent range.
get_aeo_report#
Requires site_slug string; optionally supply integer report_id for a known earlier audit. Without that ID, the tool looks for the latest audit matching configured site hosts, with a fallback to the organization's latest audit when it has only one site.
Returns report_id, site, domain, score, score_breakdown, ran_at, model, findings, and report_url. Findings contain technical_foundation, brand_entity, market_presence, llm_inclusion, and recommended_pages.
Check the returned domain and date before attributing the audit to a site. aeo_report_not_found means arrange an audit through the available application action or support; repeated reads do not refresh it. See report interpretation and methodology.
search_site#
| Argument | Type | Default / meaning |
|---|---|---|
site_slug |
String, required | Intended published site. |
query |
Nonblank string, required | Search question or terms. |
limit |
Integer, 1–20 | 10. |
mode |
keyword, semantic, or hybrid |
hybrid. |
Returns site, query, mode, and results[]. Result fields include source, title, url, slug, match_sources, snippet, summary, content, page_category, score, normalized_score, and percent. Scores describe result ranking, not citation probability.
Try a distinctive published phrase, then a relevant paraphrase. Follow result URLs to confirm they point to the intended page. Empty results alone do not prove the content is absent: inspect published state, indexing warnings, query/mode, and a direct chat test. search_invalid requires a nonblank query and supported mode; upgrade_required indicates the site's search entitlement.