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
featuredones. -
Aggregation —
avgtheratingcolumn orcountreviews 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, andcompanyfor attribution. -
quote— the testimonial text itself. -
ratingto render stars andavatarholding an image URL. -
featuredas 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:
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.
- 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
Use Google Sheets as a Free Headless 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
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
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
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.
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.