> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hihobbes.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a funnel dashboard

> Read qualification, booking, intent, duration, and source metrics.

The metrics endpoint returns one aggregate snapshot for a trailing 1-365 day
window. Poll it on your dashboard's refresh cadence rather than once per visitor.

<CodeGroup>
  ```bash cURL theme={null}
  curl --fail-with-body --get \
    "https://api-us.hihobbes.com/api/v1/metrics" \
    --data-urlencode "days=30" \
    --header "Authorization: Bearer $HOBBES_API_KEY"
  ```

  ```python Python theme={null}
  import os
  import requests

  response = requests.get(
      "https://api-us.hihobbes.com/api/v1/metrics",
      headers={"Authorization": f"Bearer {os.environ['HOBBES_API_KEY']}"},
      params={"days": 30},
      timeout=30,
  )
  response.raise_for_status()
  metrics = response.json()
  print({
      "sessions": metrics["totalSessions"],
      "qualified": metrics["qualifiedCount"],
      "booked": metrics["bookedCount"],
      "qualification_rate": metrics["qualificationRate"],
  })
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch("https://api-us.hihobbes.com/api/v1/metrics?days=30", {
    headers: { Authorization: `Bearer ${process.env.HOBBES_API_KEY}` },
  });
  if (!response.ok) throw new Error(await response.text());
  const metrics = await response.json();
  console.log({
    sessions: metrics.totalSessions,
    qualified: metrics.qualifiedCount,
    booked: metrics.bookedCount,
    qualificationRate: metrics.qualificationRate,
    topSources: metrics.topSources,
  });
  ```
</CodeGroup>

`qualificationRate` is already a percentage from 0 to 100. Format it with a
percent sign without multiplying it again. Use session exports when you need
custom cohorts or date boundaries rather than a trailing-day window.
