This is a Singer tap that produces JSON-formatted data following the Singer spec.
This tap:
- Pulls raw data from HubSpot's REST API
- Extracts the following resources from HubSpot
-
- Limitation: HubSpot's
/crm/v3/lists/searchendpoint enforces a hard 10,000 record offset ceiling. It does not return records beyond that. There is no other endpoint available that can replace it. - To maximize coverage:
- Historic sync (no bookmark): Fetch in BOTH ascending and descending order of
HS_UPDATED_AT. This gives up to ~20K unique records. After the ascending pass,startis updated tomax_bk_valueso the descending pass only emits records newer than what was already seen, effectively deduplicating (with at most 1 record overlap at the boundary). - From next sync onwards: Fetch only in descending order (
-HS_UPDATED_AT). This retrieves the latest 10K updated records.
- Historic sync (no bookmark): Fetch in BOTH ascending and descending order of
- Limitation: HubSpot's
- Outputs the schema for each resource
- Incrementally pulls data based on the input state
This tap requires a config.json which specifies details regarding OAuth 2.0 authentication, a cutoff date for syncing historical data, an optional parameter request_timeout for which request should wait to get the response and an optional flag which controls collection of anonymous usage metrics. See config.sample.json for an example. You may specify an API key instead of OAuth parameters for development purposes, as detailed below.
To run tap-hubspot with the configuration file, use this command:
› tap-hubspot -c my-config.jsonAs an alternative to OAuth 2.0 authentication during development, you may specify an API key (HAPIKEY) to authenticate with the HubSpot API. This should be used only for low-volume development work, as the HubSpot API Usage Guidelines specify that integrations should use OAuth for authentication.
To use an API key, include a hapikey configuration variable in your config.json and set it to the value of your HubSpot API key. Any OAuth authentication parameters in your config.json will be ignored if this key is present!
Copyright © 2017 Stitch