Appearance
Tools reference
Fifteen read-only tools. Every tool takes an optional property_id (default: AH_DEFAULT_PROPERTY, or the first property the key can access) and response_format: markdown (default, a readable table) or json (the full structured result). Tables also come back as structured JSON for clients that use it. Long results are shortened by rows, never cut mid-text, and say so.
Common inputs
| Input | Values |
|---|---|
date_range | today, yesterday, last_7_days, last_28_days (default), last_90_days, this_month, last_month, or {"start":"2026-10-01","end":"2026-10-28"}, in the property's time zone |
compare | previous_period or previous_year |
actor | all (default), action_agents, humans, humans_and_agents (no crawlers), indexing_bots, mixed_sessions |
Tools
| Tool | What it answers | Main inputs | API call |
|---|---|---|---|
list_properties | Which sites can I query? | — | GET /properties |
describe_catalog | Which dimensions and metrics exist? | — | GET /catalog |
list_report_templates | Which built-in reports exist? | — | GET /templates |
run_report | Any table | dimensions (0–5), metrics (1–10), filters (AND), order_by, date_range, compare, actor | POST /properties/{pid}/reports/run |
run_report_template | A built-in report | template_id, date_range, compare, actor | POST /properties/{pid}/templates/{id}/run |
agents_vs_humans_summary | Headline split: sessions by mode, conversions, revenue, top agents, AI Assistants channel | date_range, compare | GET /properties/{pid}/summary |
agent_friction | Where agents can't buy while humans can: the blocking step, the gap, the agents affected, the upside in orders and revenue, suggested fixes | optional funnel_id or steps (2–12), window_minutes (default 60), mode (furthest for the built-in journey, ordered for custom steps) | POST /properties/{pid}/agents/friction |
run_funnel | Drop-off between steps, agents vs humans | funnel_id, or steps (2–10: page path, event name, element el_name or selector), window_minutes (default 60), breakdown (none, actor_family, navigation_mode) | POST /properties/{pid}/funnels/run or …/funnels/{id}/run |
list_saved_funnels | Funnels saved on the property | limit, cursor | GET /properties/{pid}/funnels |
top_paths | What visitors do next (or did before) a page or element | start {type: page | element, value}, direction (next, previous), depth (1–5), unit (pages, elements), actor | POST /properties/{pid}/paths/run |
realtime_snapshot | Who is on the site right now | — | GET /properties/{pid}/realtime |
pages_read_by_ai | Pages read by AI assistants, AI crawlers and search engines; verified vs spoofed bots | bot_type, bot_name (for example gptbot, chatgpt-user), verified (any, verified, spoofed), limit | GET /properties/{pid}/bots/pages |
mixed_sessions | Visits where an agent and a human took turns, with each segment | agent_name (for example claude-in-chrome), converted_only, limit | POST /properties/{pid}/agents/mixed-sessions |
ask_analytics | A plain-language question answered by Eureka's own analyst | question (any language), optional date_range | POST /properties/{pid}/ask (counts toward AI questions) |
get_usage | Plan, billable events (agents + humans), free bot events, AI questions used | — | GET /usage |
All tools are annotated as read-only. realtime_snapshot and ask_analytics are not idempotent: calling them twice can return different results.