PasteSheet icon PasteSheet logo mark — a spreadsheet grid with a curly brace on a green rounded square PasteSheet

Drive a live dashboard from a Google Sheet

A live dashboard is only as fresh as its data source. PasteSheet turns any Google Sheet into a cached JSON API your charts and KPI widgets read directly — and with count, sum, avg, and group_by rollups computed server-side, the numbers arrive ready to plot. Edit a cell, and the dashboard follows.

Last updated

Key facts

  • The Google Sheets API allows 300 read requests per minute per project and 60 per minute per user. Past that it returns 429 RESOURCE_EXHAUSTED. source
  • A cached endpoint reads the sheet once per TTL, not once per request — so 10,000 visitors become one upstream read, and Google's quota stops being your problem.
  • Aggregation (group_by, count, sum, avg) — the rollups that let a KPI tile fetch one number instead of ten thousand rows — is a Pro ($19/mo) feature.
  • A dashboard polling in many tabs still hits a rate limit: 60 requests a minute on Free, 300 on Starter, 1,000 on Pro and 5,000 on Agency.

A dashboard backed by a spreadsheet

A dashboard is a read view over numbers that already live somewhere — and for most teams that somewhere is a Google Sheet a human keeps current. Instead of piping that sheet into a warehouse just to draw a chart, PasteSheet serves it straight to your front end as fast, cached JSON. Recharts, Chart.js, a Livewire widget, or a plain <table> all just fetch() the endpoint.

The trick that keeps a dashboard snappy is not shipping every row to the browser. PasteSheet's aggregation parameters — group_by, count, sum, avg — roll the data up server-side, so a KPI tile pulls a single computed number and a bar chart pulls one row per group rather than ten thousand raw records.

What you can wire to the sheet

One endpoint, one query engine — every widget on the board reads the same source:

  • KPI tiles — total revenue, active users, average order value — from a single sum, count, or avg.
  • Bar and line charts grouped by month, region, or owner via group_by.
  • Status boards filtered live with ?status=open or contains[owner]=jo.
  • A leaderboard sorted by any metric with sort=-score.

Roll the data up server-side

Ask the endpoint for the aggregate, not the rows. Here revenue and order count grouped by region come back ready to chart:

terminal
curl "https://pastesheet.com/your-endpoint/Sales?group_by=region&sum=revenue&count=orders"

{
  "data": [
    { "region": "AMER", "revenue": 61550, "orders": 189 },
    { "region": "EMEA", "revenue": 48200, "orders": 214 },
    { "region": "APAC", "revenue": 33900, "orders": 121 }
  ]
}

Safe to embed, nothing to wire up

Because the endpoint is read-only by design, it is safe to expose publicly or hand to a teammate: consumers can read and query the data but can never change the sheet. And there is no Google Cloud project, OAuth screen, or service account to set up — you paste a share URL and get a live API.

What it costs

Starter

For indie makers shipping a real app.

$9 /mo
Endpoints
10
Requests / mo
50,000
Row cap
5,000
  • Aggregation rollups
  • Custom cache TTL
  • Private endpoints & keys

Start free and read raw rows into your charts on any plan. The count/sum/avg/group_by rollups that keep the payload small are a Pro ($19/mo) feature, and a custom cache TTL lets you match refresh rate to how live the dashboard needs to be.

Frequently asked questions

How fresh is the dashboard?

As fresh as your cache TTL. The Free plan refreshes every 5 minutes; paid plans let you set a 30-second to 1-hour window, and a manual refresh pulls the latest rows instantly without counting against your quota.

Can I compute totals without loading every row?

Yes. The aggregation parameters (group_by, count, sum, avg) roll the data up server-side, so a KPI tile fetches one computed value and a grouped chart fetches one row per group instead of the full dataset.

Will heavy dashboard traffic hit Google's rate limits?

No. PasteSheet reads Google once and serves every widget and visitor from an edge cache, so a dashboard refreshing across many tabs is still a single read from the sheet.

Can dashboard viewers change the underlying data?

No. The endpoint is read-only by design — charts can query and aggregate the sheet but there is no write path, so it is safe to embed on an internal or public page.

Sources

Related use cases

Turn your sheet into an API in minutes

Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.