Getting started
VerifyCN API
The same engine behind our verification cards, programmatic. Resolve entities, pull US customs trade history, get transparent risk scores, manage monitoring — over REST, or natively inside Claude via MCP.
Base URL
https://china-verify.lovable.app/api/trpcGetting started
Authentication
Anonymous checks work out of the box. For higher quotas, create an API key in the dashboard (Developers → API keys) and send it as a Bearer token. Keys are prefixed vcn_live_…
curl "https://china-verify.lovable.app/api/trpc/verify.search?input=%7B%22json%22%3A%7B%22query%22%3A%22midea%20group%22%7D%7D" \ -H "Authorization: Bearer vcn_live_…"Keys are scoped. MCP connections use the same keys — rotate them from the dashboard.
Getting started
Quickstart
Verify a supplier
Resolve a raw name or Alibaba storefront URL to legal-entity candidates. Always confirm the exact registered entity before relying on a result — English trade names are informal.
curl "https://china-verify.lovable.app/api/trpc/verify.search?input=%7B%22json%22%3A%7B%22query%22%3A%22midea%20group%22%7D%7D"{ "result": { "data": { "json": { "candidates": [ { "name": "Midea Group Co., Ltd.", "legalName": "美的集团有限公司", "uscc": "91440606722473344C", "status": "ACTIVE", "address": "Beijiao, Foshan, Guangdong, CN", "source": "registry" } ], "live": true, "isUrl": false } } }}Run the full check
verify.runCheck is a mutation — POST it. It resolves identity, pulls US customs trade history and storefront signals, then scores the supplier with 15 transparent signals. Returns a checkId for the saved report.
curl -X POST "https://china-verify.lovable.app/api/trpc/verify.runCheck" \ -H "Content-Type: application/json" \ -d '{ "json": { "query": "Midea Group Co., Ltd.", "entityName": "Midea Group Co., Ltd.", "claimsExport": true } }'{ "checkId": 1042, "identity": { "name": "Midea Group Co., Ltd.", "status": "ACTIVE" }, "trade": { "totalBols": 11978, "firstShipment": "2012-03", "lastShipment": "2026-09", "topBuyers": [{ "name": "Midea America Corp", "bols": 4210 }] }, "risk": { "score": 86, "band": "low", "reasons": [ { "signal": "trade_history_depth", "delta": 15, "source": "Public trade records · Oct 2026" } ] }}Add market context
verify.marketContext pulls UN Comtrade aggregates (China → US, by HS code) to size the lane your supplier claims to ship in. Aggregates only — no company-level data exists in this source.
curl "https://china-verify.lovable.app/api/trpc/verify.marketContext?input=%7B%22json%22%3A%7B%22hsCode%22%3A%228516%22%7D%7D"Prefer a typed client? These endpoints are standard tRPC — point any @trpc/client at the same base URL. See the endpoint reference.
REST API
verify.search
https://china-verify.lovable.app/api/trpc/verify.searchtRPC queryResolve a supplier name or Alibaba storefront URL to legal-entity candidates with registration status and address.
| Name | Type | Required | Description |
|---|---|---|---|
| query | string (2–300 chars) | yes | Supplier name or Alibaba/1688 URL |
REST API
verify.runCheck
https://china-verify.lovable.app/api/trpc/verify.runChecktRPC mutationRun the full L0 verification check: identity resolution, US customs trade history, storefront signals, and the 15-signal risk score. Saves the report and returns a checkId.
| Name | Type | Required | Description |
|---|---|---|---|
| query | string | yes | Supplier name or Alibaba URL |
| uscc | string? | no | Pin the check to a specific company by its 18-character USCC |
| entityName | string? | no | Override the resolved legal name |
| claimsExport | boolean? | no | Whether the supplier claims to export (default true) |
REST API
verify.marketContext
https://china-verify.lovable.app/api/trpc/verify.marketContexttRPC queryAggregate China → US trade value for an HS code, from UN Comtrade. Aggregates only — no company-level data exists in this source.
| Name | Type | Required | Description |
|---|---|---|---|
| hsCode | string (4–6 digits) | no | Harmonized System code, default 8516 |
REST API
Rate limits
| Tier | Monthly quota | Burst |
|---|---|---|
| Free API trial | 60 calls / mo | 2 rps |
| Pro | 1,000 calls / mo | 10 rps |
| Scale | 50,000 calls / mo | 10 rps |
Over the limit you get 429 with a Retry-After header. Back off exponentially; don't hammer.
REST API
Errors
| Code | Meaning |
|---|---|
| entity_not_found | No legal-entity candidate matched the query. Check the registered Chinese name. |
| coverage_gap | Requested data is outside our coverage (e.g. EU manifests). The gap is stated, never implied. |
| quota_exceeded | Monthly quota exhausted. Upgrade or wait for the reset; check Retry-After. |
MCP Server
The MCP server. Claude checks suppliers natively.
One URL. Five tools. Claude resolves entities, pulls customs history, and scores suppliers inside your conversation — with the same evidence tags as the web app.
Server endpoint — POST JSON-RPC 2.0
https://china-verify.lovable.app/mcpGET /mcp returns server info
{ "name": "VerifyCN MCP server", "transport": "streamable-http", "usage": "POST JSON-RPC 2.0 (initialize, tools/list, tools/call).", "tools": ["search_supplier", "verify_trade_history", "check_identity", "storefront_signals", "risk_score"]}
Add to Claude in three minutes
Get an API key
Dashboard → Developers → API keys. Keys look like vcn_live_… and are scoped per workspace.
Add the server
In Claude: Settings → MCP connectors → add server URL https://china-verify.lovable.app/mcp (Streamable HTTP). Or from the CLI:
claude mcp add --transport http verifycn https://china-verify.lovable.app/mcpAsk
"Verify this supplier before I send a deposit: alibaba.com/company/…" — Claude picks the right tools and answers with sourced evidence.
Example session
What it looks like
I'm about to wire $18k to Shenzhen XYZ Electronics — check them.
Shenzhen XYZ Electronics Co., Ltd.
深圳市XYZ电子有限公司
▲ Supplier claims export, but no US import records under this legal name (−20)
▲ Legal entity registered 1 year ago (−12)
● Storefront claims 9 years on platform — entity mismatch (−10)
Hold the wire. The storefront age doesn't match the registered entity, and there's no US customs footprint for the exact legal name. Ask for their registered Chinese name and re-check — absence of records ≠ proof of fraud, but this pattern warrants a deep report.
MCP Server
Tool reference
Five tools map 1:1 onto the same connectors as the web app — one data brain, two faces. Click a row for its input schema.
| Tool | Description | Parameters | Returns |
|---|
Reference
Risk score methodology
The score is rules-based — no AI. Every report starts at 100; each rule below adds or deducts points, and every deduction on your report names its rule and source. The final score is clamped to 0–100.
Deductions
| enforcement | Enforcement orders (被执行) on recordSource: Court records | −15 each |
| dishonest_debtor | Listed as a dishonest debtor (失信)Source: Court records | −30 |
| past_enforcement | Had court enforcement orders in the past, since settled (current orders are scored separately)Source: Court records | −5 |
| penalties | Administrative penalty / serious violation recordsSource: Court records | −10 each |
| entity_age | Company under 1 year / 1–2 years oldSource: Registry | −15 / −8 |
| registered_capital | Registered capital under RMB 1MSource: Registry | −5 |
| business_scope | Business scope has no production terms (生产/制造/加工)Source: Registry | −10 |
| name_changes | 3 or more former registered namesSource: Registry | −4 |
| insured_staff | 0 insured employees / fewer than 10Source: Registry details | −20 / −10 |
| paid_in_capital | Paid-in capital undisclosed or zeroSource: Registry details | −5 |
| shared_contact | Phone or email also used by 1–20 other companies (possible related-company network); shared by more than 20 = a filing agent's contact, no deductionSource: Registry details | −5 |
| staff_decline | Latest insured staff under 50% of the higher of the two previous years (needs 2+ years)Source: Registry details | −5 |
| no_marketplace | No Alibaba or Global Sources presence found (only when both searches ran)Source: Marketplaces | −10 |
| age_mismatch | Possible entity switch: storefront claims more years than the legal entity has existed, or Alibaba's onsite-verified founding year is over a year earlier / region is a different province than the registry company (fires once)Source: Storefront × Registry | −10 |
Bonuses
| vat_taxpayer | General VAT taxpayerSource: Registry details | +5 |
| customs_registration | Customs import/export registrationSource: Registry details | +5 |
| tax_credit_a | Latest taxpayer credit rating is A (D is shown as a red flag, no extra deduction)Source: Registry events | +5 |
| ip | Owns trademarks or patentsSource: Registry / court records | +5 |
| us_shipments | Confirmed US ocean-import shipmentsSource: US shipments | +10 |
| verified_store | Marketplace store matches the registered name and is verifiedSource: Marketplaces | +10 |
| platform_tenure | 5+ years on Alibaba (self-reported)Source: Storefront | +4 |
| platform_badge | Alibaba Verified Supplier badge (weak positive)Source: Storefront | +2 |
Bands
Automatic fail
If the registry status is not active (e.g. revoked, cancelled), the score is capped at 20 — automatic fail.
Fail-closed: "not checked"
A rule only fires when its source answered. If a source was unavailable, its group is listed as "not checked" and nothing is added or deducted. Without a confirmed registry identity there is no score at all ("Insufficient data").
Factory vs trader classifier
Signals are summed per side. A margin under 3 points reads "Unclear — mixed signals"; 3–4 is medium confidence, 5+ high. It does not change the score.
Reference
Data sources & coverage
| Source | What it covers | Limits |
|---|---|---|
| Public trade records | US ocean imports — bills of lading, consignees, shipment dates | Public per 19 U.S.C. §1431(c). ~50–60% lane visibility: no air freight, no EU, no declared values. |
| Registry | Legal identity — registered Chinese name, USCC, status, address | Identity only; no risk or trade data. English trade names are informal — confirm the legal entity. |
| Alibaba storefront | Platform metrics — tenure, reorder rate, on-time dispatch, badges | Self-reported by the supplier. Corroboration only, never customs-verified. |
| UN Comtrade | Market context — aggregate China → US trade by HS code | Aggregates only. No company-level data exists in this source. |
| Chinese registry & courts | Registry extracts, litigation, enforcement & dishonesty lists | Full report. Retrieved live and translated; absence of records ≠ absence of litigation. |
US ocean manifests are public records per 19 U.S.C. §1431(c), with ~50–60% lane visibility — EU, air freight and declared values are not visible. Absence of records ≠ absence of litigation. Storefront data is self-reported. VerifyCN is not legal advice.
Reference
Changelog
v1.4 — Oct 2026
Added capital-vs-claims signal; coverage disclaimers on every report.
v1.3 — Aug 2026
MCP server GA — five tools over Streamable HTTP at /mcp.
v1.2 — Jun 2026
EU coverage disclaimers; storefront age-vs-entity cross-check.
v1.1 — Apr 2026
Monitoring alerts: score-change, litigation, volume decline.
v1.0 — Feb 2026
Public launch — verification cards, risk score v1, REST API beta.