Skip to main content
modified_after takes an ISO 8601 datetime and returns only objects whose modified_at value is later than it.
If you do not supply a timezone offset, the value is interpreted as UTC.
modified_at is the datetime Bindbee last updated its copy of the record. It is not the third party’s own “last updated” field.

The delta sync pattern

  1. On first run, pull everything with no modified_after, paging through with cursor.
  2. Record the highest modified_at you saw across all pages, in UTC.
  3. On the next run, pass that value as modified_after.
  4. Upsert the returned records into your store, keyed on id.
  5. Update your stored watermark and repeat.

Limits

  • A resync makes everything look new. Records re-synced during a full resync get a fresh modified_at even when nothing changed upstream, so an incremental read can return the entire dataset. Expected behavior, not a bug.
  • Always upsert, never insert blindly. The same record can appear in more than one window. Keying on id keeps this safe.
  • Store the watermark in UTC and subtract a small buffer, for example one minute, before using it. That avoids dropping a record that landed between two pages of a long paginated run.
  • modified_after is per model. An employee changing does not mark their employment or benefit records as modified, so filtering those separately misses related changes. Read them without the filter, or subscribe to data-change events for the model.

Reading data

How modified_after combines with filters, expand and pagination.

Syncing

How often Bindbee pulls fresh data from each connector.

Webhooks

Get notified when data changes instead of polling.

Filters

Narrow an incremental read down further.