> This page is for Glide Classic.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://www.glideapps.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://www.glideapps.com/docs/_mcp/server.

# Data Versioning

> Detect updates and prevent data loss with versioning

Every Glide Big Table has a version number that increases whenever its data changes. Additionally, each row in a Big Table keeps track of the table version when it was last modified. This information can be used to detect changes to data and prevent mid-air collisions that can result in data loss.

## Getting the Current Version

Most API endpoints that work with Big Tables return the current version of the table in the `ETag` response header.

If you only want to get the current version of a table without performing any other operation, use the [Get Rows Version](/docs/classic-api/tables/get-rows-version) endpoint. You can poll this endpoint to detect changes to the table.

## Preventing Data Loss

When updating data in a Big Table, you can specify the version of the table you expect to be working with using the `If-Match` header. How this value is interpreted depends on the endpoint:

* The [Overwrite Table](/docs/classic-api/tables/overwrite-table) endpoint rejects the request if the current table version is newer than the version specified in the `If-Match` header.
* The [Update Row](/docs/classic-api/tables/update-row) endpoint rejects the request if the row has been modified since the version specified in the `If-Match` header. The update is still allowed if another row in the table was modified since the specified version.

In both cases, an HTTP `412 Precondition Failed` response is returned if the condition is not met.