TypeScript SDK for integrating with the CompanyData ProTool API from Node.js and browser environments.
npm install @companydata/protool-sdkimport { ApiClient } from "@companydata/protool-sdk";
const client = new ApiClient({
baseUrl: "https://app.companydata.com",
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);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=trueclient.lookup.cities()->GET /api/citiesclient.lookup.provinces()->GET /api/provincesclient.lookup.regions()->GET /api/regionsclient.lookup.countries()->GET /api/countries
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
});
}const cities = await client.lookup.cities({
search: "ams",
countries: "NL",
limit: 100
});
console.log(cities.data);import { ApiError } from "@companydata/protool-sdk";
try {
await client.company.search({ countryCode: "NL", search: "BoldData" });
} catch (error) {
if (error instanceof ApiError) {
console.error(error.status, error.code, error.requestId);
}
}const client = new ApiClient({
baseUrl: "https://app.companydata.com",
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]
}
});npm run lintnpm run typechecknpm run testnpm run build
Publish from the package directory:
npm run pack:checknpm run publish:public