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

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

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
  • 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:

terminal
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

For side projects and trying things out.

$0 /mo
Endpoints
3
Requests / mo
2,000
Row cap
500
  • Type-mapped columns
  • Custom cache TTL
  • Average rating (Pro)

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

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.