---
title: "Events and webhooks"
description: "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."
canonical: "https://gtable.app/docs/api/events"
updated: "2026-10-05"
---

# Events and webhooks

## Pull what changed

The events feed lists what changed in an app, oldest first, from the last event you saw:

```http
GET https://your-suite.gtable.app/your-app/v1/events?since=chg_01J…&limit=200
```

Pass `meta.nextCursor` back as `cursor` while `meta.hasMore` is true, and keep the last id you
processed for next time. `since` and `cursor` both mean "the last change I saw".

Events go through your permissions like a read:

- a row you cannot see produces no event for you;
- a field you cannot read is absent from the events you do get;
- a deleted row is reported as the bare fact that it went, never its former contents;
- someone who is not a member of the app is refused, rather than handed an empty feed.

Builders follow changes from the Studio's change list
(`GET /v1/apps/{appId}/changesets`); there is no builder events feed.

## Webhooks

**Not available yet.** gtable does not send webhooks today. When it does, deliveries will follow
[Standard Webhooks](https://www.standardwebhooks.com/): a signed id, timestamp and body,
verifiable with any Standard Webhooks library, retried with backoff. The events feed above is how
a webhook consumer will catch up after being down, so code written against it keeps its value.
