us-tariff-lookup npm 包使用教程:CLI + 库双形态(附可运行代码)

Invoice × Tariff 编辑部

适用对象要把关税计算接进自己应用、脚本、表格或 AI Agent 的 Node.js 开发者。

npm install us-tariff-lookup 即可安装——零依赖 TypeScript 库 + CLI 双形态。终端里用 npx us-tariff search / calc / refund / changelog,代码里调 searchHts 与 calculateLandedCost。版本化规则快照随包内置,完全离线可用;每个结果都带 rulesetVersion、data-as-of 日期与免责声明。

这个包是什么

us-tariff-lookup 是驱动本站计算器的同一个确定性引擎的 Node 封装:零依赖、纯 TypeScript、无需 API Key、无网络请求。版本化规则快照——MFN 税率、对华 301、全球 301、Section 232、MPF/HMF 规费表、IEEPA 历史层和机器可读 changelog——随包内置,所以结果与网页计算器完全一致,且对固定版本永远可复现。

MIT 许可;每条税率行都带 legalBasis 与官方 source 链接(USITC / USTR / CBP / Federal Register)。

安装

npm install us-tariff-lookup        # 作为库使用
npx us-tariff meta                  # 或不安装直接用 CLI

CLI:五条命令

所有命令向 stdout 输出 JSON,并附带 rulesetVersion、dataAsOf 与 disclaimer——可以直接接 jq、表格或 LLM 提示词。

# 看包里有什么 / 当前数据版本
npx us-tariff meta

# 查 HTS 码——编码前缀、英文描述或中文关键词都行
npx us-tariff search "cotton t-shirt"
npx us-tariff search 保温杯

# 叠加关税 + 规费 + 落地成本
npx us-tariff calc --hts 61091000 --value 20000 --origin CN --mode sea --units 5000 --locale en

# 2026 年 IEEPA 裁决后适用哪条退税通道
npx us-tariff refund --entry-date 2026-03-01

# 近期已发布的规则变更
npx us-tariff changelog --limit 5

calc 的 mode 取值:sea | air | express | postal——HMF 只对海运征收,2,500 美元及以下邮政件走非正式报关固定规费档。--entry-date 默认今天,且必须落在快照窗口内(data-as-of + 90 天),保证历史回放不失真。

库:第一次计算

import { rulesetSeed, searchHts, calculateLandedCost } from "us-tariff-lookup";

// searchHts 同时匹配编码前缀、英文与中文关键词
const hits = searchHts(rulesetSeed, "cotton t-shirt", 5);

const result = calculateLandedCost(rulesetSeed, {
  hts: "61091000",        // 棉制 T 恤
  value: 20_000,          // 美元申报值
  originCountry: "CN",
  entryDate: "2026-10-10",
  mode: "sea",
  units: 5_000,
  locale: "en",
});

result.totalDuty;         // 7394.28 —— 已含关税 + MPF + HMF
result.effectiveTaxRate;  // 36.97(占申报值百分比)
result.layers;            // 每一关税行:金额、税率文本、法律依据、来源 URL

这两个输出数字是包的黄金测试用例——在当前快照上运行应精确复现。result.layers 里每一项就是你要渲染的一行:税率、金额、法律依据和指回官方原文的链接。

接进 API

一个按需计价的极简 Express 端点:

import express from "express";
import { rulesetSeed, calculateLandedCost } from "us-tariff-lookup";

const app = express();
app.use(express.json());

app.post("/api/landed-cost", (req, res) => {
  try {
    const result = calculateLandedCost(rulesetSeed, { ...req.body, locale: "en" });
    res.json({
      ...result,
      rulesetVersion: rulesetSeed.version,
      dataAsOf: rulesetSeed.asOf,
      disclaimer:
        "Estimates for planning only — final duty is determined by U.S. Customs and Border Protection at entry.",
    });
  } catch (e) {
    res.status(400).json({ error: String(e) });
  }
});

app.listen(3000);

永远展示版本号和免责声明

两个习惯区分可信集成与埋雷集成:

  1. 每个结果都回显 rulesetVersion 与 dataAsOf。 税率月月在变,不带数据日期的报价无法复现。本站批量导出的 CSV 就是这么做的。
  2. 把免责声明透传给终端用户。 包会把尚未对照 FR 原文核实的行打上 sample / unverified 标——用于规划与演示没问题,但不能作为正式报关依据。签字的是你的报关行,不是这个包。

保持数据新鲜

规则快照每月重建(重大政策落地时临时加更),来源是开放的税率数据仓。用 npm update us-tariff-lookup 升级;用 changelogEntries()(或 npx us-tariff changelog)查看版本之间动了什么。带新旧值的实时 changelog 在关税雷达,附 RSS,方便你自动化响应。

包内规则快照一览

税层 内容
mfn 精选高频 HTS 8 位码,官方 USITC 普通税率(中英双语品名)
china301 对华 301 各清单税行(清单 2/3/4A + 2026 四年复审新增)
global301 2026 全球 301 计划:60 个经济体档位 + HTS 前缀豁免
section232 钢 / 铝 / 铜 / 汽车 / 家具 / 药品 / 半导体 / 木材措施
fees FY2027 MPF/HMF + 非正式报关规费档
ieepaHistorical 已终止的 IEEPA 层,供退税查询
changelog 机器可读规则变更(已发布 + 预告)

全量 5,689 码 HTS 表不在包内——它在 hs-codes-database 仓和 HTS 搜索页;批量取数见数据集教程。

常见问题

us-tariff-lookup 会调 API 或外发数据吗?
不会。包完全离线:版本化规则快照随 npm 包内置,零依赖,运行时没有任何网络请求。因此用于 CI、隔离网络环境和客户端打包都安全。
数据有多新?怎么更新?
规则快照版本化,每月从开放税率仓重建(重大政策落地时临时加更)。跑 npx us-tariff meta 看当前包内版本与 data-as-of,npm update us-tariff-lookup 升到最新快照。
能在浏览器里用吗?
可以——纯 TypeScript,无 Node 专属 API,客户端打包没问题。如果页面只需要搜索加叠加计算,站点提供的可内嵌 widget 更轻,完全不用写代码。
输出能用于正式报关吗?
按“规划级”对待。当前快照多数税率行带 sample/unverified 标——适合报价、情景与演示,不是核定的报关数据。每行都附 legalBasis 与 source,报关行可以据此核对;最终关税由 CBP 在入境时核定。
为什么 searchHts 找不到我的编码?
内置 MFN 搜索覆盖精选高频码,不是全部 5,689 条 HTS 8 位码。全量表在 hs-codes-database 仓,也可以在 HTS 页面搜索,需要全量覆盖时把包和那份 CSV 配合使用。
npm 上的 us-tariff-lookup

MIT 许可、零依赖、自带 TypeScript 类型。源码仓与发布说明见开源项目页。