# Start here

> Automate Google Sheets, Excel and BigQuery from your code or your AI assistant: pick the REST API or the MCP server, create an API key and make your first call.

HTML version: https://developers.sheetgo.com/

Sheetgo developer docs

# Build on Sheetgo with the REST API or the MCP server

Sheetgo gives you two ways in. The **REST API** manages Sheetgo itself: workflows, automations, triggers, forms, dashboards and runs. The **MCP server** lets an AI assistant work directly in your Google Sheets, Drive, Docs, PDFs, BigQuery and Gmail. Both use the same Sheetgo API key. This page explains both, helps you choose, and links to the full reference.

### REST API

78 HTTP endpoints in 13 groups, described by OpenAPI. For scripts, back ends, integrations and agents that call HTTP.

Base URL: `https://api.sheetgo.com` · paths start with `/rest/beta/`

[Open the API docs →](/api.md)

### MCP server

41 tools over the Model Context Protocol (Streamable HTTP). For AI assistants such as Claude, Cursor or VS Code agents.

Endpoint: `https://api.sheetgo.com/mcp`

[Open the MCP docs →](/mcp.md)

### For AI agents

Plain, server-rendered HTML pages, one per topic, with an index for LLMs.

Index for LLMs: </llms.txt>

[How to read these docs →](#for-ai-agents)

Site map

## The pages

[**MCP server**Let Claude, ChatGPT, Cursor or any MCP client work in your Google Sheets, Drive, Docs, PDFs, BigQuery and Gmail: setup in minutes, permissions and all 41 tools.](/mcp.md)
[**REST API**Create, run and monitor Sheetgo workflows and automations from your code: authentication, quickstart, errors and all 78 endpoints.](/api.md)
[**API · Workflows**A workflow is an automated process that connects your spreadsheets and files and moves data between them — on a schedule or on demand — so a task…](/api/workflows.md)
[**API · Automations**An automation (also called a connection) is a single data transfer inside a workflow: it pulls data from one or more sources, optionally…](/api/automations.md)
[**API · Triggers**A trigger defines what makes a workflow run automatically, so you set it once instead of running the workflow by hand.](/api/triggers.md)
[**API · Dashboards**Dashboards turn a workflow's data into shareable visual summaries.](/api/dashboards.md)
[**API · Forms**A Sheetgo form collects data straight into a workflow.](/api/forms.md)
[**API · Webhooks**A webhook is a private URL that lets external systems push data into a workflow over HTTP.](/api/webhook.md)
[**API · API as destination**API as a destination turns a workflow's output into a live, read-only JSON feed at a private URL.](/api/api-destination.md)
[**API · Integrations**Integrations are pre-configured sources for third-party services — currently Shopify and QuickBooks.](/api/integrations.md)
[**API · Outlook email**Integration endpoints used by the Sheetgo add-in for Microsoft Outlook to connect mailbox data to workflows.](/api/outlook.md)
[**API · Gmail**Read and send email through a connected Google account.](/api/gmail.md)
[**API · Files and folders**Browse and search the storage providers connected to your account — Google Drive, OneDrive, SharePoint and Dropbox — to find the ids you need when…](/api/files.md)
[**API · BigQuery**BigQuery can be both a source and a destination for an automation: read a table or a query's results into a spreadsheet, or load a spreadsheet's rows…](/api/bigquery.md)
[**API · OAuth**OAuth2 authorization endpoints — exchange a Client ID / Client Secret for an access token, for developer and customer integrations.](/api/auth.md)
[**API · Models**Look up any field of the 153 request and response models.](/api/models.md)
[**API · Guides**Stay within rate limits, scope API keys, and use smart tags and cell references.](/api/guides.md)
[**Versioning**Know what can change in the API, how you are warned, and how long old calls keep working.](/versioning.md)
[**Changelog**See what changed in the Sheetgo REST API and MCP server, newest first, with an Atom feed.](/changelog.md)
[**Python examples**Copy working Python code: retries, pagination, create and run an automation, column letters, MCP tool calls, and an AI agent with the Sheetgo tools.](/examples.md)

Read this first if you are an AI agent

## For AI agents and LLMs

**How these pages are organised.** This site is plain, server-rendered HTML, one page per topic. Every section is in the page source, even the ones shown collapsed. A plain-text index of all pages is at </llms.txt>.

- [Start here](/index.md) (this page): choosing between the API and MCP, the API key, scopes, glossary.
- [MCP server](/mcp.md): everything about the MCP server, including every tool with its parameters, return values and errors.
- [REST API](/api.md): REST API overview (auth, conventions, errors, quickstart) and the index of every endpoint.
- One page per API group (for example [Workflows](/api/workflows.md)): every operation of one group in full (parameters, request body, responses, errors), plus **every model those operations use**, so one page is enough to build a request.
- [Models](/api/models.md): all models in one place. [Guides](/api/guides.md): rate limits, key scopes, smart tags, cell references.

1. **Choose** the REST API or MCP with the table in [API or MCP?](#choose). If the user did not say, ask what they want to do.
2. **For the REST API:** open [the endpoint index](/api.md#api-endpoints), then the group page of the endpoint you need. Read the operation and the models listed under "Models used on this page" before you write the request. The API also serves its own docs at <https://api.sheetgo.com/rest/llms.txt> and <https://api.sheetgo.com/rest/reference.md> (Markdown), and the spec at <https://api.sheetgo.com/rest/openapi.json>; if they differ from these pages, follow them. **Paths include the version.** Every path in these docs is complete: append it to the base URL exactly as shown, for example `GET /rest/beta/workflows/` is `https://api.sheetgo.com/rest/beta/workflows/`. The segment after `/rest/` is the API version (today `beta`). It is part of the path and cannot be left out: `/rest/workflows/` does not exist. A later version will have its own segment (for example `/rest/v1/`); always use the path shown for the endpoint. Only the OAuth routes (`/rest/auth/…`) have no version segment. What each version promises: [versioning and deprecation](/versioning.md).
3. **For MCP:** the [tool reference](/mcp.md#mcp-tools) lists every tool and its parameters. Once connected, the server's own `tools/list` is the reference.
4. **Do not guess.** Do not invent endpoints, fields, enum values or tool parameters that are not shown in these docs. If something is missing, fetch the linked page or say that you do not know.
5. **Handle the API key as a secret.** Ask the user for their `sg_…` key, send it only in the `Authorization` header, and never print it back or store it in files you share.
6. **Ask before destructive actions.** Deleting files, clearing ranges, deleting tabs, archiving workflows and running automations change the user's data. Confirm first, and use `dry_run` where a tool offers it.

The `/rest` pages (Swagger, ReDoc) need JavaScript for people, but they also contain a server-rendered text summary, and every reference page has a Markdown copy: add `.md` to the URL, or send `Accept: text/markdown`.

Decide

## REST API or MCP?

They do different jobs. The REST API controls **Sheetgo** (the automations that move data between your files on a schedule). The MCP server lets an assistant work **inside your Google files** right now, in a conversation. Many projects use both.

|  | REST API | MCP server |
| --- | --- | --- |
| What it acts on | Sheetgo objects: workflows, automations (with their sources, processors and destinations), triggers and schedules, forms and their responses and approvals, dashboards, sharing, run status. Also file discovery, BigQuery discovery and sending email. | Your Google files, directly: read and write Google Sheets, browse and organise Google Drive, read and fill Google Docs, read PDFs (text, tables, OCR), export and merge PDFs, run read-only BigQuery queries, read and search Gmail and export messages to a sheet. |
| Typical caller | Any program that speaks HTTP: scripts, back ends, no-code tools, CI jobs, and agents with an HTTP tool. | An AI assistant or agent that supports MCP: Claude Code, Claude Desktop (through a bridge), Cursor, VS Code, or your own MCP client. |
| Protocol | HTTPS + JSON, described by OpenAPI 3. | Model Context Protocol (JSON-RPC 2.0) over Streamable HTTP: `tools/list` and `tools/call`. |
| Timing | Running an automation is **asynchronous**: `POST …/run` answers `200` when the run is *queued*; you then poll its run status. | **Synchronous**: every tool call does its work and returns the result. |
| Storage covered | Google Drive and Sheets, Microsoft OneDrive and SharePoint (Excel), Dropbox, BigQuery, Outlook, Gmail, APIs and webhooks, Shopify and QuickBooks. | Google only: Drive, Sheets, Docs, PDFs and images stored in Drive, BigQuery, Gmail (read only). |
| Works without Sheetgo running anything | No: automations run on Sheetgo's servers, on demand or on a trigger, even when nobody is online. | Yes: each call happens right away and nothing keeps running afterwards. |
| Authentication | Sheetgo API key (`Authorization: Bearer sg_…`) or OAuth2. | Sheetgo API key only (`Authorization: Bearer sg_…` or `x-api-key: sg_…`). |
| Limits | Per account: 120 reads and 30 writes per minute (read the `X-RateLimit-*` headers). [Rate Limiting guide](/api/guides.md#guide-rate-limiting). | Per API key: 120 calls per minute. Heavy file tools (PDF, OCR, export, merge, versions) run one at a time per key. |
| Documentation | Swagger, ReDoc, Markdown pages, `llms.txt`, OpenAPI JSON. | This page, plus `tools/list` from the server. |

### Rules of thumb

- **Use the REST API** to create, change, run or schedule Sheetgo workflows and automations; to keep data moving between files on a schedule; to work with Microsoft, Dropbox, Shopify, QuickBooks or webhooks; or to build a back-end integration.
- **Use MCP** when an assistant should read, analyse, write or tidy up Google files during a conversation: "summarise this sheet", "append these rows", "fill this Doc template and export it to PDF", "find the latest invoice PDF and extract its table".
- **Use both** when an assistant prepares files with MCP and then sets up a recurring Sheetgo automation with the API. Example: MCP checks the `{{tags}}` in a Docs template with `docs_list_tags`, then the API creates an automation with a `document` destination that merges every row into that template.

Both products

## Before you start

1. **A Sheetgo account.** Sign in at <https://app.sheetgo.com>. API calls and MCP tools act *as you*: they can reach exactly what your account can reach.
2. **Connect your storage in Sheetgo.** Sheetgo uses the connections you already authorised in the web app. MCP needs your **Google** account connected (it is when you sign in with Google). BigQuery needs BigQuery authorised in the web app, and the Gmail tools need Gmail read access. The API's Microsoft, Dropbox, Outlook and integration features need those accounts connected.
3. **Create an API key.** In Sheetgo open **Account → Services and account → Sheetgo API** (<https://app.sheetgo.com/account>) and create a key. It starts with `sg_` and is shown **only once**, so copy it straight away. You can create several keys (for example one per tool or agent) and revoke any of them. The API and the MCP server are included in every [paid Sheetgo plan](https://www.sheetgo.com/pricing/?utm_source=developers&utm_medium=referral&utm_campaign=developer_portal).
4. **Optionally, limit the key.** A new key has full access. Scopes can limit it to some actions (view, edit, delete) and some items. Give an AI agent the smallest scope that does the job, for example *View everything*. See [MCP permissions](/mcp.md#mcp-permissions) and the [API Key Scopes guide](/api/guides.md#guide-api-key-scopes).

**Keep the key secret.** Anyone with the key can act as you. Store it in an environment variable or a secret manager, not in code, prompts or shared files. If a key leaks, revoke it in the Account page.

Terms

## Glossary

|  |  |
| --- | --- |
| **Workflow** | A Sheetgo project that groups automations and runs them together, on demand or on a trigger. |
| **Automation** (also *connection*) | One data transfer inside a workflow: one or more **sources**, optional **processors** (filter, merge, AI, anonymize…) and one or more **destinations**. |
| **Trigger** | What runs a workflow automatically: a schedule, or a change to a file. |
| **Provider** | Where a file lives: `drive` (Google Drive and Google Sheets), `onedrive`, `sharepoint`, `dropbox`. |
| **Smart tag** | A `{{Header}}` placeholder that Sheetgo fills with a value from your data (documents, emails, file names). |
| **API key** | A secret starting with `sg_` that acts as your Sheetgo user. Used by both the REST API and MCP. |
| **Scope** | A limit on what an API key may do: actions (view, edit, delete) on resources (workflows, automations, forms, sheets, drive, bigquery…). |
| **MCP tool** | One operation the MCP server offers, such as `sheets_get_values`. Listed by `tools/list`, run by `tools/call`. |

Everything in one place

## All links

- REST API base: <https://api.sheetgo.com/rest> (Swagger UI)
- ReDoc: <https://api.sheetgo.com/rest/redoc>
- Reference start page: <https://api.sheetgo.com/rest/reference> · [Markdown](https://api.sheetgo.com/rest/reference.md)
- LLM index: <https://api.sheetgo.com/rest/llms.txt>
- LLM full text: <https://api.sheetgo.com/rest/llms-full.txt>
- OpenAPI spec: <https://api.sheetgo.com/rest/openapi.json>
- MCP endpoint (for MCP clients, not browsers): `https://api.sheetgo.com/mcp`
- Create an API key: <https://app.sheetgo.com/account>
- Support: [support@sheetgo.com](mailto:support@sheetgo.com)
