# Show a testimonials wall from a Google Sheet

Testimonials pile up faster than anyone updates the site. Collect names, quotes, ratings, and avatar URLs in a Google Sheet, flag which ones to feature with a single column, and PasteSheet serves the approved set as a live JSON API — so your reviews wall curates itself without a deploy.

*Last updated: 2026-07-11 · Source: <https://pastesheet.com/use-cases/google-sheets-testimonials>*

## Key facts

- A Google Sheet is capped at **10 million cells** (or 18,278 columns), which is the real ceiling on using one as a database. ([source](https://support.google.com/drive/answer/37603))
- The wall holds up to **500 quotes on Free** and **5,000 on Starter ($9/mo)** — far more than any landing page renders, since you filter to the `featured` ones.
- Aggregation — `avg` the `rating` column or `count` reviews per product for an overall score — is a **Pro ($19/mo)** feature.
- Free serves a fixed **5-minute cache**; paid plans set a custom TTL from **30 seconds to 1 hour**, so a newly featured quote appears on your schedule.

## A reviews wall that curates itself

Social proof works, but only if it stays fresh. New quotes arrive over email, Slack, and support tickets, and someone is supposed to hard-code the best ones onto the landing page. They rarely do — so the testimonials wall shows the same three quotes it did a year ago.

Drop every testimonial into a Google Sheet — name, role, company, quote, rating, and an avatar URL — and add a `featured` column. PasteSheet serves the sheet as JSON; your front end fetches only the featured rows and renders the cards. Feature a new quote by typing `yes` in a cell, and it appears after the cache refreshes.

## What each testimonial holds

One row per quote, with the fields your card component expects:

- `name`, `role`, and `company` for attribution.
- `quote` — the testimonial text itself.
- `rating` to render stars and `avatar` holding an image URL.
- `featured` as a simple on/off flag for which quotes go live.

## Fetch only the featured quotes

Filter to featured rows and sort by rating so your strongest social proof leads. The avatar is just a URL your card renders:

```bash
curl "https://pastesheet.com/your-endpoint/Reviews?featured=yes&sort=-rating"

{
  "data": [
    {
      "name": "Priya Nair",
      "role": "Head of Growth",
      "company": "Northwind",
      "quote": "We shipped our reviews wall in an afternoon.",
      "rating": 5,
      "avatar": "https://cdn.example.com/priya.jpg",
      "featured": "yes"
    }
  ]
}
```

## Read-only, so it is safe to publish

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

**Free — $0/month.** For side projects and trying things out.

- Endpoints: 3
- Requests: 2,000 / month
- Rows per endpoint: 500
- Tabs per endpoint: 1
- Rate limit: 60 / minute

**Start free.** The Free plan runs 3 live endpoints with a 5-minute cache — enough for a testimonials wall. Upgrade to **Pro ($19/mo)** to `avg` your ratings or `count` reviews per product with aggregation.

## Frequently asked questions

### How do I control which testimonials show?

Add a featured column and filter the endpoint to featured=yes. Type yes in a cell to promote a quote or clear it to pull one down — the wall updates after the next cache refresh, no deploy.

### Can I show star ratings?

Yes. Store a numeric rating column, map it as a number so it comes back typed, and render stars from it. Sort by -rating to lead with your strongest reviews.

### Where do avatars come from?

Store an image URL in an avatar cell and return it like any other field. Host the images anywhere — a CDN, Drive, or your own bucket — and your front end renders the link.

### Can I average the ratings?

Yes, on Pro. Aggregation lets you avg the rating column or count reviews per product, so you can show an overall score alongside the wall.

## Sources

- [Files you can store in Google Drive (size limits)](https://support.google.com/drive/answer/37603) — Google

## Related use cases

- [Use Google Sheets as a Free Headless CMS](https://pastesheet.com/use-cases/google-sheets-cms) — Run your website's content from a Google Sheet. PasteSheet publishes it as a live, read-only JSON API — no database, no backend, no Google Cloud setup.
- [Drive a Marketing Site from Google Sheets](https://pastesheet.com/use-cases/google-sheets-content-website) — Run your marketing site's content blocks from a Google Sheet — hero copy, feature lists, section text. PasteSheet publishes it as a live, read-only JSON API.
- [Build a Team Directory from a Sheet](https://pastesheet.com/use-cases/google-sheets-team-directory) — Publish a team or staff directory from a Google Sheet — names, roles, photos, bios. Filter by department through a live, read-only JSON API. No backend.
- [Power an FAQ Page from a Google Sheet](https://pastesheet.com/use-cases/google-sheets-faq-page) — Build a searchable FAQ or help page from a Google Sheet — one row per question and answer. Full-text search over questions via a live, read-only JSON API.

---

[PasteSheet](https://pastesheet.com) turns any Google Sheet into a live REST API and MCP server for AI agents — no backend, no code. Canonical HTML version of this page: <https://pastesheet.com/use-cases/google-sheets-testimonials>
