TradeProtected大宗商品贸易合规平台

制裁筛查 API

Sanctions Screening API — one endpoint, four official lists

把 28,172 条美国 OFAC、联合国、欧盟、中国商务部的制裁与出口管制名单,接进你自己的 ERP、风控或 KYC 系统。传一个名称,返回是否命中、命中哪几条、以及可点开核实的官方出处链接。

28,172条名单记录
4个官方来源
每日自动更新
4输出格式

谁需要它

为什么不自己爬

四个来源四种格式:OFAC 是 CSV、联合国是 XML、欧盟是自家数据库、中国商务部干脆没有接口只有公告网页。

名单还天天在变——本站上一轮刷新 OFAC 就少了 97 条(实体被移出也必须同步,否则会误报)。

这些维护成本是持续的,不是一次性的。

三步接入

1. 开通 API 版并创建密钥

API 需要 API 版套餐(US$19.9/月,含会员全部权益)。

登录后进「会员」页开通,再到「API 密钥」里点新建,密钥形如 tp_xxxxxxxx

明文只在创建时显示一次,请当场存进你的密钥管理器。

2. 发一个请求

curl -H "Authorization: Bearer tp_你的密钥"   "https://tradeprotected.com/api/v1/screen?name=GAZPROM"

3. 读返回

{
  "matched": true,
  "count": 2,
  "rows": [
    {
      "source": "OFAC",
      "name": "GAZPROM NEFT",
      "type": "entity",
      "programs": "RUSSIA-EO14024",
      "listed_on": "2022-02-24",
      "url": "https://sanctionssearch.ofac.treas.gov/..."
    }
  ]
}

matched 是布尔值,可以直接拿去做流程判断;rows[].url 指向官方原始记录,存进你的尽调档案即可作为核查留痕。

接口清单

GET/api/v1/screen

单个名称筛查。参数 name(必填,最长 200 字符)。传 7 位数字视为船舶 IMO 号,自动走船舶精确匹配。

POST/api/v1/screen

批量筛查,单次最多 100 个名称。适合下单前一次性核对买方、卖方、船东、收货人。

GET/api/v1/sanctions

名单浏览与全量拉取,给要把名单同步进自己库的场景。参数:q 关键词、source 来源、type 对象类型、limit(默认 100,上限 500)、offset 偏移。

GET/api/v1/sources

各来源的条目数与最近更新时间。同步任务可以先查这个再决定要不要重新拉全量。

参数速查

name要筛查的名称,或 7 位 IMO 号。GET /screen 必填
names批量筛查的名称数组,POST body,最多 100 个
sourceOFAC / UN / EU / EUX / CN,留空为全部
typeentity 公司 / individual 个人 / vessel 船舶 / aircraft 飞机
formatjson(默认)/ xlsx(Excel)/ csv / ndjson
limit单页条数,默认 100,上限 500
offset偏移量,配合 limit 翻页

三种用法

同一份数据,三种取用方式,按「要不要写代码」从易到难:

用法一:嵌进你自己的网站

把下面这段贴到你公司官网的任意页面,就会出现一个制裁名单查询框,数据走我们的库,外观简洁可直接融入你的页面。适合货代、律所、行业协会给自己的客户提供一个自助核查入口。

<iframe src="https://tradeprotected.com/embed?key=tp_你的密钥&lang=zh"
        style="width:100%;height:420px;border:1px solid #e4eaf1;border-radius:12px"
        loading="lazy"></iframe>

务必设置域名白名单

嵌入代码里的密钥是公开可见的——任何人查看你网页的源码都能拿到。所以在「会员 → API 密钥」里给这把密钥填上允许的域名(如 yourcompany.com),之后即使密钥被抄走,在别的网站上也用不了。这与 Google Maps 等前端密钥的做法一致。

建议把嵌入用的密钥和服务端调用的密钥分开:嵌入那把锁定域名,服务端那把不锁、只存在你的服务器上。一个账号可同时保有 5 把密钥,正好够分环境。

用法三:导出表格

加 format 参数即可,任何查询接口都支持。

# 把中国商务部名单导成 Excel
curl -H "Authorization: Bearer tp_你的密钥"   "https://tradeprotected.com/api/v1/sanctions?source=CN&limit=500&format=xlsx"   -o cn-list.xlsx

# 单次筛查结果直接存表,可作为尽调留痕归档
curl -H "Authorization: Bearer tp_你的密钥"   "https://tradeprotected.com/api/v1/screen?name=GAZPROM&format=xlsx"   -o gazprom.xlsx

# 按 IMO 查船
curl -H "Authorization: Bearer tp_你的密钥"   "https://tradeprotected.com/api/v1/screen?name=9209508"

代码示例

Python

import requests

KEY = "tp_你的密钥"
r = requests.get(
    "https://tradeprotected.com/api/v1/screen",
    params={"name": "GAZPROM"},
    headers={"Authorization": "Bearer " + KEY},
    timeout=20,
)
r.raise_for_status()
data = r.json()

if data["matched"]:
    print("命中", data["count"], "条,需人工复核")
    for row in data["rows"]:
        print(row["source"], row["name"], row["url"])

Node.js

const KEY = process.env.TP_API_KEY;

async function screen(name) {
  const url = new URL("https://tradeprotected.com/api/v1/screen");
  url.searchParams.set("name", name);
  const r = await fetch(url, { headers: { authorization: "Bearer " + KEY } });
  if (!r.ok) throw new Error("screen failed: " + r.status);
  return r.json();
}

const out = await screen("SOVCOMFLOT");
console.log(out.matched ? "命中 " + out.count : "通过");

批量(Python)

names = ["GAZPROM", "ACSL", "SOVCOMFLOT"]
r = requests.post(
    "https://tradeprotected.com/api/v1/screen",
    json={"names": names},
    headers={"Authorization": "Bearer " + KEY},
    timeout=60,
)
for item in r.json()["results"]:
    flag = "命中" if item["matched"] else "通过"
    print(flag, item["query"], item["count"])

配额与错误码

每把密钥每日 1000 次调用,UTC 00:00 重置。每次响应都带这两个头:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999

一个账号最多同时保有 5 把有效密钥,建议按环境分开(生产 / 测试 / 某个同事),出问题时可以只吊销一把而不影响其他调用方。

错误码

错误统一返回 {"error":{"code":"...","message":"..."}},请按 code 判断而不是文案。

401missing_key 没传密钥 · invalid_key 密钥无效或已吊销
403membership_required 未开通或已过期——套餐一失效密钥立即停用,续费后无需换新
429quota_exceeded 当日额度用尽
400missing_name / name_too_long / too_many_names 参数问题

使用须知

名单匹配为归一化子串与短语匹配,命中结果是尽职调查的提示,不是法律结论。同名同姓、音译差异都可能造成误报或漏报,最终判断请以 url 指向的官方原始记录为准。

API 版套餐:含会员全部权益,外加数据接口、嵌入式查询框与 Excel 导出。

同类筛查接口普遍按年签、起步几千美元,我们按月付、随时停。先免费查几条看看数据质量,再决定要不要接。

免费试查

调用量超过每日 1000 次、需要专属额度或私有化部署? 看企业方案 →

其他语言:English · Русский · Español · 日本語 · 한국어 · العربية