Node SDK

在 JavaScript 和 TypeScript 中使用 API。

安装

Terminal
npm install handelsregister
export HANDELSREGISTER_API_KEY=YOUR_API_KEY
项目
项目 值
包 handelsregister
当前版本 0.7.0
Node.js 22.13 或更新版本
TypeScript 已包含类型定义
许可证 AGPL-3.0
源代码 github.com/Handelsregister-AI/handelsregister-js

第一个请求

JavaScript
import { Handelsregister } from 'handelsregister';

const client = new Handelsregister({ apiKey: process.env.HANDELSREGISTER_API_KEY });

const company = await client.fetchOrganization({ q: 'Hetzner Online GmbH' });
console.log(company.entity_id, company.name);
console.log(company.registration); // { court: 'Ansbach', register_type: 'HRB', register_number: '6089' }
console.log(company.meta.request_credit_cost);
1{2  "entity_id": "94eb910fef13f94585c48c263fa446d4",3  "name": "Hetzner Online GmbH",4  "status": "ACTIVE",5  "legal_form": "GmbH",6  "registration": {7    "court": "Ansbach",8    "register_type": "HRB",9    "register_number": "6089"10  },11  "meta": {12    "request_credit_cost": 5,13    "credits_remaining": 14514  }15}
200 · 我们对 Hetzner Online GmbH(Ansbach HRB 6089)示例响应的节选,仅含基本数据
JavaScript
const company = await client.fetchOrganization({
  q: 'Ansbach HRB 6089',
  features: ['financial_kpi', 'related_persons'],
});
在一小时内,客户端会从缓存中响应相同的请求,不再消耗积分。使用实时模式的请求始终发往 API。设置 cacheEnabled: false 可关闭缓存。

处理错误

异常
异常 状态 含义
AuthenticationError 401 API 密钥缺失或无效。
InsufficientCreditsError 402 你的余额不足以支付此请求。
SubscriptionRequiredError 403 此请求需要更高的套餐。requiredPlans 列出适用的套餐。
NotFoundError 404 未找到匹配的公司或人员。
RequestTimeoutError 408 登记册未及时响应。未收取任何费用。
RequestValidationError 400, 422 某个参数的值无效。
RateLimitError 429 每分钟请求过多。
ServerError 5xx 数据源当前不可用或负载过高。请稍后重试。
JavaScript
import {
  Handelsregister,
  HandelsregisterError,
  InsufficientCreditsError,
  NotFoundError,
  RequestTimeoutError,
} from 'handelsregister';

const client = new Handelsregister({ timeout: 120000 });

try {
  const company = await client.fetchOrganization({
    q: 'Hetzner Online GmbH',
    realtimeMode: true,
  });
} catch (error) {
  if (error instanceof NotFoundError) {
    console.log('未找到匹配的公司');
  } else if (error instanceof InsufficientCreditsError) {
    console.log('积分不足:', error.meta);
  } else if (error instanceof RequestTimeoutError) {
    console.log('登记册暂时没有响应,请稍后再试');
  } else if (error instanceof HandelsregisterError) {
    console.log('错误:', error.statusCode, error.message);
  } else {
    throw error;
  }
}

命令行

Terminal
# 不使用 AI 模式的公司档案,仅含财务 KPI
npx handelsregister fetch "Hetzner Online GmbH" --no-ai-search --feature financial_kpi

# 将股东名单保存为 PDF
npx handelsregister document "Hetzner Online GmbH" --type shareholders_list --output hetzner.pdf
不带其他选项时,handelsregister fetch 会开启 AI 模式。此时即使不请求功能,一个请求也要花费 25 积分,而不是 5。使用 --no-ai-search 可不使用 AI 模式进行请求。

参考