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 β†’

Related APIs in Data Access