Easy to implement on your own
Sheetsu helps you connect Google Sheets to anything - Web, Mobile, IoT or any service's API.
You don't need to be a developer to use our solution. We've premade codes and embeddable snippets you can use out of the box.
We have libraries for most technologies. Sheetsu works with all frameworks and languages.
Build stuff fast.
Don’t focus on setting up tools. Just create.
Connect Google Sheets anywhere
Items list, forms, content, data collection.
We've got your back
We want you to succeed.
Simple Docs
Our API is simple to use. But, what's even better - we've got libraries/SDKs/API bindings to most common technologies used nowadays. You can be up and run in a matter of seconds. You can find a lot of short examples, all different technologies in the docs.
Check docs →
Help from a developer
If you need help with integration, we can handle it for you! With any paid plan, you get 1 hour with our developer. You can schedule a call with us. We will help you build an end-2-end solution and do Sheetsu work with your service/project.
Book a developer →
Easy to implement
We've built language bindings so you can start creating in your favorite language. Or if you don't know how to code, just paste HTML code.
Sheetsu one-line implementation allows you to focus on your product and build great features. No setup, no token refreshing, no more quirky docs. Just get access to Google Spreadsheets from your code.
Search spreadsheet
Perform a search query on any number of columns with wildcards.
<!-- Get all records where score is 42 --> <div sheetsu="//sheetsu.com/apis/v1.0lh/020b2c0f" sheetsu-search='{"score": "42"}'> <p>Name: {{name}}, score: {{score}}</p> </div> <script src="//load.sheetsu.com"></script>
# Get all rows where column 'score' is '42' curl "//sheetsu.com/apis/v1.0lb/020b2c0f/search?score=42"
# Get all rows where column 'score' is '42' client .read({ search: { score: 42 } }) .then(function(data) { console.log(data); }, function(err){ console.log(err); });
# Get all rows where column 'score' is '42' require 'sheetsu' sheetsu = Sheetsu::Client.new("//sheetsu.com/apis/v1.0lr/020b2c0f") sheetsu.read(search: { score: 42 })
# Get all rows where column 'score' is '42' from sheetsu import SheetsuClient client = SheetsuClient("020b2c0f") client.search(score="42")
// Get all rows where column 'score' is '42' require('vendor/autoload.php'); use Sheetsu\Sheetsu; $sheetsu = new Sheetsu([ 'sheetId' => '020b2c0f' ]); $response = $sheetsu->search([ 'score' => '42' ]);
<head> <script src="//script.sheetsu.com/"></script> </head> <body> <script> function successFunc(data) { console.log(data); } // Get all rows where column 'score' is '42' var searchQuery = { score: 42, }; Sheetsu.read("//sheetsu.com/apis/v1.0lw/020b2c0f/", { search: searchQuery }, successFunc); </script> </body>
function successFunc(data) { console.log(data); } // Get all rows where column 'score' is '42' var searchQuery = { score: 42, }; $.ajax({ url: "//sheetsu.com/apis/v1.0lq/020b2c0f/search", data: searchQuery, success: successFunc });
// Get all rows where column 'score' is '42' import Foundation let url = String(format: "//sheetsu.com/apis/v1.0ls/020b2c0f/search?score=42") 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()
// Get all rows where column 'score' is '42' using System; using System.Net; using System.IO; namespace Sheetsu { public class Example { public static void Main(string[] args) { string sheetsuResponse = string.Empty; string apiUrl = @"//sheetsu.com/apis/v1.0lc/020b2c0f/search?score=42"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); sheetsuResponse = reader.ReadToEnd(); Console.WriteLine(sheetsuResponse); } } }
# Get all rows where column 'score' is '42' library(httr) query <- list(score = 42) response <- GET( "//sheetsu.com/apis/v1.0/020b2c0f/search", query = query ) data <- content(response, "parsed")
// Get all records where score is 42 class SheetsuRead extends React.Component { constructor(props) { super(props); this.state = { data: [], }; } componentDidMount() { fetch("//sheetsu.com/apis/v1.0lt/020b2c0f/search?score=42") .then( (response) => { return response.json() }).then( (json) => { this.setState({data: json}); }); } renderData() { return this.state.data.map((row) => <div key={row.id}>{row.id}. Name: {row.name}, Score: {row.score}</div> ); } render() { return ( <div> {this.renderData()} </div> ); } }
- Sheetsu with Python →
Access Google Sheets easily with Sheetsu Python Package
- Sheetsu with Javascript →
Use Google Sheets Api in your Javascript app easily with Sheetsu.
What Our Customers Say
Sheetsu has helped us streamline requests without needing to build out a full backend. The API is incredibly quick & easy to setup, and it integrates well into our existing workflows.
Abram Wilson
SV Angel
Sheetsu gave us a quick and easy way to collect data in a Google Spreadsheet. Our developers shaved days off of our backlog because Sheetsu allowed us to skip building middleware, an API, or running a server.
Jason Thane
General UI
Sheetsu has tremendously helped us in providing quick content solutions that enable our content editors to stay on their Google Sheets and at the same time provide input to the API services. Thanks, Sheetsu!!!
Noel Branzuela
MediaWorks
We love Sheetsu for capturing form data. It's great to push an email capture form or something for a contest into a shareable Google Spreadsheet.
John Rhoad
colab.la