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

Run your course catalog and LMS content from a Sheet

A course catalog is a list of courses, each with a level, a module count, a price, and an instructor. PasteSheet turns that Google Sheet into a live JSON API, so your site renders the catalog and filters by level or topic — no LMS to stand up, no admin panel, and no code for your team to touch.

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
  • A courses tab plus a lessons tab is two tabs — and a Free endpoint exposes only one. The two-level catalog starts on Starter ($9/mo) (5 tabs); Pro ($19/mo) is unlimited.
  • The catalog holds up to 500 rows on Free and 5,000 on Starter; Pro removes the row cap for a large lessons tab.
  • Aggregation — count courses per category or avg a track's price — is a Pro ($19/mo) feature.

A catalog your instructors can edit

Building a lightweight LMS or course marketplace usually starts with the wrong step: standing up a database and an admin UI just to hold a list of courses. But a catalog is a spreadsheet — one row per course, columns for level, price, module count, and instructor. Your content team already knows how to edit that.

PasteSheet serves the sheet as typed JSON, so your catalog page fetches the rows and renders the cards. A related tab can hold modules or lessons keyed by course slug, giving you a simple two-level structure without a real backend. See the broader headless CMS pattern for how the pieces fit.

What you can drive from the sheet

Common columns and the queries they unlock:

  • ?level=Beginner — filter the catalog by difficulty or audience.
  • ?category=Data — group courses into tracks or subjects.
  • ?sort=price or ?sort=-rating — order by price or popularity.
  • A Lessons tab filtered by ?course=intro-to-sql for a course detail page.

Fetch the catalog as JSON

Point your catalog page at the endpoint and read the courses. Filter and sort with URL parameters — no query language to learn:

terminal
curl "https://pastesheet.com/your-endpoint/Courses?level=Beginner&sort=price"

{
  "data": [
    {
      "title": "Intro to SQL",
      "slug": "intro-to-sql",
      "level": "Beginner",
      "modules": 6,
      "price": 49,
      "instructor": "Dev Sharma"
    }
  ]
}

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
  • Counts & averages
  • MCP for AI agents

Start free. The Free plan runs 3 live endpoints — enough for a courses tab and a lessons tab. Pro adds aggregation, so you can count courses per category or avg the price of a track for catalog stats.

Frequently asked questions

Can I model modules and lessons, not just courses?

Yes. Put courses in one tab and lessons in another, linked by a shared course slug column. Each tab is its own endpoint, so a course page fetches the course row plus its lessons filtered by that slug.

Can I show prices and totals?

Store the price in a numeric column and it comes back typed, not as a string. On Pro, aggregation lets you count courses per category or average a track's price for catalog-level stats.

How do students see updates?

Edit the sheet and the catalog reflects it after the cache TTL — 5 minutes on Free, tunable on paid plans, or immediately after a manual refresh.

Can learners edit the catalog through the API?

No. PasteSheet is read-only by design. The endpoint only serves data, so it is safe to expose on a public catalog 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.