Trust Layer
Developers — Trust Layer APIs & MCP
Integrate Agent Cards into your LLM, agent runtime, or vertical assistant. Search, verify, and call real businesses.
Agent Card
Machine-readable identity unit. Same ID for /t and /b. API version 2026-08-21.
MCP tools
JSON-RPC over POST /api/mcp — search_agents, get_agent, verify_agent, get_business_facade, search_registry, get_merged_profile (preferred for HK).
HTTP v1
GET /api/v1/search · /api/v1/t/{id} · /api/v1/verify · /api/v1/b/{handle} · /api/v1/registry/{id}/merged
API keys
Public reads are IP-limited. Create a Bearer key in the dashboard for higher volume.
Hong Kong Official Registry
60k+ structured register records — restaurants, clinics, lawyers, insurers, and more. Each profile page links to official JSON and a merged profile when enrichment exists.
HTTP
GET /api/v1/registry/{registryId} · GET /api/v1/registry/{registryId}/merged · GET /api/v1/registry/search
MCP: get_registry · search_registry · get_merged_profile
Merged Profile
Combines official register fields, claimed Agent Card (if any), and external enrichment. Returns trustBreakdown and recommendedUse hints so agents know what is safe to cite.
Field Provenance
Official register fields are REGISTRY_OFFICIAL. Enrichment uses INFERRED (e.g. Google Places match) or MERCHANT_CONFIRMED after Dashboard review. Prefer recommendedUse over raw enrichment when citing hours or contact.
Live Places enrichment requires GOOGLE_PLACES_API_KEY on the server; without it, demo enrichment is used for POC.
Default Integration Path (HK Registry)
Partner agents should treat get_merged_profile (or GET /api/v1/registry/{registryId}/merged) as the default read after search_registry. Use get_registry only when you need raw official fields without enrichment or claim context.
- search_registry — find candidates by name, address, or licence no.
- get_merged_profile — fetch official + claimed + enrichment with recommendedUse
- If claimed.trusgentId exists: verify_agent before recommending; optional get_business_facade
- Cite identity when recommendedUse.identity is safe_to_cite; treat hours/contact per recommendedUse
Example Merged Response
{
"kind": "MergedRegistryProfile",
"apiVersion": "2026-05-01",
"registryId": "fehd-3715038328",
"official": {
"verification": {
"level": "REGISTRY_OFFICIAL"
}
},
"claimed": null,
"enrichment": {
"status": "PENDING_REVIEW",
"fields": {
"hours": {
"verificationLevel": "INFERRED",
"source": "google_places"
}
}
},
"trustBreakdown": {
"officialRegistry": 40,
"merchantClaim": 0,
"enrichmentConfirmed": 2,
"totalHint": 42
},
"recommendedUse": {
"identity": "safe_to_cite",
"hours": "cite_with_caution",
"contact": "do_not_cite"
}
}Open Agent Card contract: docs/agent-card.md · MCP guide: docs/mcp.md