一、接口定位
item_get_company 不是“商品级”接口,而是“供应商级”接口。
输入:1688 商品 offerId 或 companyId(二选一)
输出:公司档案 60+ 字段,包括工商信息、深度认证、工厂能力、贸易能力、在线表现 5 大板块。
典型用途:
输入:1688 商品 offerId 或 companyId(二选一)
输出:公司档案 60+ 字段,包括工商信息、深度认证、工厂能力、贸易能力、在线表现 5 大板块。
典型用途:
- 选品 SaaS 一键生成“供应商体检报告”
- ERP 自动拦截“贸易型”或“个体工商户”供应商
- 财务系统拉取“开票类型、对公账号”做应付初始化
二、权限与调用地址
| 项目 | 说明 |
|---|---|
| 官方方法名 | alibaba.icbu.company.get |
| 网关 | https://gw.open.1688.com/openapi/param2/2/system.oauth2/company/get |
| 权限代码 | com.alibaba.icbu.company.read |
| 频率 | 默认 1 QPS,企业最高 20 QPS |
| 费用 | 免费,但需企业开发者+深度认证权限包 |
三、签名算法(2025-12 仍沿用“旧版 TOP 签名”)
- 排除
sign与空值 - key 按 ASCII 升序
key + value首尾拼接AppSecret- MD5 → 32 位大写
Python 函数(可直接复用):
Python
from hashlib import md5def sign(p: dict, secret: str) -> str:
p = {k: v for k, v in p.items() if v is not None}
text = ''.join([f'{k}{v}' for k, v in sorted(p.items())]) + secret return md5(text.encode()).hexdigest().upper()四、最小可运行示例
场景:已知 1688 商品 ID,想 1 行代码拿到“公司 + 工厂 + 认证”全套档案。
Python
import requests, time, jsonclass CompanyAPI:
url = 'https://gw.open.1688.com/openapi/param2/2/system.oauth2/company/get'
def __init__(self, app_key, app_secret, access_token):
self.ak, self.sk, self.token = app_key, app_secret, access_token def get_by_offer(self, offer_id: str):
params = {
'method': 'alibaba.icbu.company.get',
'app_key': self.ak,
'access_token': self.token,
'format': 'json', 'v': '1.0',
'timestamp': str(int(time.time() * 1000)),
'offerId': offer_id,
'fields': ('companyName,businessType,countryName,'
'province,city,address,contact,telephone,'
'mainProducts,employeeNum,factoryArea,'
'deepVerify,deepVerifyInfo,isoCert,'
'tradeCapacity,creditLevel,openTime')
}
params['sign'] = sign(params, self.sk)
r = requests.post(self.url, data=params, timeout=10).json()
if 'error_response' in r:
raise RuntimeError(r['error_response']['msg'])
return r['company_get_response']['company']# ----------- 调用 -----------cli = CompanyAPI('你的AppKey', '你的AppSecret', '你的AccessToken')info = cli.get_by_offer('64321098756')print(json.dumps(info, ensure_ascii=False, indent=2))五、核心字段速查表(60 选 20)
| 字段 | 类型 | 示例值 | 业务含义 |
|---|---|---|---|
| companyName | string | 深圳市某某科技有限公司 | 工商注册名 |
| businessType | string | 生产企业 | 枚举:生产企业/贸易企业/工贸一体/个体工商户 |
| countryName | string | 中国 | 注册国家 |
| province/city | string | 广东省/深圳市 | 可用来做“产地”标签 |
| address | string | 宝安区福永街道桥头村… | 可地图打点 |
| contact | string | 张经理 | 公开联系人 |
| telephone | string | 0755-2953**** | 前台固话 |
| mainProducts | list | ["蓝牙耳机", "音箱"] | 关键词搜索权重高 |
| employeeNum | string | 200-300人 | 工厂规模粗筛 |
| factoryArea | int | 5000 | 单位:平方米 |
| deepVerify | bool | true | 是否深度验厂 |
| deepVerifyInfo | object | {“verifyType”: “深度验厂”, “verifyUrl”: “https://…”} | 视频/报告链接 |
| isoCert | list | ["ISO 9001", "BSCI"] | 体系证书 |
| tradeCapacity | object | {“exportPct”: 80, “mainMarkets”: [“北美”, “西欧”]} | 出口占比 |
| creditLevel | string | AAA | 诚信通等级 |
| openTime | string | 2012-05-18 | 开店时间,算“老店” |
六、五大踩坑实录
- offerId 与 companyId 混用
老版本只认companyId,2025-12 起两者皆可;但若同时传,优先取companyId,offerId被忽略。 - deepVerify=true 但 deepVerifyInfo 为空
说明“已下单验厂,但报告未回传”,隔 24h 再拉即可。 - address 带“*”号
个人/个体户保护隐私,地址被脱敏,只能到“镇”级;如需完整地址,需用户授权“电子合同”接口。 - 字段缺失≠null
1688 对未填写字段直接不返回,解析前务必dict.get(key, default)。 - 图片外链 30 天失效
deepVerifyInfo.verifyUrl是阿里云临时签名,落库请立刻下载转存 OSS。
七、生产级落库设计(MySQL 片段)
sql
CREATE TABLE supplier_company (
id bigint PRIMARY KEY AUTO_INCREMENT,
company_id varchar(32) UNIQUE COMMENT '1688 companyId',
company_name varchar(100) NOT NULL,
business_type varchar(20),
province varchar(20),
city varchar(20),
address varchar(255),
employee_num varchar(20),
factory_area int COMMENT '平方米',
deep_verify tinyint DEFAULT 0,
iso_cert json,
trade_capacity json,
credit_level varchar(10),
open_time date,
updated_at timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);- iso_cert、tradeCapacity 直接存 JSON,方便后台渲染标签。
- 建联合索引
(province, city, businessType)用于“产地+类型”筛选。
八、小结
item_get_company 是 1688 开放生态里“唯一能把供应商家底一次搬空”的接口。
记住 3 句话:
记住 3 句话:
- 先拿 offerId 换 companyId,再拉档案,可省 50% 流量。
- 深度验厂、ISO、工厂面积 3 个字段组合,即可在选品阶段秒筛“真实工厂”。
- 地址、电话、验厂报告都是 30 天临时链接,落库立刻转存,否则全链 403。
把上面的
CompanyAPI 类复制到项目,再配一张 supplier_company 表,10 分钟就能上线“供应商体检报告”自动化。祝各位调试顺利,永不踩坑!如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。