A complete, modern Node.js wrapper for the Close.com API. Built on the base of closeio-node.
- Node.js 18+ (uses native
fetch())
npm install closecrm-nodeconst Closecom = require('closecrm-node');
const api = new Closecom('your-api-key');
// Get current user
const user = await api.user.me();
// Search leads
const leads = await api.lead.search({ query: 'company:"Acme Inc"' });
// Create a lead
const newLead = await api.lead.create({
name: 'Acme Inc',
contacts: [{
name: 'John Doe',
emails: [{ email: '[email protected]' }]
}]
});const api = new Closecom('your-api-key', {
baseUrl: 'https://api.close.com/api/v1', // Optional: custom API endpoint
maxRetries: 3, // Optional: retry on rate limits
retryDelay: 1000 // Optional: delay between retries (ms)
});This library includes comprehensive TypeScript definitions for full type safety and IntelliSense support.
import Closecom, { Lead, Contact, SearchOptions } from 'closecrm-node';
const api = new Closecom(process.env.CLOSE_API_KEY!);
// Type-safe lead search
const searchOptions: SearchOptions = {
query: 'status:"Potential"',
limit: 50
};
const response = await api.lead.search(searchOptions);
const leads: Lead[] = response.data;
// Create a lead with type checking
const newLead: Lead = await api.lead.create({
name: 'Acme Inc',
contacts: [{
name: 'John Doe',
emails: [{ email: 'john.doe@acme.inc', type: 'office' }]
}]
});- Pagination: All search/list endpoints accept
limit/skipor_limit/_skipand map them to Close's_limit/_skipparameters. You can also passfields/_fieldsto limit response payloads. - Email threads: The
email_threadresource uses the documented/activity/emailthread/endpoints. - Rate limits: 429 retries honor
RateLimit-Resetheaders when present, otherwise fall back toRetry-Afteror the configuredretryDelay.
This repo includes a small Wiki in the Wiki/ folder with usage examples and a method-by-method resource overview.
- Start here:
Wiki/Home.md