gtable
gtable.appOpen the Studio
UndoUndo a changeset
Undo

Undo a changeset

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.

POST/v1/apps/{appId}/changesets/{changesetId}/revert

An update puts back ONLY the fields it changed, so somebody else’s edit to another field of the same record survives; if they changed one of the SAME fields since, this refuses and says whose, and confirm: true overwrites theirs anyway. The revert is itself recorded, so reverting a revert is just undo again. Only a bundle of record creates, edits and deletes can be undone, and the list marks each one revertible: a comment, a saved view, a page or a change to the app’s SHAPE is refused up front with the reason, because putting a definition back would run its migration in reverse, and a column that returns is a column whose contents went. A deleted field or table, and a column a type change converted, is put back from the trash instead (trash.restore), values and all. Every row it can put back is undone in ONE transaction, and a row deleted since is listed in skipped rather than failing the rest.

Requires the records:write scope. Operation changesets.revert. MCP tool changesets_revert. CLI, once published: gtable changesets revert.

Path parameters

NameTypeRequiredDescription
appIdstringyes
changesetIdstringyes

Headers

NameTypeRequiredDescription
Idempotency-KeystringnoAny unique string. Sending the same key with the same request again returns the first response (marked Idempotency-Replayed: true) instead of running it twice. Reusing it for a different request is refused with 409. Kept for 24 hours. Up to 255 characters.

Request body

FieldTypeRequiredDescription
confirmbooleanno

Response

application/json

Success

dataobjectrequired

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search gtable documentation and read it in full, instead of answering from memory.

https://gtable.app/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://gtable.app/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.