{"tools":[{"name":"list_websites","description":"List the websites this token grants access to. Use the returned ids as website_id on the other tools to query or compare specific websites.","inputSchema":{"type":"object","properties":{}}},{"name":"get_website_report","description":"Website-wide funnel performance (views, conversions, completions, subscribes, orders, revenue) for the selected window. Returns one total per metric; add group_by=day (or week/month/quarter/year) for a per-bucket breakdown, over a window of up to 92 days. Start here, then drill into campaigns.","inputSchema":{"type":"object","properties":{"group_by":{"type":"string","enum":["day","week","month","quarter","year"],"description":"Adds a timeseries block: one point per bucket across the selected window, each with date, views, conversions, completions, subscribes, submissions, orders and revenue for this report's subject. Buckets with no activity come back as zeroes, so the series is complete. Use group_by=day for a daily breakdown instead of calling the tool once per day. On get_website_report the window must cover at most 92 days (the other reports take any range up to 400 buckets); a wider one is rejected — shorten it, or pull the longer series from a campaign, variant, step or element report."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":[]}},{"name":"get_website_insights","description":"Latest pre-generated weekly insights snapshot (one fixed week, written by a background job). Use it for the narrative summary only — for any specific window or trend use get_website_report, which reads live per-day data. Returns 404 if no snapshot has been generated yet.","inputSchema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."}}}},{"name":"list_campaigns","description":"List campaigns (CTAs) with their funnel metrics for the selected window. Returns the campaign ids used by get_campaign_report. Supports pagination, sorting and filtering by type/status.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","description":"Page number (default 1)."},"per_page":{"type":"integer","description":"Results per page (default 25, max 50)."},"sort":{"type":"string","enum":["created_at","published_at","views","conversions","completions","conversion_rate","completion_rate","revenue","aov"],"description":"Sort field."},"cta_type":{"type":"string","description":"Filter by campaign format."},"status":{"type":"string","enum":["live","archived"],"description":"Filter by status."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":[]}},{"name":"get_campaign_report","description":"Single campaign performance with per-variant breakdown. Campaign ids come from list_campaigns; the variant ids in the response feed get_variant_report.","inputSchema":{"type":"object","properties":{"id":{"type":"integer","description":"The campaign id."},"group_by":{"type":"string","enum":["day","week","month","quarter","year"],"description":"Adds a timeseries block: one point per bucket across the selected window, each with date, views, conversions, completions, subscribes, submissions, orders and revenue for this report's subject. Buckets with no activity come back as zeroes, so the series is complete. Use group_by=day for a daily breakdown instead of calling the tool once per day. On get_website_report the window must cover at most 92 days (the other reports take any range up to 400 buckets); a wider one is rejected — shorten it, or pull the longer series from a campaign, variant, step or element report."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":["id"]}},{"name":"list_experiments","description":"Active A/B experiments — campaigns with live traffic-split variants and their metrics.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"Max experiments returned (default 25, max 50)."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":[]}},{"name":"get_variant_report","description":"Variant funnel performance with per-step breakdown. Variant ids come from get_campaign_report; the step ids in the response feed get_step_report.","inputSchema":{"type":"object","properties":{"id":{"type":"integer","description":"The variant id."},"group_by":{"type":"string","enum":["day","week","month","quarter","year"],"description":"Adds a timeseries block: one point per bucket across the selected window, each with date, views, conversions, completions, subscribes, submissions, orders and revenue for this report's subject. Buckets with no activity come back as zeroes, so the series is complete. Use group_by=day for a daily breakdown instead of calling the tool once per day. On get_website_report the window must cover at most 92 days (the other reports take any range up to 400 buckets); a wider one is rejected — shorten it, or pull the longer series from a campaign, variant, step or element report."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":["id"]}},{"name":"get_step_report","description":"Step funnel performance with per-element breakdown. Step ids come from get_variant_report; the element ids in the response feed get_element_report.","inputSchema":{"type":"object","properties":{"id":{"type":"integer","description":"The step id."},"group_by":{"type":"string","enum":["day","week","month","quarter","year"],"description":"Adds a timeseries block: one point per bucket across the selected window, each with date, views, conversions, completions, subscribes, submissions, orders and revenue for this report's subject. Buckets with no activity come back as zeroes, so the series is complete. Use group_by=day for a daily breakdown instead of calling the tool once per day. On get_website_report the window must cover at most 92 days (the other reports take any range up to 400 buckets); a wider one is rejected — shorten it, or pull the longer series from a campaign, variant, step or element report."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":["id"]}},{"name":"get_element_report","description":"Element performance with its field and product breakdown — form field values, quiz answer counts and per-product orders/revenue. Element ids come from get_step_report.","inputSchema":{"type":"object","properties":{"id":{"type":"integer","description":"The element id."},"group_by":{"type":"string","enum":["day","week","month","quarter","year"],"description":"Adds a timeseries block: one point per bucket across the selected window, each with date, views, conversions, completions, subscribes, submissions, orders and revenue for this report's subject. Buckets with no activity come back as zeroes, so the series is complete. Use group_by=day for a daily breakdown instead of calling the tool once per day. On get_website_report the window must cover at most 92 days (the other reports take any range up to 400 buckets); a wider one is rejected — shorten it, or pull the longer series from a campaign, variant, step or element report."},"website_id":{"type":"integer","description":"Website to query. Optional for single-website tokens; required when the token grants multiple websites — call list_websites first."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."},"count_type":{"type":"string","enum":["distinct","total"],"description":"distinct = unique visitors via HyperLogLog (default); total = raw event counts. Orders/revenue are always summed. Distinct counts deduplicate across the whole window, so they do not add up across sub-periods — use total when separate calls or timeseries points must reconcile with a longer range."},"previous_period":{"type":"boolean","description":"When true, each metrics block includes the previous period of equal length and percent changes."}},"required":["id"]}},{"name":"get_account_performance","description":"Cross-site funnel performance for every website bound to this token: per-site rows plus an aggregate. Omit website_id to include all bound sites; pass website_id or website_ids to zoom in. Does not require website_id on multi-website tokens.","inputSchema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Optional. Zoom to one website bound to the token. Omit to aggregate every bound website. Unbound ids return 404."},"website_ids":{"type":"array","items":{"type":"integer"},"description":"Optional subset of bound website ids. Any id outside the token binding returns 404."},"timeframe":{"type":"string","enum":["today","this_week","this_month","this_quarter","this_year","last_24_hours","last_7_days","last_30_days","last_90_days","last_365_days","all_time","insights_week","custom"],"description":"Reporting window (default last_30_days). Use custom with range_start/range_end for any exact range, including a single day (same date on both). Windows are UTC."},"range_start":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive from 00:00:00 UTC. Required when timeframe=custom."},"range_end":{"type":"string","description":"ISO 8601 date (YYYY-MM-DD), inclusive through 23:59:59 UTC. Required when timeframe=custom."}}}}]}