node.js wrapper for the HubSpot API
Version 1.0 was released on 2017-08-23 and included breaking changes. See the Changelog for details. If you need help upgrading, please open an issue
npm install hubspot
const Hubspot = require('hubspot');
const hubspot = new Hubspot({ apiKey: 'abc' });
You can also authenticate via token:
const hubspot = new Hubspot({ accessToken: 'abc' });
To change the base url
const hubspot = new Hubspot({ accessToken: 'abc', baseUrl: 'https://some-url' });
If you're an app developer, you can also instantiate a client with your app details and a refresh_token and obtain a new accessToken:
const hubspot = new Hubspot({
clientId: ...,
clientSecret: ...,
redirectUri: ...,
refreshToken: ...
})
return hubspot.refreshAccessToken()
.then(results => {
console.log(results.access_token)
console.log(hubspot.accessToken) // this assigns the new accessToken to the client, so your client is ready to use
return hubspot.contacts.get()
})
And then use the API method via:
hubspot.contacts.get(options)
.then(results => {
console.log(results)
}).catch(err => {
console.error(err)
})
or if you prefer callbacks:
hubspot.contacts.get(function(err, results) {
if (err) { console.error(err) }
console.log(results);
});
hubspot.companies.get(opts, cb)
hubspot.companies.getById(id, cb)
hubspot.companies.getRecentlyCreated(opts, cb)
hubspot.companies.getRecentlyModified(opts, cb)
hubspot.companies.getByDomain(domain, cb)
hubspot.companies.create(data, cb)
hubspot.companies.addContactToCompany(data, cb); // data = { companyId: 123, contactVid: 123 }
hubspot.contacts.get(opts, cb)
hubspot.contacts.getByEmail(email, cb)
hubspot.contacts.getByEmailBatch(emails, cb)
hubspot.contacts.getById(id, cb)
hubspot.contacts.getByIdBatch(ids, cb)
hubspot.contacts.getByToken(utk, cb)
hubspot.contacts.update(id, data, cb)
hubspot.contacts.create(data, cb)
hubspot.contacts.createOrUpdateBatch(data, cb)
hubspot.contacts.search(query, cb)
hubspot.contacts.getRecent(cb)
hubspot.contacts.createOrUpdate(email, data, cb)
hubspot.contacts.properties.get(cb)
hubspot.contacts.properties.getByName(name, cb)
hubspot.contacts.properties.create(data, cb)
hubspot.contacts.properties.update(name, data, cb)
hubspot.contacts.properties.update(name, data) // not an official API, wrapper doing two API calls. Callbacks not supported at this time
// more opts can be found at https://developers.hubspot.com/docs/methods/pages/get_pages
hubspot.pages.get(opts, cb); // eg: opts = {is_draft: false}
hubspot.deals.get(opts, cb)
hubspot.deals.getRecentlyModified(opts, cb)
hubspot.deals.getRecentlyCreated(opts, cb)
hubspot.deals.getById(id, cb)
hubspot.deals.deleteById(id, cb)
hubspot.deals.updateById(id, data, cb)
hubspot.deals.create(data, cb)
hubspot.deals.associate(id, objectType, associatedObjectId, cb)
hubspot.deals.removeAssociation(id, objectType, associatedObjectId, cb)
hubspot.engagements.create(data, cb)
hubspot.owners.get(opts, cb)
hubspot.pipelines.get(opts, cb)
hubspot.lists.get(opts, cb)
hubspot.lists.getOne(id, cb)
hubspot.lists.getContacts(id, opts, cb)
hubspot.lists.getRecentContacts(id, opts, cb)
hubspot.lists.addContacts(id, contactBody, cb)
hubspot.files.get(cb)
hubspot.files.getOne(id, cb)
hubspot.subscriptions.get(opts, cb)
### Email Events
```javascript
hubspot.campaigns.get(opts, cb)
hubspot.campaigns.getOne(id, appId, cb)
hubspot.campaigns.events(opts, cb)
hubspot.broadcasts.get(opts, cb)
const params = {
client_id: 'your_client_id',
scopes: 'some scopes',
redirect_uri: 'take_me_to_the_ballpark'
}
const uri = hubspot.oauth.getAuthorizationUrl(params)
const params = {
client_id: 'your_client_id',
scopes: 'some scopes',
redirect_uri: 'take_me_to_the_ballpark'
}
const uri = hubspot.oauth.getAuthorizationUrl(params)
const hubspot = new Hubspot({
clientId: '',
clientSecret: '',
redirectUri: ''
})
return hubspot.oauth.getAccessToken({
code: 'abc' // the code you received from the oauth flow
}).then(...)
You can also pass the constructor directly as parameters (although with a slighlty awkward case change)
const params = {
code: 'abc' // the code you received from the oauth flow
client_id: '',
client_secret: '',
redirect_uri: ''
}
const hubspot = new Hubspot(params)
return hubspot.oauth.getAccessToken(params).then(...)
MIT
- Brian Falk @brainflake
- Tim Atkinson @timisbusy
- Tejas Manohar @tejasmanohar
- Krispin Schulz @kr1sp1n
- Filipe Ferreira @iTsFILIPOficial
- Sam Levan @samlevan
- Paul Cothenet @pcothenet
- Nick Mason @masonator
- Mikael Puittinen @mpuittinen