---
title: "Changed since (delta catch-up)"
method: GET
path: "/modules/{moduleId}/changes"
tags: ["Sync"]
---

# Changed since (delta catch-up)

`GET /modules/{moduleId}/changes`

## Request

- Base URL: `https://api.teamo360.com/api/v1`
- URL: `https://api.teamo360.com/api/v1/modules/{moduleId}/changes`
- Auth: HTTP bearer

Returns realtime events after ?since=<syncId> so integrations pull only what is new. complete:false means the window rotated (or Redis was unavailable) - do a full re-list.

## Path parameters

- `moduleId` string, required

## Query parameters

- `since` string

## Response `200`

Success

## Other responses

- `400`: Malformed parameters or body
- `401`: Missing, invalid, expired, or legacy token
- `403`: Blocked by role, token scope, module grant, or org policy
- `404`: Entity missing or outside the principal’s access
- `429`: Rate limit exceeded - see Retry-After

---

[API](https://skmtc.dev/teamo360/apis/teamo-public-api.md) · [All operations](https://skmtc.dev/teamo360/apis/teamo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/teamo360/apis/teamo-public-api/revisions/32528ecbc4f4?raw)
