Google Sheets REST API, connect Google Spreadsheet with your site

2 min read Original article ↗
<!-- More details here: https://docs.sheetdb.io/handlebars -->

<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>
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);
    }
});
// 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);
    });
<?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
)
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);
});