Move a Connection Beta
Moves a connection from its current destination group to a different destination group. The connection must be paused before calling this endpoint. Use sync_behavior to control how data syncs after the move: CONTINUE preserves the existing sync cursor so the connection resumes incremental sync from where it left off; BACKFILL resets the cursor and triggers a historical sync; CONTINUE_WITH_DATA preserves the cursor and additionally migrates existing data to the new destination by starting an asynchronous job. Use the job_id returned in the response to monitor progress via the move-connection-job-status endpoint. CONTINUE_WITH_DATA is supported only when moving a connection from Snowflake Native tables to a MDLS-linked Snowflake Lakehouse destination.
Request schema
Path parameters
The unique identifier of the connection. Retrieve it from the id field in the List All Connections response, or from the id field returned when you Create a Connection.
Header parameters
HTTP: basicAuth
HTTP AuthorizationScheme: basic
Request
The unique identifier of the destination group to move the connection to. Retrieve group IDs from the List All Groups endpoint.
Controls how data syncs after the move. Use CONTINUE to preserve the existing sync cursor so the connection resumes incremental sync from where it left off. Use BACKFILL to reset the cursor and trigger a historical sync. Use CONTINUE_WITH_DATA to preserve the cursor and additionally migrate existing data to the new destination by starting an asynchronous job—use the job_id returned in the response to monitor progress. CONTINUE_WITH_DATA is supported only when moving a connection from Snowflake Native tables to a MDLS-linked Snowflake Lakehouse destination.
Set to true to acknowledge move warnings and confirm that you want to proceed. Required if the connector's credentials depend on the current source group, or if the connection and its current destination support unstructured file replication but the target destination doesn't. If you don't provide the confirmation, the API returns an error describing the required action and the functionality you'd lose. Default: false
POST /v1/connections/4107c213907114059a5544ad8fa66c52/move HTTP/1.1 Accept: application/json;version=2 Authorization: Basic <Replace with base64-encoded key> Content-Type: application/json Host: api.fivetran.com Content-Length: 105 { "destination_group_id": "destination_group_id", "sync_behavior": "CONTINUE", "force_move": true }
Responses
200
Response status code
Response status text
The unique identifier of the connection that was moved.
The unique identifier of the destination group the connection was moved from.
The unique identifier of the destination group to move the connection to. Retrieve group IDs from the List All Groups endpoint.
Controls how data syncs after the move. Use CONTINUE to preserve the existing sync cursor so the connection resumes incremental sync from where it left off. Use BACKFILL to reset the cursor and trigger a historical sync. Use CONTINUE_WITH_DATA to preserve the cursor and additionally migrate existing data to the new destination by starting an asynchronous job—use the job_id returned in the response to monitor progress. CONTINUE_WITH_DATA is supported only when moving a connection from Snowflake Native tables to a MDLS-linked Snowflake Lakehouse destination.
The timestamp of when the connection was moved. Null when sync_behavior is CONTINUE_WITH_DATA (since the move runs asynchronously).
The unique identifier of the move job. Use this value to check the status of the move operation.
{ "code": "Success", "message": "Connection moved successfully", "data": { "connection_id": "connection_id", "source_group_id": "source_group_id", "destination_group_id": "destination_group_id", "sync_behavior": "CONTINUE", "moved_at": "2024-01-01T00:00:00Z", "job_id": "01234567-89ab-cdef-0123-456789abcdef" } }
Limitations
General requirements
The following conditions must be met before you can move a connection:
- The connection must be paused.
- For
CONTINUEandBACKFILL, the connection must not have transformations. For transformation requirements that apply toCONTINUE_WITH_DATA, see theCONTINUE_WITH_DATArequirements section. - The connection's source group must not use Hybrid Deployment.
- The source and target groups must belong to the same account and must be different groups.
- The connection's schema name must not already exist in the target destination group.
Database connector requirements
For the following connectors, you can only use BACKFILL when moving a connection across regions or cloud providers. You can use CONTINUE or CONTINUE_WITH_DATA for these connectors only when the source and target groups are in the same region and cloud provider:
- Generic PostgreSQL
- Amazon Aurora PostgreSQL
- Amazon RDS PostgreSQL
- Azure Database for PostgreSQL
- Google Cloud PostgreSQL
- Heroku PostgreSQL
- Generic MySQL
- Amazon Aurora MySQL
- Amazon RDS MySQL
- Azure Database for MySQL
- Google Cloud SQL for MySQL
- Generic MariaDB
- Amazon RDS MariaDB
- Magento
- Generic SQL Server
- Amazon RDS for SQL Server
- Azure SQL Database
- Azure SQL Managed Instance
- Google Cloud SQL for SQL Server
- Generic Oracle
- Amazon RDS for Oracle
- Oracle RAC
- Oracle E-Business Suite
CONTINUE_WITH_DATA requirements
When you use the CONTINUE_WITH_DATA sync behavior, the following additional requirements apply:
- You can use
CONTINUE_WITH_DATAonly to move a connection from its current Snowflake destination, which uses Native tables, to the linked target Snowflake destination, which uses Lakehouse tables. - The current and target Snowflake destinations must use the same Host and database.
- The connection must not have any transformations for dbt. However,
CONTINUE_WITH_DATAsupports Quickstart transformations. As part of the move, Fivetran re-points the Quickstart transformations to the target destination's group. Each Quickstart project must reference only the connection you are moving. - The connection must not have any incomplete schema migrations.
- The connection must not use the Source naming convention.
- Each connection can have only one move job with a
PENDINGorIN_PROGRESSstatus at a time. - While the move job has a
PENDINGorIN_PROGRESSstatus, you cannot unpause, sync, or re-sync the connection. Wait until the job reachesSUCCESSorFAILEDbefore continuing. - You can move only one connection at a time.
- The connection's tables in the source destination must not have Snowflake masking policies that apply to the Fivetran role. If a masking policy applies to the Fivetran role, we copy the masked values to the target destination instead of the original values.
We cannot reliably detect masking policies, so the Move a Connection endpoint does not fail when a table has one. Snowflake shows us only the policies that the Fivetran role has been granted access to. We may not detect policies that another role, such as ACCOUNTADMIN, created and didn't grant to the Fivetran role, or policies that are applied through tags. Before you move the connection, check your tables for masking policies and exclude the Fivetran role from them.
Lakehouse tables don't support partitioning or Snowflake Time Travel. After you move a connection with CONTINUE_WITH_DATA, you can't use these features on the connection's tables in the target destination.
For more information, see our How to Migrate a Connection from Snowflake Native Tables to Lakehouse Tables Using Fivetran REST API tutorial.
Unstructured data requirements
For connectors that sync unstructured data, the target destination must support unstructured data.
Unsupported connectors
The Webhooks connector is not supported and cannot be moved.
Connections with credential dependencies
Fivetran evaluates the connection type and its stored credential values when you request a move. We treat a connection as having a credential dependency when any of the following conditions apply:
- Its AWS IAM authentication uses the current destination group ID as the trust policy External ID.
- Its stored credentials use a Fivetran-managed GCP service account email or key associated with the current destination group.
- Another stored credential field contains the current destination group ID.
If Fivetran REST API detects a credential dependency, it returns a 400 error with a message describing the required action. After you complete the required action, retry the request with "force_move": true.
Because these checks depend on each connection's stored configuration and not only on its connector type, there is no fixed exhaustive list of affected connectors.
Some connectors have credentials that depend on the current destination group — for example, connectors that use an AWS IAM trust policy or a GCP service account tied to the group. If you attempt to move such a connection, the API returns a 400 error with a message describing the required action. After you complete the required action, retry the request with "force_move": true.
Connectors that support unstructured file replication
The API returns a 400 error if all of the following conditions apply, whether or not you've enabled unstructured file replication for the connection:
- The connector supports unstructured file replication.
- The connection's current destination supports unstructured file replication.
- The target destination doesn't support unstructured file replication.
If the connection replicates unstructured files, Fivetran doesn't migrate them, and unstructured file replication is unavailable for the connection after the move. To proceed, retry the request with "force_move": true.
If the connection also requires force_move because of credential dependencies, the error message describes both, and a single retry with "force_move": true acknowledges both.