Before getting started make sure to set your Polytomic API key as an environment variable:
export POLYTOMIC_API_KEY=YOUR-API-TOKEN
This example tutorial will cover three steps:
- Connecting to HubSpot.
- Connecting to PostgreSQL.
- 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.
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
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 optionalredirect_url
parameter that can be added to the request body.
2. Create a PostgreSQL connection
The PostgreSQL server must be network-accessible from Polytomic. For more information, see Postgres connection guide.
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
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
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"
}
}'