> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://apidocs.polytomic.com/2023-04-25/code-examples/bulk-sync-elt-from-hub-spot-to-postgre-sql/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://apidocs.polytomic.com/_mcp/server. Before getting started make sure to set your Polytomic API key as an environment variable: ```bash export POLYTOMIC_API_KEY=YOUR-API-TOKEN ``` This example tutorial will cover three steps: 1. Connecting to HubSpot. 2. Connecting to PostgreSQL. 3. Loading data from HubSpot to PostgreSQL. ## 1. Create a HubSpot connection The following request will create a Hubspot connection. The configuration for each type of connection can be found at the connection configuration docs page. ```bash curl --request POST \ --url https://app.polytomic.com/api/connections \ --header "accept: application/json" \ --header "content-type: application/json" \ --header "X-Polytomic-Version: 2022-12-12" \ --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \ -d '{"name": "Hubspot Connection","type": "hubspot", "configuration": {}} ``` Since Hubspot connections uses OAuth to authenticate, we'll need to follow the link returned in the `auth_url` parameter in the response #### Redirection \ > **Note** > > By default, the API expects the `auth_url` to be open in a new browser window. If you'd like to modify the redirect behavior, there is an optional `redirect_url` parameter that can be added to the request body. ## 2. Create a PostgreSQL connection The PostgreSQL server must be network-accessible from Polytomic. ```bash curl --request POST \ --url https://app.polytomic.com/api/connections \ --header "accept: application/json" \ --header "content-type: application/json" \ --header "X-Polytomic-Version: 2022-12-12" \ --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \ -d '{ "name": "Postgres Connection", "type": "postgresql", "configuration": { "hostname": "localhost", "port": 5432, "database": "postgres", "username": "user", "password": "secret" } }' ``` #### Bulk sync schemas \ > **Note** > > Polytomic may take a few moments to cache source schemas after creating new connections. ## 3. Create a bulk sync This will create a bulk sync of all Hubspot objects into Postgres: ```bash curl --request POST \ --url https://app.polytomic.com/api/bulk/syncs \ --header "accept: application/json" \ --header "content-type: application/json" \ --header "X-Polytomic-Version: 2022-12-12" \ --header "Authorization: Bearer ${POLYTOMIC_API_KEY}" \ -d '{ "name": "Hubspot Bulk Sync", "source_connection_id": "YOUR-HUBSPOT-CONNECTION-ID", "destination_connection_id": "YOUR-POSTGRES-CONNECTION-ID", "mode": "replicate", "schedule": { "frequency": "manual" }, "dest_configuration": { "schema": "hubspot" } }' ```