@companydata/companydata-sdk
v0.3.0
Published
TypeScript SDK for integrating with the ProTool API.
Readme
@companydata/companydata-sdk
TypeScript SDK for integrating with the CompanyData ProTool API from Node.js and browser environments.
Installation
npm install @companydata/companydata-sdkQuickstart
import { ApiClient } from "@companydata/companydata-sdk";
const client = new ApiClient({
auth: { type: "apiKey", apiKey: process.env.COMPANYDATA_API_KEY! }
});
const result = await client.company.search({
countryCode: "NL",
search: "BoldData",
page: 1,
pageSize: 25
});
console.log(result.data);Endpoints
The SDK maps to these public API endpoints:
client.company.search()->GET /api/company/searchclient.company.export()->GET /api/company/export(standard pagination)client.company.exportWithScroll()->GET /api/company/exportwithuseScroll=true
Company Export (scroll mode)
let page = await client.company.exportWithScroll({
countryCode: "NL",
pageSize: 1000
});
while (page.hasMoreRecords) {
// process page.data
page = await client.company.exportWithScroll({
scrollId: page.scrollId,
pageSize: 1000
});
}Error Handling
import { ApiError } from "@companydata/companydata-sdk";
try {
await client.company.search({ countryCode: "NL", search: "BoldData" });
} catch (error) {
if (error instanceof ApiError) {
console.error(error.status, error.code, error.requestId);
}
}Configuration
const client = new ApiClient({
auth: { type: "apiKey", apiKey: process.env.COMPANYDATA_API_KEY! },
timeoutMs: 10_000,
retry: {
maxRetries: 2,
baseDelayMs: 200,
maxDelayMs: 2_000,
retryOnStatuses: [429, 500, 502, 503, 504]
}
});baseUrl defaults to https://app.companydata.com, so you only need to set it for non-default environments.
Scripts
npm run lintnpm run typechecknpm run testnpm run build
Release
Publish from the package directory:
npm run pack:checknpm run publish:public
