PostgreSQL API Configuration
For more information about authentication, accessing the Fivetran REST API, and request and response formats, see Getting Started with the Fivetran REST API.
Request
POST https://api.fivetran.com/v1/connections
{ "group_id": "group_id", "service": "postgres", "trust_certificates": true, "trust_fingerprints": true, "run_setup_tests": true, "paused": false, "pause_after_trial": false, "sync_frequency": 1440, "data_delay_sensitivity": "LOW", "data_delay_threshold": 0, "daily_sync_time": "14:00", "schedule_type": "auto", "connect_card_config": { "redirect_uri": "https://your.site/path", "hide_setup_guide": true, "all_fields": true }, "proxy_agent_id": "proxy_agent_id", "private_link_id": "private_link_id", "networking_method": "Directly", "hybrid_deployment_agent_id": "hybrid_deployment_agent_id", "destination_configuration": { "virtual_warehouse": "virtual_warehouse" }, "destination_schema_names": "FIVETRAN_NAMING", "external_secrets_manager_id": "esm_id", "config": { "always_encrypted": true, "auth_method": "PASSWORD", "client_private_key": "string", "client_public_certificate": "string", "connection_type": "Directly | PrivateLink | SshTunnel | ProxyAgent", "database": "postgres", "delete_capture_enabled": true, "entra_app_id": "string", "entra_tenant_id": "string", "host": "postgresinstance.mycompany.com", "password": "test_password", "port": 5432, "publication_name": "string", "replication_slot": "test_replication_slot", "tunnel_host": "XXX.XXX.XXX.XXX", "tunnel_port": 22, "tunnel_user": "fivetran", "update_method": "QUERY_BASED | WAL_PGOUTPUT", "user": "test_user", "schema_prefix": "prefix" }, "external_secrets_keys_config": { "password": "PASSWORD_KEY", "user": "USER_KEY" } }
Config parameters
| Name | Description |
|---|---|
always_encrypted | Require TLS through Tunnel |
auth_method | Database authentication method |
client_private_key | Client Private Key in .pem format. |
client_public_certificate | Client Certificate in .pem format. |
connection_type | Possible values:Directly, PrivateLink, SshTunnel. SshTunnel is used as a value if this parameter is omitted in the request and any of the following parameter's values is specified: tunnel_host, tunnel_port, tunnel_user. Otherwise, Directly is used as a value if the parameter is omitted. |
database | The database name. |
delete_capture_enabled | |
entra_app_id | Registered Application ID (for Entra ID authentication). |
entra_tenant_id | Azure Tenant ID (for Entra ID authentication). |
host | DB instance host or IP address. |
password | For password authentication, enter the user's password. For Entra ID authentication, enter the client secret value. |
port | The port number. |
publication_name | Publication name. Specify only for "updated_method": "WAL_PGOUTPUT". |
replication_slot | Replication slot name. Specify only for "updated_method": "WAL_PGOUTPUT". |
tunnel_host | SSH host, specify only to connect via an SSH tunnel (do not use a load balancer). |
tunnel_port | SSH port, specify only to connect via an SSH tunnel. |
tunnel_user | SSH user, specify only to connect via an SSH tunnel. |
update_method | The method to detect new or changed rows. Specify only for "service": "postgres" or "service": "postgres_rds". Supported values: WAL_PGOUTPUT - logical replication of the WAL using the pgoutput plugin. This method replicates new, changed, and deleted rows by tailing the write-ahead log (WAL) using a logical slot.This is more efficient than the query-based method, but requires more setup and monitoring.QUERY_BASED - this method replicates new, changed and deleted rows via the xmin and ctid system columns |
user | For password authentication, enter the user name. For Entra ID authentication, enter the registered app display name. |
schema_prefix (required) | Destination schema prefix. Prefix for each replicated schema. For example with prefix 'x', source schemas 'foo' and 'bar' get replicated as 'x_foo' and 'x_bar'. The prefix is permanent and cannot be changed after connection creation |
Authorization
There are four ways to authorize this connector type:
PASSWORDauthentication: By specifying theauth_methodas"PASSWORD"and the values for thehost,port,user,passwordanddatabaseparameters in the request.POST https://api.fivetran.com/v1/connections{ "service": "postgres", "group_id": "group_id", "config": { "host": "postgresinstance.mycompany.com", "port": 5432, "user": "test_user", "password": "test_password", "database": "postgres", "auth_method": "PASSWORD" } }ENTRA_IDauthentication: By specifying theauth_methodas"ENTRA_ID"and the values for thehost,port,user,password,database,entra_app_idandentra_tenant_idparameters in the request.POST https://api.fivetran.com/v1/connections{ "service": "postgres", "group_id": "group_id", "config": { "host": "postgresinstance.mycompany.com", "port": 5432, "user": "test_user", "password": "test_password", "database": "postgres", "auth_method": "ENTRA_ID", "entra_app_id": "string", "entra_tenant_id": "string" } }useris the registered app display name,passwordis the client secret value,entra_app_idis the registered app (client) ID, andentra_tenant_idis the directory (tenant) ID.CLIENT_CERTIFICATEauthentication: By specifying theauth_methodas"CLIENT_CERTIFICATE"and the values for thehost,port,user,password,database,client_public_certificateandclient_private_keyparameters in the request.POST https://api.fivetran.com/v1/connections{ "service": "postgres", "group_id": "group_id", "config": { "host": "postgresinstance.mycompany.com", "port": 5432, "user": "test_user", "password": "test_password", "database": "postgres", "auth_method": "CLIENT_CERTIFICATE", "client_public_certificate": "string", "client_private_key": "string" } }client_public_certificateis the client certificate in .pem format andclient_private_keyis the client private key in .pem format. Use this method for Google Cloud SQL for PostgreSQL instances configured to require trusted client certificates.By using the Connect Card or the Fivetran dashboard.