Back to HomeAppSheet

AppSheet API Integration Guide: Connecting with External Systems [2025 Complete Tutorial]

11 min min read
#AppSheet#API#REST API#System Integration#Webhook#Zapier#Make#Automation#Enterprise Applications#No-Code

AppSheet API Integration Guide: Connecting with External Systems [2025 Complete Tutorial]

AppSheet isn't just a standalone App—it can connect with your other systems.

Through API, AppSheet can integrate with ERP, CRM, e-commerce platforms, and custom systems.

This tutorial will teach you how to use AppSheet API, from getting an API Key to actual integration.

Want to learn AppSheet basics first? See AppSheet Complete Guide.


What is AppSheet API?

First, let's clarify what API can do.

REST API Overview

AppSheet provides standard REST API.

REST (Representational State Transfer) is a web API design style that almost all programming languages can call.

AppSheet API Features:

  • Standard HTTP methods (GET, POST, PUT, DELETE)
  • JSON format data transfer
  • Authentication based on Application ID and Access Key
  • Supports full CRUD operations

What Can You Do?

Through API, you can:

OperationDescriptionExample Use Case
Read dataGet data from AppSheetDisplay inventory on website
Add dataWrite to AppSheet from external systemAuto-import e-commerce orders
Update dataModify data in AppSheetERP sync status updates
Delete dataRemove data from AppSheetAuto-cleanup expired data

Usage Limits

Important: API requires Core plan or above.

PlanAPI Support
FreeNot supported
StarterNot supported
CoreSupported
EnterpriseSupported (higher limits)

For detailed plan comparison, see AppSheet Pricing Complete Guide.

Other Limits:

  • Requests per minute limit (Core: 10 req/min)
  • Maximum 500 records per response
  • API Key must be kept secure

Illustration 1: AppSheet API Architecture Diagram

API Access Setup

Before using API, you need to set up access permissions.

Step 1: Enable API Feature

Step 1: Enter Settings

After logging into AppSheet, open your App

Click "Settings" → "Integrations"

Step 2: Enable API

Find the "IN: from cloud services to your app" section

Set "Enable" to on

Step 3: Get Authentication Info

Note these two values:

  • App ID: Your Application ID
  • Access Key: Click "Create Application Access Key" to generate

Step 2: Set Table Permissions

Not all Tables can be accessed via API—each needs individual configuration.

Setup Method:

  1. Go to "Data" → "Tables"
  2. Select the Table to open for API
  3. Click "Are updates allowed?"
  4. Confirm "All changes" or "Adds and updates only"

Permission Explanations:

SettingAPI Operations Available
All changesAdd, Update, Delete
Adds and updates onlyAdd, Update (no delete)
Adds onlyAdd only
Read-OnlyRead only

Step 3: Security Considerations

API Key leakage has serious consequences—be very careful.

Security Recommendations:

  1. Don't put API Key in frontend code

    • Keys in JavaScript are visible to anyone
    • Keep them on backend servers
  2. Use HTTPS

    • AppSheet API enforces HTTPS
    • Ensures encrypted data transfer
  3. Rotate Keys Regularly

    • Recommend every 3-6 months
    • Change immediately if possible leakage detected
  4. IP Whitelist (Enterprise)

    • Enterprise plan can set specific IP allowlist

API Operation Tutorial

Actual API call methods.

API Endpoint Format

AppSheet API base endpoint:

https://api.appsheet.com/api/v2/apps/{appId}/tables/{tableName}/Action

Parameter explanations:

  • {appId}: Your Application ID
  • {tableName}: Table name

Read Data (Find)

Get data from a table.

Request Example:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Find",
    "Properties": {
      "Locale": "en-US",
      "Selector": "Filter(Orders, [Status] = \"Pending\")"
    }
  }'

Parameter Explanations:

ParameterDescription
Action"Find" means read
LocaleLocale setting
SelectorFilter condition (uses AppSheet formula syntax)

Response Format:

{
  "Rows": [
    {
      "OrderID": "ORD-001",
      "Customer": "John Smith",
      "Amount": 1500,
      "Status": "Pending"
    },
    {
      "OrderID": "ORD-002",
      "Customer": "Jane Doe",
      "Amount": 2300,
      "Status": "Pending"
    }
  ]
}

Add Data (Add)

Add a new record to Table.

Request Example:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Add",
    "Properties": {
      "Locale": "en-US"
    },
    "Rows": [
      {
        "OrderID": "ORD-003",
        "Customer": "Bob Wilson",
        "Amount": 980,
        "Status": "Pending",
        "CreatedAt": "2025-12-15"
      }
    ]
  }'

Important Notes:

  • Required fields cannot be missing
  • Key field values cannot be duplicated
  • Date format must be correct

Update Data (Edit)

Modify existing data.

Request Example:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Edit",
    "Properties": {
      "Locale": "en-US"
    },
    "Rows": [
      {
        "OrderID": "ORD-001",
        "Status": "Shipped"
      }
    ]
  }'

Note: Must include Key field (OrderID in this example) so system knows which record to update.

Delete Data (Delete)

Delete specified data.

Request Example:

curl -X POST \
  'https://api.appsheet.com/api/v2/apps/YOUR_APP_ID/tables/Orders/Action' \
  -H 'ApplicationAccessKey: YOUR_ACCESS_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "Action": "Delete",
    "Properties": {
      "Locale": "en-US"
    },
    "Rows": [
      {
        "OrderID": "ORD-003"
      }
    ]
  }'

Note: Only need to provide Key field.

Illustration 2: AppSheet API Operations Flow

Integration Examples

Actual integration application scenarios.

Zapier Integration

Zapier is the most commonly used automation integration platform.

Method 1: AppSheet → Zapier (Using Webhook)

When AppSheet has an event, trigger Zapier.

Setup Steps:

  1. Create new Zap in Zapier
  2. Trigger: Select "Webhooks by Zapier" → "Catch Hook"
  3. Copy Webhook URL
  4. In AppSheet Automation, set up Call Webhook
  5. Paste Zapier URL
  6. Configure data to send

Method 2: Zapier → AppSheet (Using API)

Write data to AppSheet from Zapier.

Setup Steps:

  1. Create new Zap in Zapier
  2. Set Trigger (e.g., new Google Form response)
  3. Action: Select "Webhooks by Zapier" → "Custom Request"
  4. Method: POST
  5. URL: AppSheet API endpoint
  6. Headers: Add ApplicationAccessKey
  7. Body: JSON format data

Make (Integromat) Integration

Make is another powerful automation platform, more flexible than Zapier.

Make Advantages:

  • Visual flow design
  • Complex logic handling
  • Lower cost

Setup Steps:

  1. Create new Scenario
  2. Add "HTTP" → "Make a request" module
  3. URL: AppSheet API endpoint
  4. Method: POST
  5. Headers:
    • ApplicationAccessKey: YOUR_KEY
    • Content-Type: application/json
  6. Body: JSON format

Example: E-commerce Order Sync

{
  "Action": "Add",
  "Properties": {"Locale": "en-US"},
  "Rows": [{
    "OrderID": "{{1.order_id}}",
    "Customer": "{{1.customer_name}}",
    "Amount": "{{1.total_amount}}",
    "Status": "Pending"
  }]
}

{{1.xxx}} is Make's variable syntax, auto-populating data from previous module.

Custom System Integration

If you have your own system, you can call the API directly with code.

Python Example:

import requests
import json

# API Configuration
APP_ID = "your-app-id"
ACCESS_KEY = "your-access-key"
TABLE_NAME = "Orders"

# API Endpoint
url = f"https://api.appsheet.com/api/v2/apps/{APP_ID}/tables/{TABLE_NAME}/Action"

# Headers
headers = {
    "ApplicationAccessKey": ACCESS_KEY,
    "Content-Type": "application/json"
}

# Add Order
def add_order(order_data):
    payload = {
        "Action": "Add",
        "Properties": {"Locale": "en-US"},
        "Rows": [order_data]
    }

    response = requests.post(url, headers=headers, json=payload)
    return response.json()

# Usage Example
new_order = {
    "OrderID": "ORD-100",
    "Customer": "David Chen",
    "Amount": 5000,
    "Status": "Pending"
}

result = add_order(new_order)
print(result)

Node.js Example:

const axios = require('axios');

const APP_ID = 'your-app-id';
const ACCESS_KEY = 'your-access-key';
const TABLE_NAME = 'Orders';

const url = `https://api.appsheet.com/api/v2/apps/${APP_ID}/tables/${TABLE_NAME}/Action`;

async function addOrder(orderData) {
  const payload = {
    Action: 'Add',
    Properties: { Locale: 'en-US' },
    Rows: [orderData]
  };

  const response = await axios.post(url, payload, {
    headers: {
      'ApplicationAccessKey': ACCESS_KEY,
      'Content-Type': 'application/json'
    }
  });

  return response.data;
}

// Usage Example
const newOrder = {
  OrderID: 'ORD-101',
  Customer: 'Sarah Lin',
  Amount: 3200,
  Status: 'Pending'
};

addOrder(newOrder).then(result => console.log(result));

API integration too complex? External system integration requires consideration of error handling, security, and performance.

Schedule architecture consultation and let us help design a stable integration solution.


Advanced Applications

More complex API usage techniques.

Webhook Reception

Besides calling external APIs, AppSheet can also receive notifications from external systems.

Use Cases:

  • E-commerce platform order status updates
  • Payment system payment notifications
  • External system triggering AppSheet actions

Setup Method:

  1. Create an Action in AppSheet
  2. Action type: Select "Data: execute an action on a set of rows"
  3. Configure action to execute
  4. In Settings → Integrations, find this Action's URL
  5. Provide URL to external system to call

For detailed Webhook setup, see AppSheet Automation Tutorial.

Batch Operations

Process multiple records at once for efficiency.

Add Multiple Records:

{
  "Action": "Add",
  "Properties": {"Locale": "en-US"},
  "Rows": [
    {"OrderID": "ORD-201", "Customer": "Customer A", "Amount": 1000},
    {"OrderID": "ORD-202", "Customer": "Customer B", "Amount": 2000},
    {"OrderID": "ORD-203", "Customer": "Customer C", "Amount": 3000}
  ]
}

Notes:

  • Maximum 500 records at once
  • Split into batches if exceeding
  • Errors cause entire batch to fail—no partial success

Error Handling

API calls can fail—implement proper error handling.

Common Error Codes:

Error CodeCauseSolution
400Request format errorCheck JSON format, required fields
401Authentication failedVerify Access Key is correct
403Insufficient permissionsConfirm Table has API enabled
404Resource not foundVerify App ID, Table name
429Rate limit exceededReduce request frequency
500Server errorRetry later

Error Handling Example (Python):

import requests
import time

def api_call_with_retry(url, headers, payload, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.post(url, headers=headers, json=payload)

            if response.status_code == 200:
                return response.json()
            elif response.status_code == 429:
                # Rate limited, wait and retry
                time.sleep(60)
                continue
            else:
                # Other errors
                print(f"Error {response.status_code}: {response.text}")
                return None

        except Exception as e:
            print(f"Connection error: {e}")
            time.sleep(5)
            continue

    return None

Illustration 3: API Integration Workflow Example

Useful Tips

Some tips to improve efficiency.

API Testing Tools

Use tools to test API during development without writing code.

Recommended Tools:

  1. Postman

    • Most popular API testing tool
    • Can save requests, environment variables
    • Supports team collaboration
  2. Insomnia

    • Clean interface
    • Open source and free
    • Supports GraphQL
  3. curl

    • Command line tool
    • Available on all systems
    • Good for quick testing

Performance Optimization

Make API calls run faster.

Recommendations:

  1. Use Selector to filter

    • Don't get all data then filter in code
    • Specify conditions in API
  2. Only get needed fields

    • Reduce data transfer size
  3. Batch processing

    • Send multiple records at once
    • Reduce API call count
  4. Caching mechanism

    • Cache infrequently changing data
    • Reduce repeated calls

Monitoring and Logging

Track API usage status.

Recommended Practices:

  • Log each API call's time and result
  • Monitor error rate
  • Set up anomaly alerts
  • Regularly review usage volume

FAQ

Is AppSheet API free?

No. Requires Core plan or above to use API.

For detailed pricing, see AppSheet Pricing Guide.

Are there request limits for API?

Yes. Core plan is 10 per minute, Enterprise is higher.

Exceeding limit returns 429 error—need to wait and retry.

Can I call AppSheet API directly from frontend?

Technically yes, but strongly not recommended.

API Key would be exposed in frontend code—anyone can see and abuse it.

Should call API from backend server.

Does AppSheet API support GraphQL?

No. AppSheet only provides REST API.

If you need GraphQL, you'd need to build a middleware layer to convert.

How to get data from multiple Tables?

Need to call each Table's API separately.

AppSheet API doesn't support JOIN or querying multiple Tables at once.

What's the difference between Webhook and API?

API (Active Call):

  • You actively request data from AppSheet
  • Good for: Getting data when needed

Webhook (Passive Receive):

  • AppSheet notifies you when events happen
  • Good for: Real-time reactions, event-driven

If you want to integrate Webhook with LINE, see AppSheet LINE Integration Tutorial.


Next Steps

After API integration setup is complete, your AppSheet can work with external systems.

Continue Learning

Implementation Recommendations

  1. Test with Postman first: Confirm API works before writing code
  2. Implement error handling: Handle network instability, rate limiting
  3. Mind security: Don't put API Key in frontend, rotate regularly
  4. Monitor usage: Avoid exceeding limits and getting blocked

For more integration application examples, see AppSheet Examples Gallery.


Need Professional System Integration?

API integration involves professional considerations like security, performance, and error handling.

Common integration needs:

  • E-commerce platform order sync
  • ERP system data integration
  • Automated workflow design
  • Multi-system data synchronization

Schedule architecture consultation and let us help plan complete integration architecture.


References

  1. AppSheet Documentation - REST API Reference
  2. AppSheet API v2 Guide
  3. Google Cloud - AppSheet Integration Best Practices

Need Professional Cloud Advice?

Whether you're evaluating cloud platforms, optimizing existing architecture, or looking for cost-saving solutions, we can help

Book Free Consultation

Related Articles