clearbit-node
Node library for querying the Clearbit business intelligence APIs. Currently supports:
Setup
$ npm install clearbit
var clearbit = require('clearbit')('api_key');
var Client = require('clearbit').Client;
var clearbit = new Client({key: 'api_key'});
Performing Lookups
Person
Person.find(options)
-> Promise
email
String: The email address to look up (required)webhook_id
String: Custom identifier for the webhook requestsubscribe
Boolean: Set to true
to subscribe to the changescompany
Boolean: Set to true
to include a company lookup on the email’s domain name in the responsestream
Boolean: Set to true
to use the streaming API instead of webhooks
var Person = clearbit.Person;
Person.find({email: 'email@domain.com'})
.then(function (person) {
if (!person.pending()) {
console.log('Name: ', person.name.fullName);
}
})
.catch(Person.NotFoundError, function (err) {
console.log(err);
})
.catch(function (err) {
console.log('Bad/invalid request, unauthorized, Clearbit error, or failed request');
});
person.pending()
-> Boolean
If Clearbit responds with a 202
status indicating that lookup has been queued, person.pending
returns true
.
Company
Company.find(options)
-> Promise
domain
String: The company domain to look up (required)webhook_id
String: Custom identifier for the webhook requeststream
Boolean: Set to true
to use the streaming API instead of webhooks
var Company = clearbit.Company;
Company.find({domain: 'www.uber.com'})
.then(function (company) {
if (!company.pending()) {
console.log('Name: ', company.name);
}
})
.catch(Company.NotFoundError, function (err) {
console.log(err);
})
.catch(function (err) {
console.log('Bad/invalid request, unauthorized, Clearbit error, or failed request');
});
company.pending()
-> Boolean
If Clearbit responds with a 202
status indicating that lookup has been queued, company.pending
returns true
.
Error Handling
Lookups return Bluebird promises. Any status code >=400 will trigger an error, including lookups than do not return a result. You can easily filter out unknown records from true errors using Bluebird's error class matching:
Person.find({email: 'notfound@example.com'})
.catch(Person.NotFoundError, function () {
})
.catch(function () {
});
Callbacks
If you really want to use node-style callbacks, use Bluebird's nodeify method:
Person.find({email: 'email@domain.com'}).nodeify(function (err, person) {
if (err) {
}
else {
}
});