sync_mode: "incremental" inside the parameters object to fetch only new data since the last retrieval.
Incremental sync is only available on engagement-free actions and requires an Engagement Identity (
type: "engagement"). Standard identities cannot use this feature.How It Works
- First run (initial full sync): When
sync_modeis set toincrementaland no previous data has been retrieved, the system performs a full sync limited bymax_results(either the value you set or the action’s default). - Subsequent runs (incremental): Once a first retrieval has been completed, the next runs automatically switch to incremental mode and return only newly available data.
Using Incremental Sync with Async Mode
In async mode, you trigger incremental updates manually by continuing a completed run:POST /v1/runs/{run_uid}/continue resets the run and fetches up to max_results new items.
Example: Async Incremental Sync
Using Incremental Sync with Schedule Mode
In schedule mode, incremental sync is automatic: each scheduled iteration fetches only the new data since the last execution. No manual continue call is needed.In scheduled mode, if the previous run is still in progress when the next iteration is triggered, that iteration will be skipped. The following iteration will trigger the update instead.
Example: Scheduled Incremental Sync
Supported Actions
The following actions currently support incremental sync:Continuable Run Statuses
A run can only be continued if its status is one of:BLOCKEDSTOPPEDFAILEDPARTIAL_SUCCEEDEDSUCCEEDED
SCHEDULED.
Limitations
- Engagement Identities only. A standard identity cannot run incremental sync.
- No backfill. Data is fetched newest-first, so anything that overflowed
max_resultsbetween two iterations is not picked up later — see the warning above. - Schedules cannot be edited. Changing
sync_modeon an existing schedule means cancelling and recreating it, which is what Part 2 below covers. - Overlapping executions are skipped. If the previous run is still going when the next is due, that iteration does not run.
Resume vs continue after a failed run
A run can be continued when its status isFAILED (among others listed above). That fetches the next delta — it does not retry what failed. Resume is the other option, but it accepts BLOCKED runs only; anything else returns 400. See Resume vs. continue.
Migrating existing schedules
This guide shows how to use the scheduled run endpoint for Extract LinkedIn Connections with incremental sync via Engagement Identities, and how to migrate existing schedules to incremental mode using the/actions/linkedin-extract-connections/run/schedule route.
Incremental mode fetches only new data since the last retrieval instead of the full dataset on every run. It is available only on some engagement-free actions and requires an Engagement Identity.
Prerequisites
- Engagement Identities enabled in your workspace and at least one Engagement Identity created with a connected LinkedIn account
- API key with access to runs, schedules, and identities
Shared setup (reuse in your code)
The examples below use a single base URL and a small request helper so headers and error handling stay consistent. Define these once and reuse them across Part 1 and Part 2.Part 1: Implementing Incremental Mode
1.1 Create a new scheduled run in incremental mode
To schedule Extract LinkedIn Connections in incremental mode, sendsync_mode: "incremental" in the parameters object and use an Engagement Identity in identity_ids.
Behavior:
- First run: Full sync (capped by
max_results). - Next runs: Only new connections since the last run. No need to call continue; each scheduled execution is automatically incremental.
1.2 Async mode: continue an incremental run
If you use async instead of schedule, you trigger each incremental update by calling the continue endpoint after the previous run has finished. JavaScript example: run async and continue later (Extract Connections)Part 2: Migrating full-mode schedules to incremental
Schedules cannot be edited in place — there is no update endpoint, onlypause, resume and cancel. Switching an existing schedule to incremental means cancelling it and creating a replacement.
2.1 What you can recover, and from where
Because the identity is not recoverable, a migration cannot be fully automatic. The script below collects everything it can, tells you what is missing, and only then migrates — with the identity mapping you provide.
2.2 List the schedules to migrate
uid. That is the value the endpoints below call scheduled_run_uid.
2.3 Recover the inputs and callback from a past run
Runs carry thescheduled_run_uid that produced them, so the most recent run of a schedule is where its inputs and callback survive.
A schedule that has never executed has no run to recover from. Those have to be rebuilt from your own records, or recreated by hand.
2.4 Supply the identities
identity_ids is not returned anywhere, so map each schedule to the Engagement Identity it should run on. List your identities to get their UIDs:
2.5 Dry run, then migrate
Collect everything for every schedule and report on it before cancelling a single one. A schedule missing its inputs, callback or identity is skipped rather than recreated half-configured.ready: true should you run the migration:
Summary
Related
Continue a run
Endpoint reference for fetching the next delta.
Engagement Identities
What incremental sync requires, and how they are billed.
Schedules
Creating, pausing and cancelling scheduled runs.

