Turn a Google Spreadsheet
into a JSON API

Connect Google sheets to CRM, API, Website, WordPress, any application or tool.

Create Free API Use Cases Documentation
    "id": "1",
    "name": "Tom",
    "age": "15",
    "comment": ""
    "id": "2",
    "name": "Alex",
    "age": "24",
    "comment": ""

Easy to use and implement

SheetDB will turn your sheets into a JSON API, easy to integrate with other tools and all programming languages. We have prepared many libraries working with common tools, other APIs and programming languages.

If you want to use a different API, e.g. in your CRM, you can use our API to turn the spreadsheet into JSON API.

Use Cases and Examples

Google Sheets JSON API

You can read and edit your spreadsheet with GET, POST, PUT and DELETE requests with just a few lines of code.


Examples and code samples

Make interactive content without coding skills

non-IT WordPress

If you don't know how to code simpy use our HTML Handlebars snippet.

Give your clients a CMS that everyone know how to use

Digital agencies

If you work with non-IT people, use Google Sheets as a database for your projects. Spreadsheet is a great CMS that everyone know how to use!

Developers first, no matter what language you use


SheetDB is really easy to implement with any programming language. We take care about tokens and security stuff, so you can focus on your ideas.

<!-- More details here: https://docs.sheetdb.io/#our-handlebars-snippet --> <table> <thead> <tr> <td>ID</td> <td>Name</td> <td>Age</td> <td>Comment</td> </tr> </thead> <tbody data-sheetdb-url="https://sheetdb.io/api/v1/58f61be4dda40" data-sheetdb-sort-by="age" data-sheetdb-sort-order="desc"> <tr> <td>{{id}}</td> <td>{{name}}</td> <td>{{age}}</td> <td>{{comment}}</td> </tr> </tbody> </table> <script src="https://sheetdb.io/handlebars.js"></script> <!-- More details here: https://wordpress.org/plugins/sheetdb/ --> [sheetdb url="https://sheetdb.io/api/v1/58f61be4dda40" element="ul" limit=3 search="id=*" sort-by="id" sort-order="desc"] {{id}} – {{name}} [/sheetdb] fetch('https://sheetdb.io/api/v1/58f61be4dda40') .then(response => response.json()) .then(data => { console.log(data); }) .catch(error => { console.error(error); }); $.ajax({ url: "https://sheetdb.io/api/v1/58f61be4dda40", success: function(data) { console.log(data); } }); <script src="//cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js"></script> <script> // Get all data axios.get('https://sheetdb.io/api/v1/58f61be4dda40') .then( response => { console.log(response.data); }); // Get 10 results starting from 20 axios.get('https://sheetdb.io/api/v1/58f61be4dda40?limit=10&offset=20') .then( response => { console.log(response.data); }); // Get all data sorted by name in ascending order axios.get('https://sheetdb.io/api/v1/58f61be4dda40?sort_by=name&sort_order=asc') .then( response => { console.log(response.data); }); </script> <?php // Install SheetDB package: composer require sheetdb/sheetdb-php // More details here: https://github.com/sheetdb/sheetdb-php require('vendor/autoload.php'); use SheetDB\SheetDB; $sheetdb = new SheetDB('58f61be4dda40'); $content = $sheetdb->get(); // returns all spreadsheets data $keys = $sheetdb->keys(); // returns all spreadsheets key names $name = $sheetdb->name(); // returns name of a spreadsheet document <?php $options = [ 'http' => [ 'method' => 'GET' ] ]; $response = json_decode( file_get_contents('https://sheetdb.io/api/v1/58f61be4dda40', false, stream_context_create($options)) ); require 'net/http' require 'json' response = JSON.parse( Net::HTTP.get( URI('https://sheetdb.io/api/v1/58f61be4dda40') ) ) import requests import json response = json.loads( requests.get('https://sheetdb.io/api/v1/58f61be4dda40').content ) new Vue({ el: "#app", data() { return { content: [] } }, template: `<table> <thead> <tr> <td>ID</td> <td>Name</td> <td>Age</td> <td>Comment</td> </tr> </thead> <tbody> <tr v-for="person in content"> <td v-text="person.id"></td> <td v-text="person.name"></td> <td v-text="person.age"></td> <td v-text="person.comment"></td> </tr> </tbody> </table>`, created() { fetch('https://sheetdb.io/api/v1/58f61be4dda40') .then(response => response.json()) .then(data => this.content = data) } }); import Foundation // Read whole spreadsheet let url = String(format: "https://sheetdb.io/api/v1/58f61be4dda40") let serviceUrl = URL(string: url) var request = URLRequest(url: serviceUrl!) request.httpMethod = "GET" request.setValue("Application/json", forHTTPHeaderField: "Content-Type") let session = URLSession.shared session.dataTask(with: request) { (data, response, error) in if let data = data { do { let json = try JSONSerialization.jsonObject(with: data, options: []) print(json) } catch { print(error) } } }.resume() const sheetdb = require("sheetdb-node"); const client = sheetdb({ address: '58f61be4dda40' }); // Read whole spreadsheet client.read().then(function(data) { console.log(data); }, function(error){ console.log(error); }); // Read first two rows from sheet "Sheet2" client.read({ limit: 2, sheet: "Sheet2" }).then(function(data) { console.log(data); }, function(err){ console.log(err); });

Friendly, personal support

Write to us via email or chat in bottom right corner. We are developers, we can assist with your integrations!

Ready to get started?

Create your free API now
Sign in with Google account