<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://gtable.app/docs/updates.xml</id>
  <title>gtable documentation, recently updated</title>
  <subtitle>Build on gtable from a script, a terminal or an agent: the REST API, the MCP servers and the CLI, for the Studio and for every app, each acting as the person whose credential it is.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://gtable.app/docs/updates.xml" />
  <link rel="alternate" type="text/html" href="https://gtable.app/docs" />
  <updated>2026-10-05T23:17:36.000Z</updated>
  <author><name>gtable</name></author>
  <entry>
    <id>https://gtable.app/docs/api/errors</id>
    <title>Errors and limits</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/errors" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/errors.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Stable error codes to switch on, why 402 and 429 differ, what an error never contains, and the rate limits that exist today.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/orgs/delete</id>
    <title>Delete an organisation</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/orgs/delete" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/orgs/delete.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only, and it takes everything with it: every suite, every app, every directory and every address stops answering.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/account/delete</id>
    <title>Close your account</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/account/delete" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/account/delete.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Your sign-in goes, and so does every organisation where you are the only builder, with all of its suites and apps.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/billing/checkout</id>
    <title>Start paying for a plan</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/billing/checkout" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/billing/checkout.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/billing/preview</id>
    <title>What changing plan would do, and cost today</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/billing/preview" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/billing/preview.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/billing/change</id>
    <title>Change plan</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/billing/change" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/billing/change.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/billing/cancel</id>
    <title>Cancel the subscription, or a scheduled change</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/billing/cancel" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/billing/cancel.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/billing/resume</id>
    <title>Keep the plan after cancelling it</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/billing/resume" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/billing/resume.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/billing/portal</id>
    <title>Open Stripe's billing portal</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/billing/portal" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/billing/portal.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>Admins only.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/builder-api/referrals/get</id>
    <title>This organisation's referral code and what it has earned</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/builder-api/referrals/get" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/builder-api/referrals/get.md" />
    <updated>2026-10-05T23:17:36.000Z</updated>
    <summary>The code a sign-up link carries, the referrals it brought (status and date, never who), and the credits promised for them.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs</id>
    <title>gtable developer documentation</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/index.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Build on gtable from a script, a terminal or an agent. The REST API, the MCP servers and the CLI, for the Studio and for every app.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/start/studio-and-runtime</id>
    <title>The Studio and the Runtime</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/start/studio-and-runtime" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/start/studio-and-runtime.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>gtable has two planes. Builders define apps in the Studio; invited people use them in their suite's Runtime. Each plane has its own API, MCP server and credentials.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/start/quickstart</id>
    <title>Quickstart</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/start/quickstart" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/start/quickstart.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Make a key in an app you were invited into, read a table and write a record with curl, then hand the same access to an agent.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/start/permissions</id>
    <title>Permissions</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/start/permissions" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/start/permissions.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Groups, the union rule, and what "cannot read" means for an API, an OpenAPI document or an agent. The same rules apply on every surface.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/start/authentication</id>
    <title>Authentication</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/start/authentication" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/start/authentication.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>API keys and OAuth 2.1 with PKCE, device flow and dynamic client registration. Every credential acts as one person, on one plane, and never does more than that person.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/agents/overview</id>
    <title>MCP servers</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/agents/overview" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/agents/overview.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Which MCP address to give an agent. One server per suite for every app you are in, one per app for a narrow integration, Code Mode, and the Studio's own server.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/agents/setup</id>
    <title>Set up your agent</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/agents/setup" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/agents/setup.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Copy one prompt from gtable and your agent connects itself. Or add the server by hand in Claude Code, Claude, ChatGPT, Cursor, VS Code or Codex.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/agents/tools</id>
    <title>Tools</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/agents/tools" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/agents/tools.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>How gtable's MCP tools are named, what their hints mean, how lists page, and what is deliberately not a tool.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/agents/code-mode</id>
    <title>Code Mode</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/agents/code-mode" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/agents/code-mode.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Two tools, search and execute. The agent searches its own OpenAPI document, then writes one script that calls many operations, in a sandbox with no network.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/agents/safety</id>
    <title>Safety and undo</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/agents/safety" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/agents/safety.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>An agent's writes run as you, straight away, and land in the change history. What that means, how to undo one, and how gtable's own assistant differs.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/overview</id>
    <title>REST API overview</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/overview" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/overview.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Two REST APIs, the Builder API on the Studio and the App API of every app, with one envelope, one versioning scheme and one set of error codes.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/conventions</id>
    <title>Conventions</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/conventions" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/conventions.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>The response envelope, how a record looks on the wire, cursor pagination, strict inputs, writes by field name, and replacing a whole document safely.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/idempotency</id>
    <title>Retries and idempotency</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/idempotency" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/idempotency.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Send an Idempotency-Key with every write. A retry then returns the first answer instead of doing the work twice, on both APIs, for 24 hours.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/versioning</id>
    <title>Versioning</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/versioning" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/versioning.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>The API is versioned in its path and announces its contract version on every response. How deprecation works, and how page code is versioned.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/filtering-and-sql</id>
    <title>Filtering, views and SQL</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/filtering-and-sql" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/filtering-and-sql.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Narrow a list with a saved view, a search, a filter tree or a where clause, and read or change many rows with gtable's SQL dialect. All of it through your permissions.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/undo</id>
    <title>Undo and history</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/undo" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/undo.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Every write is recorded with who made it and how it arrived. Undo a change from the API, read a record's history, and restore a deleted table or field from the trash.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/api/events</id>
    <title>Events and webhooks</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/api/events" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/api/events.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Pull what changed in an app since the last event you saw. Webhooks are not available yet; the events feed is how you follow changes today.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/app/get</id>
    <title>What this app is, to you</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/app/get" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/app/get.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>The app's name and address, which surfaces its builder switched on, its theme, YOUR groups in it, and the pages your groups may open.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/schema/get</id>
    <title>Read the schema you can see</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/schema/get" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/schema/get.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Returns the tables and fields your permissions allow.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/list</id>
    <title>List records</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/list" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/list.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Lists records from one table, filtered by your permissions and optionally by a saved view.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/create</id>
    <title>Create records</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/create" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/create.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Creates one or more records.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/count</id>
    <title>Count records</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/count" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/count.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>How many records match, for the same view, filter and search a list would use.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/summarise</id>
    <title>Total a column</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/summarise" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/summarise.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Reductions over the records a list would return: `summaries` is a JSON object of field id to one of sum, avg, median, min, max, range, stdev, count, filled, empty, unique, checked, unchecked or a percentage of those.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/groups</id>
    <title>Count records per value</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/groups" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/groups.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>How many records sit under each value of one column, for the same set a list would return.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/get</id>
    <title>Read one record</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/get" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/get.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Returns a single record with the fields your permissions allow.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/update</id>
    <title>Update a record</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/update" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/update.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Applies a partial update; the body is {"fields":{…}}, keyed by field id or exact name.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/delete</id>
    <title>Delete a record</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/delete" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/delete.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Deletes one record.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/delete-many</id>
    <title>Delete several records</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/delete-many" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/delete-many.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Deletes up to 500 records in one request.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/duplicate</id>
    <title>Duplicate a record</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/duplicate" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/duplicate.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Copies the fields you can both read and write into a new record.</summary>
  </entry>
  <entry>
    <id>https://gtable.app/docs/app-api/records/history</id>
    <title>Read a record's history</title>
    <link rel="alternate" type="text/html" href="https://gtable.app/docs/app-api/records/history" />
    <link rel="alternate" type="text/markdown" href="https://gtable.app/docs/app-api/records/history.md" />
    <updated>2026-10-05T23:01:56.000Z</updated>
    <summary>Every change to this record, newest first, one entry per field that actually moved, setting a field to the value it already held is not history.</summary>
  </entry>
</feed>
