# Workspace overview

Clicktag adds every verified site you own into one overview: visitors, pageviews, who is online right now, a sites table, and cross-site top pages, sources, countries, custom events and goals for any date range.

Open it from **Overview** in the workspace menu, or go to [/app/overview](https://clicktag.app/app/overview).

## What is counted

- Every verified website you own is included. Sites that are not [verified](/docs/sites#verify-ownership) yet stay out until they are, and API sites get their own table.
- Each number is the sum of the same numbers your site dashboards show for the same range, so the overview never disagrees with a site.
- **Visitors** are counted per site (see [What the counts mean](/docs/stats#what-the-counts-mean)). Someone who visits two of your sites counts once on each.
- **Online now** counts visitors seen in the last five minutes on each site, added up. It ignores the selected range.
- **Active sites** counts the sites with at least one pageview in the range.

Visitors, Pageviews and Active sites compare the range with the same clock times as many days earlier: Today with yesterday until the same time, the last 7 days with the 7 days before.

## The chart

The chart draws visitors over time for all your sites together and for each site on its own. With more than six sites, the five with the most visitors get their own line and the rest are added up as **Other**.

All sites and the top three start visible. Click a name in the legend to show or hide its line. Your choice is remembered in this browser.

## Sites table

The table lists every verified site, pinned sites first, then by visitors. **Share** is the site's part of all visitors in the range and **Online** is the same five-minute count as the card above. Sites without traffic in the range stay in the list. Click a site to open its dashboard.

Pin or unpin a site from [your sites list](https://clicktag.app/app).

## Cross-site panels

**Top pages**, **Custom events** and **Goals** put the site's name in front of every row, because `/pricing` on one site and `/pricing` on another are different pages. Click a row to open that site's report.

**Top sources** and **Countries** add all sites together, since a visitor from the same search engine or country means the same thing everywhere. Each row shows on how many of your sites it appears.

**Goals** lists every goal and funnel on your sites, ranked by converted visitors, with its conversions and conversion rate in the range. Read more in [Goals and funnels](/docs/goals).

## API traffic

When one of your verified websites or API sites had requests in the range or the period before it, a table lists its requests, the change against the previous period and its 5xx responses. API traffic is stored per hour, so these numbers use whole hours at both ends of the range. See [API analytics](/docs/api-analytics) to set it up.

## Date ranges and time zone

Pick Today, Yesterday, Last 7 days, Last 30 days, Last 90 days or your own dates. The overview opens on the last 30 days.

Ranges of four days or less are drawn per hour, longer ranges per day. Days start and end in your browser's time zone, and the page refreshes every minute while it is open.

## API

Both routes are owner-only and accept the owner's Firebase ID token or a [management key](/docs/authentication#management-keys) with `read`; without either they return `401 sign in required`. `from` and `to` are unix seconds and follow the [statistics range rules](/docs/stats#date-ranges): `to` is exclusive, the default is the last 30 days, and a reversed range or one over 400 days returns `400 invalid range`. `tz` is an IANA time zone, UTC by default.

- `GET /api/workspace/overview?from&to&tz`: `range` (with `granularity`: `hour` up to four days, otherwise `day`), `counts` of verified websites, API sites and unverified websites, `totals` and `previous` (visitors, pageviews and active sites, plus `totals.live`), `buckets` with the matching `spark` and `series` arrays, the `sites` table and the `api` traffic table. Buckets are zero-filled in `tz` across the whole range, so a range that ends in the future also has buckets after now.
- `GET /api/workspace/breakdown?dim&from&to&tz&limit`: one cross-site panel. `dim` is `sites`, `pages`, `referrers`, `countries`, `events` or `goals`; anything else returns `400 unknown dimension`. `limit` defaults to 25 and is clamped to 1-100, rounding fractions down. `pages` and `events` rows carry their `site`, `referrers` and `countries` rows add all sites up and count the `sites` they were seen on, `goals` rows have no previous period, and `sites` rows match the overview's `sites` table. `tz` only sets the previous period of `sites` rows.

An account without verified websites gets `rows: []` from the breakdown, and one with neither verified websites nor API sites gets zeros and empty arrays from the overview. The full schemas are in the [OpenAPI file](/openapi.json).
