Pay-per-call China macro and supply monitors: revisions, FDI, LEI changes, 1688 suppliers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare buyer-owned, merchant-authorized, or licensed 1688 offer exports for price, MOQ, stock, supplier, badge, and promotion changes. Each delivered row adds stable identity, freshness, evidence gaps, review priority, and a human action—with no 1688 login, scraping, API call, or URL fetch. — $0.02/call, x402 (USDC on base).
Stable buyer label for this comparison. It is returned in every row and OUTPUT receipt; the Actor does not persist a cross-run source baseline.
One to 50 closed previous/current records. Unknown or malformed records are counted invalid. Duplicate offerId values are delivered once.
Stop before delivering more changed comparisons after this count. Baseline/no-change rows already delivered still count as paid rows.
Migration-only legacy input. URLs are never fetched and produce one free diagnostic row.
Required for offers. This is a buyer attestation, not independent verification by the Actor.
Closed public input contract version.
Required buyer-attested origin category for the authorized export.
Accepted only for backward compatibility and ignored. The current Actor makes zero network requests.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Compare buyer-owned, merchant-authorized, or licensed 1688 offer exports for price, MOQ, stock, supplier, badge, and promotion changes. Each delivered row adds stable identity, freshness, evidence gaps, review priority, and a human action—with no 1688 login, scraping, API call, or URL fetch. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| offers | array | One to 50 closed previous/current records. Unknown or malformed records are counted invalid. Duplicate offerId values are delivered once. |
| watchName* | string | Stable buyer label for this comparison. It is returned in every row and OUTPUT receipt; the Actor does not persist a cross-run source baseline. |
| maxChanges | integer | Stop before delivering more changed comparisons after this count. Baseline/no-change rows already delivered still count as paid rows. |
| productUrls | array | Migration-only legacy input. URLs are never fetched and produce one free diagnostic row. |
| authorization | string | Required for offers. This is a buyer attestation, not independent verification by the Actor. |
| schemaVersion | string | Closed public input contract version. |
| sourceContext | string | Required buyer-attested origin category for the authorized export. |
| proxyConfiguration | object | Accepted only for backward compatibility and ignored. The current Actor makes zero network requests. |
{
"type": "object",
"title": "Authorized 1688 offer comparison input",
"required": [
"watchName"
],
"properties": {
"offers": {
"type": "array",
"items": {
"type": "object",
"required": [
"offerId",
"current",
"sourceName",
"sourceLicense"
],
"properties": {
"current": {
"type": "object",
"title": "Current authorized snapshot",
"editor": "json",
"required": [
"offerId",
"title",
"priceMin",
"priceMax",
"currency",
"priceTiers",
"supplier"
],
"properties": {
"moq": {
"type": "number",
"title": "Moq",
"maximum": 1000000000,
"minimum": 0,
"nullable": true,
"description": "Buyer-supplied moq for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"unit": {
"type": "string",
"title": "Unit",
"pattern": "\\S",
"nullable": true,
"maxLength": 120,
"minLength": 1,
"description": "Buyer-supplied unit for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"stock": {
"type": "number",
"title": "Stock",
"maximum": 1000000000000,
"minimum": 0,
"nullable": true,
"description": "Buyer-supplied stock for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"title": {
"type": "string",
"title": "Title",
"pattern": "\\S",
"maxLength": 500,
"minLength": 1,
"description": "Buyer-supplied title for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"badges": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\S",
"maxLength": 240,
"minLength": 1
},
"title": "Badges",
"maxItems": 30,
"description": "Buyer-supplied badges for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor.",
"uniqueItems": true
},
"offerId": {
"type": "string",
"title": "Offer Id",
"pattern": "^[0-9]{1,80}$",
"description": "Buyer-supplied offer id for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"currency": {
"type": "string",
"title": "Currency",
"pattern": "^[A-Za-z]{3}$",
"description": "Buyer-supplied currency for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"priceMax": {
"type": "number",
"title": "Price Max",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied price max for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"priceMin": {
"type": "number",
"title": "Price Min",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied price min for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"supplier": {
"type": "object",
"title": "Supplier",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"title": "Id",
"pattern": "\\S",
"maxLength": 180,
"minLength": 1,
"description": "Buyer-supplied id for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"name": {
"type": "string",
"title": "Name",
"pattern": "\\S",
"maxLength": 300,
"minLength": 1,
"description": "Buyer-supplied name for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"loginId": {
"type": "string",
"title": "Login Id",
"pattern": "\\S",
"nullable": true,
"maxLength": 180,
"minLength": 1,
"description": "Buyer-supplied login id for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
}
},
"description": "Buyer-supplied supplier for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor.",
"additionalProperties": false
},
"priceTiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"beginAmount",
"price"
],
"properties": {
"price": {
"type": "number",
"title": "Price",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied price for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"beginAmount": {
"type": "number",
"title": "Begin Amount",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied begin amount for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
}
},
"additionalProperties": false
},
"title": "Price Tiers",
"maxItems": 50,
"description": "Buyer-supplied price tiers for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"promotions": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\S",
"maxLength": 500,
"minLength": 1
},
"title": "Promotions",
"maxItems": 30,
"description": "Buyer-supplied promotions for the current authorized offer snapshot; recorded as submitted and not independently verified by the Actor.",
"uniqueItems": true
}
},
"description": "Required current snapshot from the authorized export.",
"additionalProperties": false
},
"offerId": {
"type": "string",
"title": "Offer ID",
"pattern": "^[0-9]{1,80}$",
"description": "Stable numeric 1688 offer identity."
},
"offerUrl": {
"type": "string",
"title": "Recorded offer URL",
"pattern": "^https://detail\\.1688\\.com/offer/[0-9]+\\.html$",
"nullable": true,
"maxLength": 500,
"description": "Optional exact detail.1688.com offer reference; recorded but never fetched."
},
"previous": {
"type": "object",
"title": "Previous authorized snapshot",
"editor": "json",
"nullable": true,
"required": [
"offerId",
"title",
"priceMin",
"priceMax",
"currency",
"priceTiers",
"supplier"
],
"properties": {
"moq": {
"type": "number",
"title": "Moq",
"maximum": 1000000000,
"minimum": 0,
"nullable": true,
"description": "Buyer-supplied moq for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"unit": {
"type": "string",
"title": "Unit",
"pattern": "\\S",
"nullable": true,
"maxLength": 120,
"minLength": 1,
"description": "Buyer-supplied unit for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"stock": {
"type": "number",
"title": "Stock",
"maximum": 1000000000000,
"minimum": 0,
"nullable": true,
"description": "Buyer-supplied stock for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"title": {
"type": "string",
"title": "Title",
"pattern": "\\S",
"maxLength": 500,
"minLength": 1,
"description": "Buyer-supplied title for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"badges": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\S",
"maxLength": 240,
"minLength": 1
},
"title": "Badges",
"maxItems": 30,
"description": "Buyer-supplied badges for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor.",
"uniqueItems": true
},
"offerId": {
"type": "string",
"title": "Offer Id",
"pattern": "^[0-9]{1,80}$",
"description": "Buyer-supplied offer id for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"currency": {
"type": "string",
"title": "Currency",
"pattern": "^[A-Za-z]{3}$",
"description": "Buyer-supplied currency for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"priceMax": {
"type": "number",
"title": "Price Max",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied price max for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"priceMin": {
"type": "number",
"title": "Price Min",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied price min for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"supplier": {
"type": "object",
"title": "Supplier",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "string",
"title": "Id",
"pattern": "\\S",
"maxLength": 180,
"minLength": 1,
"description": "Buyer-supplied id for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"name": {
"type": "string",
"title": "Name",
"pattern": "\\S",
"maxLength": 300,
"minLength": 1,
"description": "Buyer-supplied name for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"loginId": {
"type": "string",
"title": "Login Id",
"pattern": "\\S",
"nullable": true,
"maxLength": 180,
"minLength": 1,
"description": "Buyer-supplied login id for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
}
},
"description": "Buyer-supplied supplier for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor.",
"additionalProperties": false
},
"priceTiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"beginAmount",
"price"
],
"properties": {
"price": {
"type": "number",
"title": "Price",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied price for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"beginAmount": {
"type": "number",
"title": "Begin Amount",
"maximum": 1000000000,
"minimum": 0,
"description": "Buyer-supplied begin amount for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
}
},
"additionalProperties": false
},
"title": "Price Tiers",
"maxItems": 50,
"description": "Buyer-supplied price tiers for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor."
},
"promotions": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\S",
"maxLength": 500,
"minLength": 1
},
"title": "Promotions",
"maxItems": 30,
"description": "Buyer-supplied promotions for the previous authorized offer snapshot; recorded as submitted and not independently verified by the Actor.",
"uniqueItems": true
}
},
"description": "Optional previous snapshot from the buyer's own history. Null means baseline_created.",
"additionalProperties": false
},
"sourceName": {
"type": "string",
"title": "Authorized source label",
"pattern": "\\S",
"maxLength": 200,
"minLength": 1,
"description": "Traceable buyer-supplied label for the export or licensed integration."
},
"sourceLicense": {
"type": "string",
"title": "Rights statement",
"pattern": "\\S",
"maxLength": 700,
"minLength": 1,
"description": "Buyer-supplied processing and downstream delivery rights statement; recorded but not independently verified."
},
"sourceRetrievedAt": {
"type": "string",
"title": "Source retrieved at",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?Z$",
"nullable": true,
"maxLength": 40,
"description": "Optional UTC time when the authorized export was obtained."
}
},
"additionalProperties": false
},
"title": "Authorized 1688 offer records",
"editor": "json",
"prefill": [
{
"current": {
"moq": 100,
"unit": "piece",
"stock": 15000,
"title": "USB-C cable wholesale pack",
"badges": [
"verified-export"
],
"offerId": "1000406623486",
"currency": "CNY",
"priceMax": 4.4,
"priceMin": 3.6,
"supplier": {
"id": "supplier-88",
"name": "Example Authorized Supplier",
"loginId": "seller88"
},
"priceTiers": [
{
"price": 4.4,
"beginAmount": 100
},
{
"price": 3.6,
"beginAmount": 500
}
],
"promotions": [
"buyer-supplied summer tier"
]
},
"offerId": "1000406623486",
"offerUrl": "https://detail.1688.com/offer/1000406623486.html",
"previous": {
"moq": 100,
"unit": "piece",
"stock": 12000,
"title": "USB-C cable wholesale pack",
"badges": [
"verified-export"
],
"offerId": "1000406623486",
"currency": "CNY",
"priceMax": 4.6,
"priceMin": 3.8,
"supplier": {
"id": "supplier-88",
"name": "Example Authorized Supplier",
"loginId": "seller88"
},
"priceTiers": [
{
"price": 4.6,
"beginAmount": 100
},
{
"price": 3.8,
"beginAmount": 500
}
],
"promotions": []
},
"sourceName": "Buyer-owned 1688 export",
"sourceLicense": "Buyer confirms authorization to process and deliver this export.",
"sourceRetrievedAt": "2026-08-13T00:00:00Z"
}
],
"maxItems": 50,
"minItems": 1,
"description": "One to 50 closed previous/current records. Unknown or malformed records are counted invalid. Duplicate offerId values are delivered once."
},
"watchName": {
"type": "string",
"title": "Watch name",
"editor": "textfield",
"default": "main-supplier-watch",
"pattern": "^[^\\u0000-\\u001F\\u007F-\\u009F]*\\S[^\\u0000-\\u001F\\u007F-\\u009F]*$",
"maxLength": 80,
"minLength": 1,
"description": "Stable buyer label for this comparison. It is returned in every row and OUTPUT receipt; the Actor does not persist a cross-run source baseline."
},
"maxChanges": {
"type": "integer",
"title": "Maximum changed rows",
"editor": "number",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Stop before delivering more changed comparisons after this count. Baseline/no-change rows already delivered still count as paid rows."
},
"productUrls": {
"type": "array",
"items": {
"type": "string",
"pattern": "\\S",
"maxLength": 500,
"minLength": 1
},
"title": "Legacy 1688 product URLs",
"editor": "stringList",
"maxItems": 50,
"minItems": 1,
"description": "Migration-only legacy input. URLs are never fetched and produce one free diagnostic row."
},
"authorization": {
"enum": [
"I confirm I am authorized to process and deliver these 1688 offer records"
],
"type": "string",
"title": "Authorization confirmation",
"editor": "select",
"description": "Required for offers. This is a buyer attestation, not independent verification by the Actor."
},
"schemaVersion": {
"enum": [
"2.0"
],
"type": "string",
"title": "Contract version",
"editor": "select",
"default": "2.0",
"description": "Closed public input contract version."
},
"sourceContext": {
"enum": [
"buyer_owned_1688_export",
"merchant_authorized_1688_export",
"licensed_1688_integration",
"other_licensed_wholesale_export"
],
"type": "string",
"title": "Source context",
"editor": "select",
"description": "Required buyer-attested origin category for the authorized export."
},
"proxyConfiguration": {
"type": "object",
"title": "Legacy proxy configuration",
"editor": "proxy",
"description": "Accepted only for backward compatibility and ignored. The current Actor makes zero network requests."
}
},
"description": "Submit buyer-owned, merchant-authorized, or licensed 1688 previous/current offer snapshots. The Actor makes no source request. Runtime requires either offers with authorization and sourceContext, or legacy productUrls alone; the official Actor schema validator does not support that root one-of condition. Legacy productUrls stay accepted only as a free migration diagnostic.",
"schemaVersion": 1,
"additionalProperties": false
}Monitor official OECD China FDI financial flows and positions by assets and liabilities, with paid-delivery-safe deltas. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| endYear | integer | Inclusive last year, not later than the current UTC year. |
| datasets | array | Official OECD aggregate financial flows (quarterly), positions (annual), or both. Values use the assets/liabilities accounting principle; they are not inbound/outbound labels. |
| startYear | integer | Inclusive first year. Runtime validation enforces 2005 or later and a maximum 10-year window. |
| watchName | string | Stable private baseline scope. Reuse it in scheduled runs to compare only against a previously confirmed paid delivery. |
| cacheMaxAgeMinutes | integer | Reuse a validated official OECD response for 0-120 minutes. Set 0 to disable cache reads. Cache state never changes the paid-delivery baseline. |
{
"type": "object",
"title": "China FDI Flow & Position Monitor input",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"endYear": {
"type": "integer",
"title": "End year",
"default": 2025,
"minimum": 2005,
"prefill": 2025,
"description": "Inclusive last year, not later than the current UTC year."
},
"datasets": {
"type": "array",
"items": {
"enum": [
"flow",
"position"
],
"type": "string",
"enumTitles": [
"Quarterly FDI financial flows",
"Annual FDI financial positions"
]
},
"title": "FDI datasets",
"editor": "select",
"default": [
"flow",
"position"
],
"prefill": [
"flow",
"position"
],
"maxItems": 2,
"minItems": 1,
"description": "Official OECD aggregate financial flows (quarterly), positions (annual), or both. Values use the assets/liabilities accounting principle; they are not inbound/outbound labels.",
"uniqueItems": true
},
"startYear": {
"type": "integer",
"title": "Start year",
"default": 2021,
"minimum": 2005,
"prefill": 2021,
"description": "Inclusive first year. Runtime validation enforces 2005 or later and a maximum 10-year window."
},
"watchName": {
"type": "string",
"title": "Watch name",
"editor": "textfield",
"default": "china-fdi-main",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$",
"prefill": "china-fdi-main",
"maxLength": 80,
"minLength": 1,
"description": "Stable private baseline scope. Reuse it in scheduled runs to compare only against a previously confirmed paid delivery."
},
"cacheMaxAgeMinutes": {
"type": "integer",
"unit": "minutes",
"title": "Source cache age",
"editor": "number",
"default": 60,
"maximum": 120,
"minimum": 0,
"prefill": 60,
"description": "Reuse a validated official OECD response for 0-120 minutes. Set 0 to disable cache reads. Cache state never changes the paid-delivery baseline."
}
},
"description": "Select one or both fixed OECD FDI datasets for China and an inclusive window of at most 10 years. The Actor makes at most two official data requests and never uses a proxy or VPN.",
"schemaVersion": 1,
"additionalProperties": false
}Monitor official GLEIF LEI records for entity, registration and parent-relationship changes in mainland China and Hong Kong. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| leis | array | Optional exact 20-character Legal Entity Identifiers. |
| names | array | Optional bounded entity-name searches. Searches are restricted to the selected countries. |
| countries* | array | Mainland China (CN) is the default. Add Hong Kong (HK) when required. |
| watchName* | string | Stable private baseline scope. Reuse this value on scheduled runs. |
| maxResults | integer | Hard cap across all searches after deterministic LEI de-duplication. |
| nameMatchMode | string | Fuzzy uses GLEIF full-text matching. Exact additionally requires a normalized legal or alternate-name match. |
| maxConcurrency | integer | Bounded concurrency for official GLEIF requests. |
| replayBaseline | boolean |
Monitor bounded China macro observations and historical revisions from the official World Bank WDI source=2 API. — $0.02/call, x402 (USDC on base).
| Argument | Type | Description |
|---|---|---|
| endYear | integer | Inclusive last year, not later than the current UTC year. |
| startYear | integer | Inclusive first year. Runtime validation enforces 1960 or later and a maximum 10-year window. |
| watchName | string | Stable private baseline scope. Reuse it in scheduled runs to identify new observations and revisions. |
| indicators | array | Approved World Development Indicators. Arbitrary codes and other World Bank datasets are rejected. |
{
"type": "object",
"title": "China Macro Revision Monitor input",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"endYear": {
"type": "integer",
"title": "End year",
"default": 2025,
"minimum": 1960,
"prefill": 2025,
"description": "Inclusive last year, not later than the current UTC year."
},
"startYear": {
"type": "integer",
"title": "Start year",
"default": 2021,
"minimum": 1960,
"prefill": 2021,
"description": "Inclusive first year. Runtime validation enforces 1960 or later and a maximum 10-year window."
},
"watchName": {
"type": "string",
"title": "Watch name",
"editor": "textfield",
"default": "china-macro-main",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,79}$",
"prefill": "china-macro-main",
"maxLength": 80,
"minLength": 1,
"description": "Stable private baseline scope. Reuse it in scheduled runs to identify new observations and revisions."
},
"indicators": {
"type": "array",
"items": {
"enum": [
"NY.GDP.MKTP.CD",
"NY.GDP.MKTP.KD.ZG",
"FP.CPI.TOTL.ZG",
"BX.KLT.DINV.WD.GD.ZS",
"BN.KLT.DINV.CD",
"NE.EXP.GNFS.CD",
"NE.IMP.GNFS.CD",
"SL.UEM.TOTL.ZS",
"SP.POP.TOTL",
"EG.USE.PCAP.KG.OE"
],
"type": "string",
"enumTitles": [
"GDP (current US$)",
"GDP growth (annual %)",
"Inflation, consumer prices (annual %)",
"FDI net inflows (% of GDP)",
"FDI net, BoP (current US$)",
"Exports of goods and services (current US$)",
"Imports of goods and services (current US$)",
"Unemployment (% of labor force)",
"Population, total",
"Energy use per capita"
]
},
"title": "WDI indicators",
"editor": "select",
"default": [
"NY.GDP.MKTP.KD.ZG",
"BX.KLT.DINV.WD.GD.ZS"
],
"prefill": [
"NY.GDP.MKTP.KD.ZG",
"BX.KLT.DINV.WD.GD.ZS"
],
"maxItems": 5,
"minItems": 1,
"description": "Approved World Development Indicators. Arbitrary codes and other World Bank datasets are rejected.",
"uniqueItems": true
}
},
"description": "Select 1-5 approved China indicators and an inclusive window of at most 10 years. The source is fixed to World Bank WDI source=2.",
"schemaVersion": 1,
"additionalProperties": false
}Free — list every paid tool in the 'china-macro' bundle with its price, payTo address and network. Call this first if you don't have a wallet ready yet.
No arguments.
{
"type": "object",
"properties": {}
}| Emit a paid replay row for unchanged records. Keep disabled for change-only scheduled monitoring. |
| includeRelationships | boolean | Resolve direct and ultimate accounting parents when GLEIF publishes a relationship. |
{
"type": "object",
"title": "China LEI Entity Change Monitor input",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"countries",
"watchName"
],
"properties": {
"leis": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z0-9]{20}$"
},
"title": "LEI codes",
"editor": "stringList",
"default": [],
"maxItems": 20,
"description": "Optional exact 20-character Legal Entity Identifiers.",
"uniqueItems": true
},
"names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 2
},
"title": "Entity names",
"editor": "stringList",
"default": [
"Bank of China"
],
"prefill": [
"Bank of China"
],
"maxItems": 20,
"description": "Optional bounded entity-name searches. Searches are restricted to the selected countries.",
"uniqueItems": true
},
"countries": {
"type": "array",
"items": {
"enum": [
"CN",
"HK"
],
"type": "string",
"enumTitles": [
"Mainland China",
"Hong Kong"
]
},
"title": "Countries",
"editor": "select",
"default": [
"CN"
],
"prefill": [
"CN"
],
"maxItems": 2,
"minItems": 1,
"description": "Mainland China (CN) is the default. Add Hong Kong (HK) when required.",
"uniqueItems": true
},
"watchName": {
"type": "string",
"title": "Watch name",
"editor": "textfield",
"default": "china-lei-watch",
"pattern": "^[^\\u0000-\\u001F\\u007F-\\u009F]+$",
"prefill": "china-lei-watch",
"maxLength": 80,
"minLength": 1,
"description": "Stable private baseline scope. Reuse this value on scheduled runs."
},
"maxResults": {
"type": "integer",
"title": "Maximum entities",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Hard cap across all searches after deterministic LEI de-duplication."
},
"nameMatchMode": {
"enum": [
"fuzzy",
"exact"
],
"type": "string",
"title": "Name matching",
"editor": "select",
"default": "fuzzy",
"enumTitles": [
"Fuzzy",
"Exact"
],
"description": "Fuzzy uses GLEIF full-text matching. Exact additionally requires a normalized legal or alternate-name match."
},
"maxConcurrency": {
"type": "integer",
"title": "Maximum concurrency",
"default": 3,
"maximum": 5,
"minimum": 1,
"description": "Bounded concurrency for official GLEIF requests."
},
"replayBaseline": {
"type": "boolean",
"title": "Replay unchanged baselines",
"default": false,
"description": "Emit a paid replay row for unchanged records. Keep disabled for change-only scheduled monitoring."
},
"includeRelationships": {
"type": "boolean",
"title": "Include parent relationships",
"default": true,
"description": "Resolve direct and ultimate accounting parents when GLEIF publishes a relationship."
}
},
"description": "Search official GLEIF data using bounded LEI, entity-name and CN/HK country filters. No API key or proxy is required.",
"schemaVersion": 1,
"additionalProperties": false
}