# gtable > 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. Answer from these pages rather than from memory: they describe the current API version (/v1). gtable has two planes. The Studio (https://studio.gtable.app) is where builders define apps; its Builder API is the same for everyone. Each app runs in its suite's Runtime at https://{suite}.gtable.app/{app}, and its App API is generated per caller: the real OpenAPI document is https://{suite}.gtable.app/{app}/v1/openapi.json, masked to the tables and fields that caller can read. The App API reference here is the generic contract and names no real table or field. Never invent table or field names; read them from the caller's own schema. The OpenAPI documents at /docs/openapi/builder.json and /docs/openapi/app.json are authoritative for request and response shapes. Where a guide and the reference disagree, the reference wins. Every credential acts as one person and can never do more than that person. There is no admin key. Keys start with gt_ (keys issued before the rename start with dva_ and still work). gtable is pre-release and not open to sign-ups. The CLI is not published to npm yet: do not tell anyone to run it with npx. Every page is also served as Markdown: append `.md` to its URL. Cite the HTML URL, which is the canonical one. Each link below is a page of this documentation as Markdown. The same path without the `.md` suffix serves the HTML version. ## Get started - [The Studio and the Runtime](https://gtable.app/docs/start/studio-and-runtime.md): 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. - [Quickstart](https://gtable.app/docs/start/quickstart.md): 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. - [Permissions](https://gtable.app/docs/start/permissions.md): 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. - [Authentication](https://gtable.app/docs/start/authentication.md): 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. ## Agents - [MCP servers](https://gtable.app/docs/agents/overview.md): 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. - [Set up your agent](https://gtable.app/docs/agents/setup.md): 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. - [Tools](https://gtable.app/docs/agents/tools.md): How gtable's MCP tools are named, what their hints mean, how lists page, and what is deliberately not a tool. - [Code Mode](https://gtable.app/docs/agents/code-mode.md): 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. - [Safety and undo](https://gtable.app/docs/agents/safety.md): 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. ## REST API - [REST API overview](https://gtable.app/docs/api/overview.md): 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. - [Conventions](https://gtable.app/docs/api/conventions.md): The response envelope, how a record looks on the wire, cursor pagination, strict inputs, writes by field name, and replacing a whole document safely. - [Errors and limits](https://gtable.app/docs/api/errors.md): Stable error codes to switch on, why 402 and 429 differ, what an error never contains, and the rate limits that exist today. - [Retries and idempotency](https://gtable.app/docs/api/idempotency.md): 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. - [Versioning](https://gtable.app/docs/api/versioning.md): The API is versioned in its path and announces its contract version on every response. How deprecation works, and how page code is versioned. - [Filtering, views and SQL](https://gtable.app/docs/api/filtering-and-sql.md): 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. - [Undo and history](https://gtable.app/docs/api/undo.md): 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. - [Events and webhooks](https://gtable.app/docs/api/events.md): 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. ## App API - [What this app is, to you](https://gtable.app/docs/app-api/app/get.md): 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. - [Read the schema you can see](https://gtable.app/docs/app-api/schema/get.md): Returns the tables and fields your permissions allow. - [List records](https://gtable.app/docs/app-api/records/list.md): Lists records from one table, filtered by your permissions and optionally by a saved view. - [Create records](https://gtable.app/docs/app-api/records/create.md): Creates one or more records. - [Count records](https://gtable.app/docs/app-api/records/count.md): How many records match, for the same view, filter and search a list would use. - [Total a column](https://gtable.app/docs/app-api/records/summarise.md): 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. - [Count records per value](https://gtable.app/docs/app-api/records/groups.md): How many records sit under each value of one column, for the same set a list would return. - [Read one record](https://gtable.app/docs/app-api/records/get.md): Returns a single record with the fields your permissions allow. - [Update a record](https://gtable.app/docs/app-api/records/update.md): Applies a partial update; the body is {"fields":{…}}, keyed by field id or exact name. - [Delete a record](https://gtable.app/docs/app-api/records/delete.md): Deletes one record. - [Delete several records](https://gtable.app/docs/app-api/records/delete-many.md): Deletes up to 500 records in one request. - [Duplicate a record](https://gtable.app/docs/app-api/records/duplicate.md): Copies the fields you can both read and write into a new record. - [Read a record's history](https://gtable.app/docs/app-api/records/history.md): 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. - [List the saved views of a table](https://gtable.app/docs/app-api/views/list.md): Your own saved views of this table, in the order you arranged them. - [Save a new view of a table](https://gtable.app/docs/app-api/views/create.md): Visible to you alone; there is no other kind. - [Read one saved view](https://gtable.app/docs/app-api/views/get.md): One of yours. - [Change a saved view](https://gtable.app/docs/app-api/views/update.md): Only a view that is yours. - [Delete a saved view](https://gtable.app/docs/app-api/views/delete.md): Only a view that is yours, which is every view you can see. - [Reorder a table's views](https://gtable.app/docs/app-api/views/reorder.md): `ids` in the order you want them. - [Read a record's comments](https://gtable.app/docs/app-api/comments/list.md): The notes users have left on this record, oldest first. - [Comment on a record](https://gtable.app/docs/app-api/comments/create.md): Leaves a note on a record. - [Who may be named on this record](https://gtable.app/docs/app-api/comments/mentionable.md): The users who can currently see THIS record, which is who an @ may name. - [Edit your own comment](https://gtable.app/docs/app-api/comments/update.md): Only your own, refused on the server rather than hidden in the interface. - [Delete your own comment](https://gtable.app/docs/app-api/comments/delete.md): Only your own. - [Upload a file for an attachment field](https://gtable.app/docs/app-api/files/upload.md): Two steps, on purpose. - [Read with SQL](https://gtable.app/docs/app-api/sql/query.md): Runs one SELECT as you and returns rows and columns. - [Change many rows with SQL](https://gtable.app/docs/app-api/sql/execute.md): Runs one UPDATE or DELETE as you. - [Turn a sentence into a filter](https://gtable.app/docs/app-api/filters/suggest.md): Turn a sentence into a filter - [What was changed here, and what can be undone](https://gtable.app/docs/app-api/changesets/mine.md): Recent write bundles in this app, newest first, one bundle is one atomic group of operations by one user at one moment, which is what somebody means by "that thing I just did". - [Undo a change](https://gtable.app/docs/app-api/changesets/undo.md): Replays a bundle's operations backwards, through the same permission compiler as any other write, so undoing a delete re-creates the row only if you could have created it. - [Catch up on what changed](https://gtable.app/docs/app-api/events/list.md): Events since a cursor, so a consumer that was down can catch up itself instead of asking us to replay. - [Make a Template page your own](https://gtable.app/docs/app-api/my/pages-fork.md): The Template page is already in the app. - [Rename a page you own](https://gtable.app/docs/app-api/my/pages-rename.md): Changes the name of a copy you took, and nothing else about it. - [Delete a page you own](https://gtable.app/docs/app-api/my/pages-delete.md): Only your own copies. - [Create a page of your own](https://gtable.app/docs/app-api/my/pages-create.md): A new page that is yours alone, empty until you save code to it. - [Read a page's code](https://gtable.app/docs/app-api/my/pages-code-get.md): The current version of a page you can open, or an earlier one by number. - [Save a new version of your page's code](https://gtable.app/docs/app-api/my/pages-code-set.md): Only a page you own. - [The history of a page you can open](https://gtable.app/docs/app-api/my/pages-versions.md): Every saved version, newest first: who saved it, when, the note they left, whether it builds, and which one users are looking at. - [Publish a version of your page](https://gtable.app/docs/app-api/my/pages-publish.md): Points the page at a version that has already been built, the latest by default, or `version` to go back to an earlier one. - [Which apps you are in](https://gtable.app/docs/app-api/my/apps.md): Every app in this organisation you have been given access to, with the groups you are in for each. - [Who this token acts as](https://gtable.app/docs/app-api/me/get.md): The subject behind this credential: the user, their groups, and how the request arrived. - [Your keys and connected agents in this app](https://gtable.app/docs/app-api/me/keys-list.md): Every credential acting as you here: the keys you made and the AI clients you connected. - [Create a personal API key for this app](https://gtable.app/docs/app-api/me/keys-create.md): Mints a key that acts as you, in this app, with at most the permissions you already have, a key can never do more than the user who made it. - [Revoke one of your credentials](https://gtable.app/docs/app-api/me/keys-revoke.md): Stops a key or a connected agent working, immediately. ## Builder API - [Who is signed in](https://gtable.app/docs/builder-api/session/get.md): The builder this request acts as, how it arrived (a browser session, a key or a connected agent) and the scopes it carries. - [The organisations you build for](https://gtable.app/docs/builder-api/orgs/list.md): Every organisation you are a builder of. - [Start another organisation](https://gtable.app/docs/builder-api/orgs/create.md): A second organisation is a second plan and a second invoice, and nothing crosses between them: separate suites, separate builders, separate billing. - [Read an organisation](https://gtable.app/docs/builder-api/orgs/get.md): Its name, its plan, when it was created, and the models its builders' own assistant offers in the Studio. - [Change an organisation](https://gtable.app/docs/builder-api/orgs/update.md): Its name, what your team sees at the top of the Studio, never touching any suite's login page, and the models your own assistant offers here. - [Delete an organisation](https://gtable.app/docs/builder-api/orgs/delete.md): Admins only, and it takes everything with it: every suite, every app, every directory and every address stops answering. - [Leave an organisation](https://gtable.app/docs/builder-api/orgs/leave.md): You stop being a builder of it and lose every suite under it; nothing of the organisation's is deleted. - [Close your account](https://gtable.app/docs/builder-api/account/delete.md): Your sign-in goes, and so does every organisation where you are the only builder, with all of its suites and apps. - [The builders of an organisation](https://gtable.app/docs/builder-api/builders/list.md): The builders who can open this Studio, their role, and which suites each one may work on. - [Change what a builder is, or which suites they may work on](https://gtable.app/docs/builder-api/builders/update.md): Admins only. - [Plan, usage and limits](https://gtable.app/docs/builder-api/billing/get.md): What this organisation is on, what it is using, and what its plan allows. - [Start paying for a plan](https://gtable.app/docs/builder-api/billing/checkout.md): Admins only. - [What changing plan would do, and cost today](https://gtable.app/docs/builder-api/billing/preview.md): Admins only. - [Change plan](https://gtable.app/docs/builder-api/billing/change.md): Admins only. - [Cancel the subscription, or a scheduled change](https://gtable.app/docs/builder-api/billing/cancel.md): Admins only. - [Keep the plan after cancelling it](https://gtable.app/docs/builder-api/billing/resume.md): Admins only. - [Open Stripe's billing portal](https://gtable.app/docs/builder-api/billing/portal.md): Admins only. - [What is happening across an organisation](https://gtable.app/docs/builder-api/analytics/get.md): Activity and cost for a window, filterable to one suite or one app. - [The suites of an organisation](https://gtable.app/docs/builder-api/suites/list.md): Each suite is one user directory and one login page, holding one or more apps. - [Create a suite](https://gtable.app/docs/builder-api/suites/create.md): A new directory and a new login page, empty. - [Read a suite](https://gtable.app/docs/builder-api/suites/get.md): The suite's name, branding and login switches: which providers its users may sign in with, and whether a stranger may sign themselves up. - [Change a suite](https://gtable.app/docs/builder-api/suites/update.md): Renames a suite, changes its subdomain, sets its login page's colour and logo, or flips its providers. - [Delete a suite](https://gtable.app/docs/builder-api/suites/delete.md): The suite, its apps, its directory and its addresses, together. - [List your apps](https://gtable.app/docs/builder-api/apps/list.md): Every app you build, newest first, across every organisation and suite. - [Create an app](https://gtable.app/docs/builder-api/apps/create.md): Creates an app in a suite, reachable at that suite's address followed by the app's slug. - [Read an app definition](https://gtable.app/docs/builder-api/apps/get.md): The whole definition: tables, views, rules, pages, members, theme, surfaces. - [Rename an app, or change its theme and surfaces](https://gtable.app/docs/builder-api/apps/update.md): Changes what the app is called, how it looks to its users (accent, radius, font, density), and which surfaces are switched on for them: data grid, interface, assistant, API, MCP, CLI. - [Delete an app](https://gtable.app/docs/builder-api/apps/delete.md): Takes the app off its suite's address, then marks it deleted. - [List a suite's deleted apps that can still be restored](https://gtable.app/docs/builder-api/apps/deleted.md): Apps of this suite deleted in the last thirty days and not yet purged, with when each was deleted and after when it is purged. - [Restore a deleted app](https://gtable.app/docs/builder-api/apps/restore.md): Brings back an app deleted in the last thirty days, at its own path, with everything in it. - [Read the app's definition log](https://gtable.app/docs/builder-api/apps/log.md): Who changed the schema, the rules or the members of this app, and when, newest first. - [Add a table](https://gtable.app/docs/builder-api/tables/create.md): Adds a table. - [Rename a table or change its primary field](https://gtable.app/docs/builder-api/tables/update.md): The id never changes, it is the column name and what every rule and page points at. - [Delete a table and its rows](https://gtable.app/docs/builder-api/tables/delete.md): Drops the table and every row in it, with the link fields on other tables that pointed at it, and removes it from every rule that named it. - [Every field type, its settings and its limits](https://gtable.app/docs/builder-api/fields/types.md): The catalogue: each type's id, label, which group it belongs to in the picker, whether it is stored, computed or a relation, whether anybody may write to it, its character or magnitude limit, and the shape of its `config`. - [Every function a formula may call](https://gtable.app/docs/builder-api/fields/functions.md): Name, group, what it does, one example, what it returns and how many arguments it takes. - [Add a field](https://gtable.app/docs/builder-api/fields/create.md): Adds a field to a table. - [Change a field's name, type, width or options](https://gtable.app/docs/builder-api/fields/update.md): Its id never changes: the id IS the column. - [Delete a field](https://gtable.app/docs/builder-api/fields/delete.md): Drops a field and its values. - [What a schema change would break](https://gtable.app/docs/builder-api/schema/impact.md): Given fields or tables you propose to remove, lists the permission rules, saved views, pages and other fields that read them, the same list `fields.delete` and `tables.delete` are refused with until you send acknowledge=true. - [List a table's records, as the builder](https://gtable.app/docs/builder-api/data/records-list.md): Every row the table holds, paginated with an opaque cursor. - [Create records, as the builder](https://gtable.app/docs/builder-api/data/records-create.md): Creates one to 500 records in one call, all or nothing: one refused row saves none. - [Count a table's records, as the builder](https://gtable.app/docs/builder-api/data/records-count.md): How many rows match, for the same view, filter and search a list would use. - [Total a column, as the builder](https://gtable.app/docs/builder-api/data/records-summarise.md): Reductions over the rows a list would return. - [Count a table's records per value, as the builder](https://gtable.app/docs/builder-api/data/records-groups.md): How many rows sit under each value of one column, ordered the way that column sorts. - [Read one record, as the builder](https://gtable.app/docs/builder-api/data/records-get.md): The whole row, every field. - [Update a record, as the builder](https://gtable.app/docs/builder-api/data/records-update.md): A partial update: only the fields sent are changed. - [Delete a record, as the builder](https://gtable.app/docs/builder-api/data/records-delete.md): Removes the row, its links and (out of sight) its comments. - [Upload a file for an attachment field, as the builder](https://gtable.app/docs/builder-api/data/files-upload.md): The builder plane's half of `files.upload`. - [Duplicate a record, as the builder](https://gtable.app/docs/builder-api/data/records-duplicate.md): A new record with the same values, inserted after the original. - [Delete several records, as the builder](https://gtable.app/docs/builder-api/data/records-delete-many.md): Deletes up to 500 records in one request. - [A record's history, as the builder](https://gtable.app/docs/builder-api/data/records-history.md): Every change to the record, one entry per field that moved, newest first. - [A record's comments, as the builder](https://gtable.app/docs/builder-api/data/comments-list.md): The notes users have left on this record, oldest first. - [Comment on a record, as the builder](https://gtable.app/docs/builder-api/data/comments-create.md): Adds a comment under this builder's own identity. - [Who may be named on this record](https://gtable.app/docs/builder-api/data/comments-mentionable.md): The app users who can currently see this record, the only users an @ may name. - [Edit your own comment, as the builder](https://gtable.app/docs/builder-api/data/comments-update.md): Only the author may edit a comment, and the builder is the author of the ones they wrote. - [Delete your own comment, as the builder](https://gtable.app/docs/builder-api/data/comments-delete.md): Removes a comment this builder wrote. - [Read with SQL, as the builder](https://gtable.app/docs/builder-api/data/sql-query.md): One SELECT over one table of the app, every row. - [Change many rows with SQL, as the builder](https://gtable.app/docs/builder-api/data/sql-execute.md): One UPDATE or DELETE; each row is written through the ordinary path, and the statement is one changeset (changesetId), undone by one revert. - [Turn a sentence into a filter, as the builder](https://gtable.app/docs/builder-api/data/filters-suggest.md): A small model call given the table's fields, example values and the current filter; returns the complete filter to apply, or a refusal in plain words. - [Your saved views of a table, as the builder](https://gtable.app/docs/builder-api/data/views-list.md): The views YOU saved of this table, in your order. - [Save a view of a table, as the builder](https://gtable.app/docs/builder-api/data/views-create.md): A view visible to you alone. - [Read one of your saved views, as the builder](https://gtable.app/docs/builder-api/data/views-get.md): One of your own views. - [Change one of your saved views, as the builder](https://gtable.app/docs/builder-api/data/views-update.md): Only a view that is yours. - [Delete one of your saved views, as the builder](https://gtable.app/docs/builder-api/data/views-delete.md): Only a view that is yours. - [List the user groups](https://gtable.app/docs/builder-api/groups/list.md): Every group in this app, how many people are in it, and one sentence per table saying what it may see and do. - [Read one group's permissions](https://gtable.app/docs/builder-api/groups/get.md): One group's complete permissions, table by table: which rows it sees, which fields it reads, which of those it may change, and on which rows it may add, edit and delete. - [Replace one group's permissions](https://gtable.app/docs/builder-api/groups/set-permissions.md): Writes what this ONE group may do, leaving every other group untouched: permissions are per group and never cross, so there is no ordering to get right and nothing to shadow. - [Read the whole permission document](https://gtable.app/docs/builder-api/rules/get.md): Every group and every group's permissions in one object. - [Replace the whole permission document](https://gtable.app/docs/builder-api/rules/set.md): Replaces every group and every permission at once. - [Ask what someone would see](https://gtable.app/docs/builder-api/rules/simulate.md): Answers 'what would this user see' without granting anything: the rows and fields a set of groups gets on a table, and the same answer per group so you can tell which group is doing the granting. - [List an app's pages](https://gtable.app/docs/builder-api/pages/list.md): Every page of the app: the builder's, with their mode and the groups they are shown to, and the pages app users built of their own. - [Add a page](https://gtable.app/docs/builder-api/pages/create.md): Creates the page's definition: name, mode, the groups that see it, optionally the table it is about. - [Rename a page, change its mode, or change who sees it](https://gtable.app/docs/builder-api/pages/update.md): Any of name, mode, tableId and visibleTo. - [Delete a page](https://gtable.app/docs/builder-api/pages/delete.md): The page, every version of its code, and every copy an app user took of it. - [Read a page's code](https://gtable.app/docs/builder-api/pages/code-get.md): The current version unless `version` names an earlier one. - [Save a new version of a page's code](https://gtable.app/docs/builder-api/pages/code-set.md): Never overwrites: every save is a new version, and the page points at the latest. - [A page's version history, newest first](https://gtable.app/docs/builder-api/pages/versions.md): Who saved each version and when, with the note they left. - [Record what a version did when it ran](https://gtable.app/docs/builder-api/pages/report.md): Written by the preview, never by a page and never by an agent: which tables the page asked for, how many rows came back, what was refused, and what it drew. - [Publish a version of a page](https://gtable.app/docs/builder-api/pages/publish.md): Points the page at a version that has already been built, the latest by default, or `version` to go back to an earlier one. - [What was changed, and what can be undone](https://gtable.app/docs/builder-api/changesets/list.md): Recent write bundles, newest first. - [Undo a changeset](https://gtable.app/docs/builder-api/changesets/revert.md): Replays a bundle's operations backwards, through the same permission compiler as any other write, so undoing a delete re-creates the row only if you could have created it. - [What was deleted, and can still be put back](https://gtable.app/docs/builder-api/trash/list.md): The app's trash: every deleted table and field, and every column a type change converted, with how many records' values it holds and when it expires (thirty days after the change). - [Put a deleted table or field back](https://gtable.app/docs/builder-api/trash/restore.md): Recreates what was deleted with the SAME ids, a table with its rows and its links, a field with its values, a converted column with the values it held before, and the grants that named it. - [A suite's directory](https://gtable.app/docs/builder-api/users/list.md): Everyone who can sign in at this suite's apps, and which apps they are in. - [Add someone to a suite's directory](https://gtable.app/docs/builder-api/users/invite.md): Creates a directory entry. - [Rename or suspend someone](https://gtable.app/docs/builder-api/users/update.md): Suspending keeps the user in the directory and in their apps, but refuses their next sign-in and every request from their credentials. - [Remove someone from a suite](https://gtable.app/docs/builder-api/users/remove.md): Takes them out of the directory and out of every app in this suite. - [Get someone's personal set-password link](https://gtable.app/docs/builder-api/users/password-link.md): A one-time link that lets this person, and only this person, set their password at the suite's address. - [List members](https://gtable.app/docs/builder-api/members/list.md): Everyone invited into this app and which groups they are in. - [Put someone in an app](https://gtable.app/docs/builder-api/members/add.md): Gives a user from the directory access to this app, in one or more groups. - [Change someone's groups in an app](https://gtable.app/docs/builder-api/members/update.md): Replaces the whole group list for this user in this app. - [Remove someone from an app](https://gtable.app/docs/builder-api/members/remove.md): Takes away access to this app only. - [List invite links](https://gtable.app/docs/builder-api/invites/list.md): Every invite link of this suite, across its apps, with the app and groups it grants, how many times it was used, and whether it is still live. - [Create an invite link](https://gtable.app/docs/builder-api/invites/create.md): Mints a link that adds whoever opens it to one app of this suite, in exactly these groups, after they sign in at the suite's address. - [Revoke an invite link](https://gtable.app/docs/builder-api/invites/revoke.md): Stops a link working from now on. - [The hostnames a suite answers on](https://gtable.app/docs/builder-api/domains/list.md): Every hostname attached to this suite, active, pending its DNS proof, provisioning its certificate, or released, with when it was verified. - [Attach a hostname to a suite](https://gtable.app/docs/builder-api/domains/attach.md): Routes a hostname to this suite: its people sign in there, and each of its apps answers underneath at its own slug, `/crm`, `/hr`. - [Check a hostname's DNS and certificate, and activate it](https://gtable.app/docs/builder-api/domains/verify.md): Moves a hostname one step forward and says where it is. - [Detach a hostname](https://gtable.app/docs/builder-api/domains/detach.md): The hostname stops routing to this suite at once, for every app under it; people signed in there are signed out by the next request. - [Your builder keys and connected agents](https://gtable.app/docs/builder-api/keys/list.md): Every credential acting as you on the builder plane: keys you made and AI clients you connected to the Studio. - [Create a builder API key](https://gtable.app/docs/builder-api/keys/create.md): Mints a key that acts as you, the builder, in ONE organisation, the one you name, narrowed to the scopes you choose. - [Revoke one of your builder credentials](https://gtable.app/docs/builder-api/keys/revoke.md): Stops a key or a connected agent working, immediately. - [List the skills](https://gtable.app/docs/builder-api/skills/list.md): The manual, as a list of ids and one-liners. - [Read one skill](https://gtable.app/docs/builder-api/skills/get.md): The full text of one skill, as markdown: how the tools in that area fit together, the mistakes that are easy to make, and what never to do. - [The models an assistant menu may offer](https://gtable.app/docs/builder-api/models/list.md): The platform's model catalogue: each model's id, name, what it is good at and how fast, clever and expensive it is. - [This organisation's referral code and what it has earned](https://gtable.app/docs/builder-api/referrals/get.md): The code a sign-up link carries, the referrals it brought (status and date, never who), and the credits promised for them. ## CLI - [The gtable CLI](https://gtable.app/docs/cli/overview.md): Coming soon. A command for every API operation, JSON output for scripts, exit codes by kind of failure. Not published yet. ## Changelog - [Changelog](https://gtable.app/docs/changelog.md): What changed for developers building on gtable, newest first. ## Optional - [Full documentation in one file](https://gtable.app/docs/llms-full.txt): every page above, concatenated. Fetch this instead of crawling if you would rather read once. - [Builder API (OpenAPI)](https://gtable.app/docs/openapi/builder.json): the Studio's Builder API, the same for every builder. The live copy is https://studio.gtable.app/v1/openapi.json. - [App API, generic contract (OpenAPI)](https://gtable.app/docs/openapi/app.json): the shape every app's API shares, with no table or field named. A caller's real document is https://{suite}.gtable.app/{app}/v1/openapi.json, masked to what that caller can read. - [MCP server](https://gtable.app/docs/mcp): this documentation as tools an agent can call: search it, list its pages, fetch one as Markdown. Add the URL as a remote MCP server. - [HTTP API](https://gtable.app/docs/api/docs): the same tools as plain GET requests, for scripts. No authentication; see https://gtable.app/docs/api/docs/openapi.json for the description. - [Sitemap](https://gtable.app/docs/sitemap.xml): the same pages as HTML, with last-modified dates. - [Recently updated](https://gtable.app/docs/updates.xml): an Atom feed of the pages that changed most recently, newest first. - [Documentation home](https://gtable.app/docs): the browsable site, with search and navigation.