Sheety

Sheety

Data Access

Turn any Google Sheet into a RESTful JSON API instantly. Create, read, update, and delete data using simple HTTP requests - no backend required.

Visit APIπŸ” Alternatives

πŸ“š Documentation & Examples

Everything you need to integrate with Sheety

πŸš€ Quick Start Examples

Sheety Javascript Examplejavascript
// Sheety API Example
const response = await fetch('https://sheety.co/', {
    method: 'GET',
    headers: {
        'Content-Type': 'application/json'
    }
});

const data = await response.json();
console.log(data);

Sheety API

Sheety transforms any Google Sheet into a fully functional REST API in seconds. Perfect for prototyping, small projects, or using spreadsheets as a simple database. No coding required to set up - just connect your sheet and start making API calls.

Key Features

  1. Instant API Generation - Turn Google Sheets into APIs with zero configuration
  2. Full CRUD Operations - GET, POST, PUT, and DELETE supported
  3. JSON Responses - Clean, structured JSON data from your spreadsheets
  4. Real-time Sync - Changes in the sheet reflect immediately in the API
  5. Authentication Options - Basic auth and Bearer token support

Free Tier

  • 200 requests per month
  • 3 projects
  • Basic authentication

How It Works

  1. Create a Google Sheet with headers in the first row
  2. Connect it to Sheety
  3. Get your API endpoint
  4. Start making requests!

JavaScript Example

const axios = require('axios');

const SHEETY_API = 'https://api.sheety.co/YOUR_PROJECT_ID/YOUR_SHEET_NAME';
const BEARER_TOKEN = 'YOUR_BEARER_TOKEN';

const headers = {
  'Authorization': `Bearer ${BEARER_TOKEN}`,
  'Content-Type': 'application/json'
};

// GET all rows
async function getAllRows() {
  const response = await axios.get(SHEETY_API, { headers });
  return response.data;
}

// GET a single row by ID
async function getRow(id) {
  const response = await axios.get(`${SHEETY_API}/${id}`, { headers });
  return response.data;
}

// POST a new row
async function addRow(data) {
  const body = { row: data };
  const response = await axios.post(SHEETY_API, body, { headers });
  return response.data;
}

// PUT (update) a row
async function updateRow(id, data) {
  const body = { row: data };
  const response = await axios.put(`${SHEETY_API}/${id}`, body, { headers });
  return response.data;
}

// DELETE a row
async function deleteRow(id) {
  const response = await axios.delete(`${SHEETY_API}/${id}`, { headers });
  return response.data;
}

// Example usage: Managing a product inventory
async function manageInventory() {
  // Add a new product
  const newProduct = await addRow({
    name: 'Widget Pro',
    price: 29.99,
    quantity: 100,
    category: 'Electronics'
  });
  console.log('Added:', newProduct);

  // Get all products
  const products = await getAllRows();
  console.log('All products:', products);

  // Update quantity
  await updateRow(newProduct.row.id, { quantity: 95 });
  console.log('Updated quantity');
}

manageInventory();

Python Example

import requests

SHEETY_API = 'https://api.sheety.co/YOUR_PROJECT_ID/YOUR_SHEET_NAME'
HEADERS = {
    'Authorization': 'Bearer YOUR_BEARER_TOKEN',
    'Content-Type': 'application/json'
}

def get_all_rows():
    response = requests.get(SHEETY_API, headers=HEADERS)
    return response.json()

def add_row(data):
    body = {'row': data}
    response = requests.post(SHEETY_API, json=body, headers=HEADERS)
    return response.json()

def update_row(row_id, data):
    body = {'row': data}
    response = requests.put(f'{SHEETY_API}/{row_id}', json=body, headers=HEADERS)
    return response.json()

def delete_row(row_id):
    response = requests.delete(f'{SHEETY_API}/{row_id}', headers=HEADERS)
    return response.json()

# Example: Contact list management
new_contact = add_row({
    'name': 'John Doe',
    'email': 'john@example.com',
    'phone': '555-1234'
})
print(f"Added contact with ID: {new_contact['row']['id']}")

contacts = get_all_rows()
print(f"Total contacts: {len(contacts['rows'])}")

cURL Examples

# Get all rows
curl -H "Authorization: Bearer YOUR_TOKEN" \
     "https://api.sheety.co/YOUR_PROJECT_ID/sheet1"

# Add a new row
curl -X POST \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"row": {"name": "Test", "value": 123}}' \
     "https://api.sheety.co/YOUR_PROJECT_ID/sheet1"

# Update a row
curl -X PUT \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"row": {"name": "Updated"}}' \
     "https://api.sheety.co/YOUR_PROJECT_ID/sheet1/2"

# Delete a row
curl -X DELETE \
     -H "Authorization: Bearer YOUR_TOKEN" \
     "https://api.sheety.co/YOUR_PROJECT_ID/sheet1/2"

Use Cases

  • Prototyping - Quickly build MVPs without setting up a database
  • Content Management - Use sheets as a simple CMS
  • Form Submissions - Store form data in a spreadsheet
  • Inventory Tracking - Manage stock with a spreadsheet interface
  • Event Registration - Collect and manage signups

Get Started Free β†’

πŸ“Š 30-Day Uptime History

Daily uptime tracking showing online vs offline minutes

Feb 4Feb 6Feb 8Feb 10Feb 12Feb 14Feb 16Feb 18Feb 20Feb 22Feb 24Feb 26Feb 28Mar 2Mar 504008001440Minutes
Online
Offline

Related APIs in Data Access