UpKuaJing Customs Trade Company Search
Search for companies through customs trade data using the UpKuaJing Open Platform API. This skill uses a data-driven approach: finding companies by analyzing trade records and transaction patterns.
Overview
This skill provides access to UpKuaJing's customs trade data API through four scripts: two search methods (trade list, company list) and two enhancement interfaces (company details, contact information).
API key generation and top-up are provided through the auth.py script.
Running Scripts
Environment Setup
- 1. Check Python: INLINECODE1
- Install dependencies: INLINECODE2
Script directory: scripts/*.py
Run example: INLINECODE4
Two Search Methods
Trade List Search (trade_list_search.py)
- - Return granularity: Each trade order as one record
- Use cases: Focus on "what transactions occurred"
- Examples:
- "Show all orders where Company A purchased LED"
- "Find soybean trade records imported/exported to US"
- "View specific transaction details within a time period"
Company List Search (company_list_search.py)
- - Return granularity: Trade orders aggregated by company, each company as one row
- Use cases: Focus on "which companies exist"
- Examples:
- "Find companies that purchased LED"
- "Find US companies with electronics import/export business with China"
- "Find companies with China-US trade" (logistics industry customer development)
Two Enhancement Features
After obtaining trade list or company list, use these interfaces to enrich company IDs in the results when necessary:
Company Details (company_get_details.py --companyIds *)
- - Get company information (excluding contact information)
- Parameters:
--companyIds List of company IDs (space-separated), max 20 at a time - API business parameters: Company Details
Contact Information (company_get_contact.py --companyIds *)
- - Get contact details: email, phone, social media, website
- Parameters:
--companyIds List of company IDs (space-separated), max 20 at a time - API business parameters: Get Contact Information
API Key and Top-up
This skill requires an API key. The API key is stored in the ~/.upkuajing/.env file:
cat ~/.upkuajing/.env
Example file content:
UPKUAJING_API_KEY=your_api_key_here
API Key Not Set
First check if the
~/.upkuajing/.env file has UPKUAJING
APIKEY;
If UPKUAJING
APIKEY is not set, prompt the user to choose:
- 1. User has one: User provides it (manually add to ~/.upkuajing/.env file)
- User doesn't have one: You can apply using the interface (
auth.py --new_key), the new key will be automatically saved to ~/.upkuajing/.env
Wait for user selection;
Account Top-up
When API response indicates insufficient balance, explain and guide user to top up:
- 1. Create top-up order (
auth.py --new_rec_order) - Based on order response, send payment page URL to user, guide user to open URL and pay, user confirms after successful payment;
Get Account Information
Use this script to get account information for UPKUAJING
APIKEY: INLINECODE15
API Key and UpKuaJing Account
Fees
All API calls incur fees, different interfaces have different billing methods.
Latest pricing: Users can visit Detailed Price Description
Or use: python scripts/auth.py --price_info (returns complete pricing for all interfaces)
List Search Billing Rules
Billed by number of calls, each call returns up to 20 records:
- - Number of calls:
ceil(query_count / 20) times - Whenever query_count > 20, must before execution:
1. Inform user of expected number of calls
2. Stop, wait for explicit user confirmation in a separate message, then execute script
Enhancement Interface Billing Rules
Billed by number of IDs passed, max 20 IDs per call:
- - Pass 1 ID = billed 1 time
- Pass 20 IDs = billed 20 times (single call limit)
- Before batch retrieval must:
1. Inform user of number of IDs passed and corresponding fee count
2. Stop, wait for explicit user confirmation in a separate message, then execute script
Fee Confirmation Principle
Any operation that incurs fees must first inform and wait for explicit user confirmation. Do not execute in the same message as the notification.
Workflow
Choose the appropriate API based on user intent
Decision Guide
| User Intent | Use API |
|---|
| "Analyze trade patterns/order data" | Trade list |
| "Find companies purchasing XXX" |
Company list |
| "Find suppliers for XXX with email" | Company list existEmail=1 |
| "Get company detailed information" | Company details |
| "Get contact information" | Contact information |
Usage Examples
Scenario 1: Small Query — Trade Data Analysis
User request: "Show 2024 LED lighting fixture trade data exported to US"
CODEBLOCK2
To further get supplier details (supports batch queries):
CODEBLOCK3
Scenario 2: Large Query — Big Data Analysis
User request: "Analyze 100 soybean trade records from 2024"
Before execution inform user: ceil(100/20) = 5 API calls, confirm before executing;
CODEBLOCK4
Scenario 3: Ultra Large Query - Multiple Script Calls Required
User request: "Find 2000 companies importing electronics from China, with email addresses"
Before execution inform user: ceil(2000/20) = 100 API calls, confirm before executing;
python scripts/company_list_search.py --params '{"companyType": 2, "sellerCountryCodes": ["CN"], "existEmail": 1}' --query_count 1000
After execution: Script responds {"task
id":"a1b2-c3d4", "fileurl": "xxxxx", ……}
Continue execution, append data: Specify task_id, script continues query from last cursor and appends to file
CODEBLOCK6
Error Handling
- - API key invalid/non-existent: Check
UPKUAJING_API_KEY in ~/.upkuajing/.env file - Insufficient balance: Guide user to top up according to Account Top-up steps
- Invalid parameters: Must first check the corresponding API documentation in references/ directory, check parameter names and formats, do not guess
Best Practices
Choosing the Right Method
- 1. Understand user intent:
- Analyze trade data? → Use
trade list search
- Find customers/partners? → Use
company list search
- 2. Check API documentation:
-
Before executing list queries, must first check the corresponding API reference documentation
- Trade list: Check
references/trade-list-api.md
- Company list: Check
references/company-list-api.md
- 3. Identify parameter conditions:
- Set date range
- HS codes are usually more precise than product names for filtering
- Reduce noise by filtering specific countries
- Use ISO country codes: CN, US, JP, etc.
- Use filters to find companies with contact information
Handling Results
- 3. Handle jsonl files carefully: For large data queries, pay attention to file size
- 4. Gradually enrich information: Only call details/contact interfaces when needed
- Company IDs returned by both list interfaces can be used for both detail interfaces
- If user only needs a few companies, don't get details for all companies
Notes
- - All timestamps are in milliseconds
- Country codes use ISO 3166-1 alpha-2 format (e.g., CN, US, JP)
- File paths use forward slashes on all platforms
- Product names and industry names must be in English
- Search quantity affects API response time, recommend setting timeout:120
- Prohibit outputting technical parameter format: Do not display code-style parameters in responses, convert to natural language
- Do not estimate or guess per-call fees — use
python scripts/auth.py --price_info to get accurate pricing information - Do not guess parameter names, get accurate parameter names and formats from documentation
UpKuaJing 海关贸易公司搜索
通过海关贸易数据,使用UpKuaJing开放平台API搜索公司。此技能采用数据驱动方法:通过分析贸易记录和交易模式来查找公司。
概述
该技能通过四个脚本提供对UpKuaJing海关贸易数据API的访问:两种搜索方法(贸易列表、公司列表)和两个增强接口(公司详情、联系方式)。
API密钥生成和充值通过auth.py脚本提供。
运行脚本
环境设置
- 1. 检查Python:python --version
- 安装依赖:pip install -r requirements.txt
脚本目录:scripts/*.py
运行示例:python scripts/*.py
两种搜索方法
贸易列表搜索(tradelistsearch.py)
- - 返回粒度:每条贸易订单作为一个记录
- 使用场景:关注发生了哪些交易
- 示例:
- 显示公司A购买LED的所有订单
- 查找进口/出口到美国的大豆贸易记录
- 查看某时间段内的具体交易详情
公司列表搜索(companylistsearch.py)
- - 返回粒度:按公司聚合的贸易订单,每家公司为一行
- 使用场景:关注存在哪些公司
- 示例:
- 查找购买LED的公司
- 查找与中国有电子进出口业务的美国公司
- 查找中美贸易公司(物流行业客户开发)
两种增强功能
获取贸易列表或公司列表后,必要时使用这些接口丰富结果中的公司ID:
公司详情(companygetdetails.py --companyIds *)
- - 获取公司信息(不含联系方式)
- 参数:--companyIds 公司ID列表(空格分隔),每次最多20个
- API业务参数:公司详情
联系方式(companygetcontact.py --companyIds *)
- - 获取联系详情:邮箱、电话、社交媒体、网站
- 参数:--companyIds 公司ID列表(空格分隔),每次最多20个
- API业务参数:获取联系方式
API密钥和充值
此技能需要API密钥。API密钥存储在~/.upkuajing/.env文件中:
bash
cat ~/.upkuajing/.env
文件内容示例:
UPKUAJINGAPIKEY=yourapikey_here
API密钥未设置
首先检查~/.upkuajing/.env文件是否包含UPKUAJING
APIKEY;
如果未设置UPKUAJING
APIKEY,提示用户选择:
- 1. 用户已有密钥:用户提供(手动添加到~/.upkuajing/.env文件)
- 用户没有密钥:可通过界面申请(auth.py --new_key),新密钥将自动保存到~/.upkuajing/.env
等待用户选择;
账户充值
当API响应提示余额不足时,解释并引导用户充值:
- 1. 创建充值订单(auth.py --newrecorder)
- 根据订单响应,将支付页面URL发送给用户,引导用户打开URL并支付,用户支付成功后确认;
获取账户信息
使用此脚本获取UPKUAJING
APIKEY的账户信息:auth.py --account_info
API密钥和UpKuaJing账户
费用
所有API调用均产生费用,不同接口计费方式不同。
最新定价:用户可访问详细价格说明
或使用:python scripts/auth.py --price_info(返回所有接口的完整定价)
列表搜索计费规则
按调用次数计费,每次调用最多返回20条记录:
- - 调用次数:ceil(查询数量 / 20) 次
- 每当查询数量 > 20时,执行前必须:
1. 告知用户预计调用次数
2. 停止,等待用户在单独消息中明确确认,然后执行脚本
增强接口计费规则
按传入ID数量计费,每次调用最多20个ID:
- - 传入1个ID = 计费1次
- 传入20个ID = 计费20次(单次调用上限)
- 批量获取前必须:
1. 告知用户传入的ID数量及对应费用次数
2. 停止,等待用户在单独消息中明确确认,然后执行脚本
费用确认原则
任何产生费用的操作必须首先告知并等待用户明确确认。不得在与通知相同的消息中执行。
工作流程
根据用户意图选择合适的API
决策指南
| 用户意图 | 使用API |
|---|
| 分析贸易模式/订单数据 | 贸易列表 |
| 查找购买XXX的公司 |
公司列表 |
| 查找XXX的供应商并获取邮箱 | 公司列表 existEmail=1 |
| 获取公司详细信息 | 公司详情 |
| 获取联系方式 | 联系方式 |
使用示例
场景1:小查询 — 贸易数据分析
用户请求:显示2024年出口到美国的LED灯具贸易数据
bash
python scripts/tradelistsearch.py \
--params {products: [LED lights], buyerCountryCodes: [US], dateStart: 1704067200000, dateEnd: 1735689599999} \
--query_count 20
进一步获取供应商详情(支持批量查询):
bash
python scripts/companygetdetails.py --companyIds 123456 789012 ...
场景2:大查询 — 大数据分析
用户请求:分析2024年100条大豆贸易记录
执行前告知用户:ceil(100/20) = 5次API调用,确认后再执行;
bash
python scripts/tradelistsearch.py --params {products: [soybean], dateStart: 1704067200000, dateEnd: 1735689599999} --query_count 100
场景3:超大查询 — 需要多次调用脚本
用户请求:查找2000家从中国进口电子产品的公司,并获取邮箱地址
执行前告知用户:ceil(2000/20) = 100次API调用,确认后再执行;
bash
python scripts/companylistsearch.py --params {companyType: 2, sellerCountryCodes: [CN], existEmail: 1} --query_count 1000
执行后:脚本响应 {taskid:a1b2-c3d4, fileurl: xxxxx, ……}
继续执行,追加数据:指定task_id,脚本从上次游标继续查询并追加到文件
bash
python scripts/companylistsearch.py --taskid a1b2-c3d4 --querycount 1000
错误处理
- - API密钥无效/不存在:检查~/.upkuajing/.env文件中的UPKUAJINGAPIKEY
- 余额不足:按照账户充值步骤引导用户充值
- 参数无效:必须首先检查references/目录中对应的API文档,检查参数名称和格式,不要猜测
最佳实践
选择正确的方法
- 1. 理解用户意图:
- 分析贸易数据?→ 使用
贸易列表搜索
- 查找客户/合作伙伴?→ 使用
公司列表搜索
- 2. 检查API文档:
-
执行列表查询前,必须首先检查对应的API参考文档
- 贸易列表:检查
references/trade-list-api.md
- 公司列表:检查
references/company-list-api.md
- 3. 确定参数条件:
- 设置日期范围
- HS编码通常比产品名称更精确,用于筛选
- 通过筛选特定国家减少噪音
- 使用ISO国家代码:CN、US、JP等
- 使用筛选条件查找有联系方式的公司
处理结果
- 3. 谨慎处理jsonl文件:对于大数据查询,注意文件大小
- 4. 逐步丰富信息:仅在需要时调用详情/联系方式接口
- 两个列表接口返回的公司ID均可用于两个详情接口
- 如果用户只需要少数几家公司,不要获取所有公司的详情
注意事项
- - 所有时间戳均为毫秒级
- 国家代码使用ISO 3166-1 alpha-2格式(如CN、US、JP)
- 所有平台文件路径均使用正斜杠
- 产品名称和