Templates / Create a CRUD REST API with Google Sheets database

Create a CRUD REST API with Google Sheets database

Ready for 3.0

by Viktor Klepikovskyi ✓ · 773 views · created 2025-08-31 · Engineering, Multimodal AI

Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.

Nodes used (4)

Google Sheets

What it does

Simple REST API with Google Sheets Introduction This workflow template demonstrates how to quickly and easily create a simple REST API using n8n and a Google Sheet as a no-code database. It's a perfect starting point for building a backend for small applications, prototypes, or internal tools without writing any code. Purpose The purpose of this template is to provide a complete, ready-to-use n8n workflow that handles all fundamental CRUD (Create, Read, Update, Delete) operations. The workflow uses a single Webhook trigger to handle POST, GET, PUT, and DELETE requests, allowing you to manage data in your Google Sheet through standard API calls. Setup Instructions To get started with this template, follow these steps: 1. Prepare your Google Sheet: Create a new Google Sheet and add the following column headers in the first row: name, email, and status. You can use this example Google Sheet as a starting point. This sheet will serve as your database. 2. Authenticate: In the n8n workflow, connect your Google Account credentials to the Google Sheets nodes. 3. Select your data: Choose the Google Sheet and the corresponding sheet name from the drop-down lists in each of the Google Sheets nodes. 4. Activate: Save and activate the workflow. 5. Test the API: Use a tool like curl, Postman, or Insomnia to test your new API endpoints. The base URL will be your n8n webhook URL followed by /items. Example curl Commands: POST (Create): curl -X POST YOURN8NWEBHOOKURL/items -H "Content-Type: application/json" -d '{"name": "Alice", "email": "[email protected]", "status": "active"}' GET (Read All): curl -X GET YOURN8NWEBHOOKURL/items/all GET (Read Single): curl -X GET YOURN8NWEBHOOKURL/items?id=2 PUT (Update): curl -X PUT YOURN8NWEBHOOKURL/items?id=2 -H "Content-Type: application/json" -d '{"status": "inactive"}' DELETE (Delete): curl -X DELETE YOURN8NWEBHOOKURL/items?id=2 For more detailed instructions, including building the workflow in n8n, check out the full blog post: Build a Simple REST API in 10 Minutes with n8n & Google Sheets

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.