Muhammad Hassaan Mustafa
12/16/2025, 2:37 PMkapa.ai
12/16/2025, 2:38 PMupdated_at or webPublicationDate) to know what has already been synced. - On each sync, it only reads records newer than the last stored cursor, not the whole history. [[Incremental syncs](https://docs.airbyte.com/platform/connector-development/config-based/understanding-the-yaml-file/incremental-syncs); [Incremental tutorial](https://airbyte.com/tutorials/incremental-data-synchronization#step-2)] - After reading a batch/stream, the connector emits a state message with the latest cursor; the next sync starts from that point. [[Incremental syncs](https://docs.airbyte.com/platform/connector-development/config-based/understanding-the-yaml-file/incremental-syncs)] 2. For HTTP / API sources (large date ranges) In the Connector Builder, you configure: - Cursor field (e.g. webPublicationDate) - Start datetime and End datetime (often “now”) - How to inject these into the request (e.g. from-date / to-date query params). [[Builder incremental config](https://docs.airbyte.com/platform/connector-development/connector-builder-ui/incremental-sync); [Guardian example](https://docs.airbyte.com/platform/connector-development/connector-builder-ui/incremental-sync#example)] Example from the Guardian API: - First sync: - Request: from-date = start_time, to-date = now - Airbyte saves the most recent webPublicationDate it saw as state. [[Guardian example](https://docs.airbyte.com/platform/connector-development/connector-builder-ui/incremental-sync#example)] - Next sync: - Request: from-date = last_saved_cursor, to-date = now - Again, it updates state with the latest date seen. [[Guardian example](https://docs.airbyte.com/platform/connector-development/connector-builder-ui/incremental-sync#example)] This means for a big date range, Airbyte will still conceptually “loop” over that range using the cursor and state, but the docs don’t expose a knob to force “write each small chunk as soon as it’s read” vs “read everything then write”. The internal behavior is: read records, emit them to the destination, and periodically checkpoint state. 3. **Important limitation for the first sync** For many standard sources (e.g. MongoDB in the forum example), the very first sync is always a full refresh of all available data; you cannot start from a partial date range just by setting state. [[Forum answer](https://discuss.airbyte.io/t/3381)] - The official workaround suggested is to create a view in the source that only exposes the desired subset (e.g. “last 30 days”) and sync that. [[Forum answer](https://discuss.airbyte.io/t/3381)] So, based on the docs: - Airbyte does support incremental syncs over large date ranges using a cursor and state, and it will only re-read new/changed data after the first run. - The documentation does not describe a configurable “streaming insert as you go” mechanism beyond the standard incremental behavior, nor a way to avoid a full initial read for connectors like MongoDB other than limiting the source data (e.g. via views).