The change feed
GET /calls/changes returns every change to your organization’s calls in the order it happened.
Events carry ids, not call data, and one event can stand for several changes. So for every event except
call.deleted, re-read both the call and its transcript. A transcript can arrive before the call finishes (you’ll only see call.completed), and an edited or removed transcript arrives as call.updated. Re-reading both is simple and always ends with your copy matching Parlay.
Step 1: initial load
Page throughGET /calls (100 per page) and fetch GET /calls/{call_id}/transcript for each call you want text for. Your full history back to when your organization joined Parlay is available.
If you load with GET /calls, then on your first feed run call GET /calls/changes with no cursor. The feed starts from the beginning of its history and replays events you may already have. Applying them again is harmless, and it guarantees nothing that changed during your load is missed.
Step 2: read the feed on a schedule
1
Load your saved checkpoint
Use the checkpoint from your last successful run. On the first run, send no cursor.
2
Read every page
Call
GET /calls/changes?cursor=<checkpoint>&limit=100. Repeat with the returned checkpoint while has_more is true.3
Apply each event
For
call.deleted, delete your copy. For anything else, re-read the call and its transcript and overwrite your copy. If either returns 404, delete it locally. Applying the same event twice is harmless.4
Save the checkpoint last
Only after your database commit succeeds. If the run fails, the next run repeats from the old checkpoint and nothing is lost.
Good to know
- Run it as often as you like. Hourly or every 15 minutes works well. An empty run costs one request.
- A checkpoint belongs to your organization, not to one key. After you roll or replace a key, keep using the same checkpoint with the new key. (Ordinary list cursors, like
next_cursoron/calls, do belong to the key that made them.) - A 404 on a call means remove it. Calls can become invisible to your key, for example when they are deleted.

