Skip to main content
GET
Permission Changes
Use this endpoint to read a chronological feed of permission changes (writes and deletes) for a Sync. This is useful if you maintain your own copy of permission data, for example in your search index metadata, and want to keep it up to date incrementally instead of re-listing all objects on every update.

Paginating with continuation tokens

Every response includes a continuationToken. Pass it on your next request to read the next page of changes. When you reach the end of the feed, the response contains an empty changes array and the same continuationToken. Detect the end of the feed by the empty array, not by an absent token. Store the token and reuse it later to poll for new changes. Keep these rules in mind when paginating:
  • A continuation token takes precedence over startTime when both are supplied.
  • A continuation token is issued against the type filter that produced it. Send the same type on every page of a paginated read, or omit it on every page. Changing it returns a 400 with the code PERMISSION_CHANGES_CURSOR_TYPE_MISMATCH.
  • If a token is no longer valid, the API returns a 400 with the code PERMISSION_CHANGES_CURSOR_INVALID. Restart the read from the beginning or from a startTime.

Error codes

A rejected continuation token returns a 400 response with a stable code field that you can branch on:

Authorizations

Authorization
string
header
required

Paragon User Token. Add to the Authorization header of your requests.

Path Parameters

syncId
string
required

UUID of the Sync to query, returned from the Enable Sync endpoint.

Query Parameters

type
string

Object type to filter changes by (e.g. file). A continuation token is issued against the type that produced it, so this value must stay identical for every page of a paginated read, including when it is omitted.

startTime
string<date-time>

Only return changes that occurred at or after this time. Must be a full RFC 3339 timestamp with a time component (e.g. 2026-07-16T00:00:00Z); a date-only value is rejected with a 400. Ignored when continuationToken is supplied.

pageSize
integer
default:50

Number of changes to return per page, from 1 to 100. Defaults to 50.

Required range: 1 <= x <= 100
continuationToken
string

Token from a previous response, used to read the next page of changes. Takes precedence over startTime when both are supplied.

Response

A page of permission changes in chronological order

changes
object[]
required

Permission changes in chronological order. An empty array indicates that you have reached the end of the feed.

continuationToken
string

Token to pass on the next request to read the next page. Repeated unchanged when there are no new changes, so detect the end of the feed by an empty changes array rather than by an absent token.