Website analytics

Check how fast pages are for real visitors

analytics_web_vitals · Reads only · Markdown

How fast the site's pages are for real visitors: Core Web Vitals at the 75th percentile, rated the way Google rates them.

Free*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

Is the shop fast enough on phones? Which pages load slowest for real customers?

Your agent callsanalytics_web_vitalsFree*

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "site": "halversoncycle.example",
  "device": "mobile",
  "period": "30d"
}
What comes back
{
  "site": "halversoncycle.example",
  "period": {
    "from": "2026-09-15",
    "to": "2026-10-14"
  },
  "filters": {
    "device": "mobile"
  },
  "overall": [
    {
      "metric": "LCP",
      "p75": 3100,
      "unit": "ms",
      "samples": 2,
      "rating": "needs_improvement",
      "good_percent": 50,
      "poor_percent": 0
    },
    {
      "metric": "INP",
      "p75": 160,
      "unit": "ms",
      "samples": 2,
      "rating": "good",
      "good_percent": 100,
      "poor_percent": 0
    }
  ],
  "by_device": {
    "mobile": [
      {
        "metric": "LCP",
        "p75": 3100,
        "unit": "ms",
        "samples": 2,
        "rating": "needs_improvement",
        "good_percent": 50,
        "poor_percent": 0
      },
      {
        "metric": "INP",
        "p75": 160,
        "unit": "ms",
        "samples": 2,
        "rating": "good",
        "good_percent": 100,
        "poor_percent": 0
      }
    ]
  },
  "slowest_pages": [],
  "thresholds": {
    "LCP": {
      "good_up_to": 2500,
      "poor_above": 4000
    },
    "INP": {
      "good_up_to": 200,
      "poor_above": 500
    },
    "CLS": {
      "good_up_to": 0.1,
      "poor_above": 0.25
    },
    "FCP": {
      "good_up_to": 1800,
      "poor_above": 3000
    },
    "TTFB": {
      "good_up_to": 800,
      "poor_above": 1800
    }
  }
}

Use it when

Someone asks whether the site is fast, or which pages load slowly.

What it does

Core Web Vitals measured in visitors' browsers: LCP, INP, CLS, FCP and TTFB at the 75th percentile, rated good, needs_improvement or poor the way Google does, overall and by device, and the pages with the slowest LCP.

What comes back

LCP, INP, CLS, FCP and TTFB at the 75th percentile, each rated good, needs_improvement or poor, overall and by device, the pages with the slowest LCP, and the thresholds used. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
siteRequiredstringThe site's domain (e.g. halversoncycle.example) or its site_id. 4 to 253 characters.
pagestringUp to 500 characters.
devicestringOne of: desktop,tablet,mobile.
periodstringOne of: today,yesterday,7d,30d,90d,month,last_month,12mo,custom. Default: 30d.
fromstringWith period custom: the first day, 2026-10-01. Up to 10 characters.
tostringWith period custom: the last day. Up to 10 characters.
filtersobjectNarrow the stats: page and entry_page ("/blog/*", * for any part), goal (a goal's name), event, channel (Direct, Organic search, Paid search, Organic social, Paid social, AI assistants, Email, Referral, Affiliates, Display, Paid other, Other campaigns), source ("Google", "Direct"), referrer, campaign, medium, term, content, country ("DE"), device (desktop, tablet, mobile), browser, os. Example: {"channel": "Organic search", "device": "mobile"}.
limitinteger1 to 50. Default: 10.

The call

Over MCP, call analytics_web_vitals on https://api.conecto.chat/mcp/analytics. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/analytics_web_vitals \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"site":"halversoncycle.example","device":"mobile","period":"30d"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404No site the business counts has that domain or site_id.Call analytics_list_sites and use a domain from it.
invalid_input400The period, the from and to dates, a page pattern or a filter is not valid.Fix the argument the message names. A custom period needs from and to as dates, like 2026-10-01.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md