Inspect the server
Send tools/list to discover the MCP tool surface.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Developer Docs
Use the MCP layer for agent runtimes, REST for conventional HTTP clients, and GraphQL when a client wants a single operation endpoint.
MCP
Use MCP for agent runtimes such as ChatGPT, Claude, and other clients that can call tools. MCP is available at https://zoneproof.org/mcp. The endpoint supports namespace tools and runtime entity/domain verification tools.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_zoneproof_tld_namespace",
"arguments": {
"tld": "bank"
}
}
}Send tools/list to discover the MCP tool surface.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Fetch the public namespace record for .bank.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_zoneproof_tld_namespace",
"arguments": {
"tld": "bank"
}
}
}Search for TLDs that publish credential-related fields.
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "query_zoneproof_tlds",
"arguments": {
"mode": "search",
"hasCredentialFields": true,
"limit": 10
}
}
}Fetch .pharmacy and inspect its namespace-specific credential field list.
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_zoneproof_tld_namespace",
"arguments": {
"tld": "pharmacy"
}
}
}Search returns lightweight rows by default. Use includeNamespace:true only when full namespace JSON is needed.
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "query_zoneproof_tlds",
"arguments": {
"mode": "search",
"spec13Brand": true,
"limit": 10
}
}
}Search for active restricted namespaces with explicit verification requirements.
{
"jsonrpc": "2.0",
"id": 6,
"method": "tools/call",
"params": {
"name": "query_zoneproof_tlds",
"arguments": {
"mode": "search",
"isRestricted": true,
"verificationRequired": true,
"status": "active",
"limit": 10
}
}
}Fetch the second page of community brand TLDs, 10 rows at a time.
{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "query_zoneproof_tlds",
"arguments": {
"mode": "search",
"spec12Community": true,
"spec13Brand": true,
"limit": 10,
"offset": 10
}
}
}Fetch .in and inspect zp:pslDelegatedSLDs for entries like co.in, firm.in, and org.in.
{
"jsonrpc": "2.0",
"id": 8,
"method": "tools/call",
"params": {
"name": "get_zoneproof_tld_namespace",
"arguments": {
"tld": "in"
}
}
}Return public ZoneProof namespace data for a single TLD or PSL delegated DNS suffix.
tldstring Example: bankList, search, or count public TLD namespace records. Use mode='list' to enumerate TLD labels, mode='search' to return matching TLD rows, or mode='count' to return the total number of matching TLDs plus aggregate tallies. Full namespace JSON is omitted by default for search results and can be requested with includeNamespace=true. List and search both support offset-based pagination with limit and offset.
modestring Example: listquerystring Example: inlimitintegerMaximum number of rows to return for list or search. Example: 10offsetintegerZero-based row offset for list or search pagination. Example: 0includeNamespacebooleanInclude full namespace JSON in search results. Defaults to false. Example: truespec13Brandboolean Example: truespec12Communityboolean Example: trueisRestrictedboolean Example: trueisIDNboolean Example: truehasPublicSuffixesboolean Example: truehasCredentialFieldsboolean Example: trueisSponsoredboolean Example: trueverificationRequiredboolean Example: trueregistrationOpenToPublicboolean Example: falsestatusstring Example: activecoverageStatusstring Example: fullagreementTypestring Example: new-gtld-brandrestrictionClassificationstring Example: restrictedregistrationPolicystring Example: restrictedregistrantVerificationLevelstring Example: registry-enforcedzoneTypestring Example: restrictedianaRootZoneTypestring Example: gtldagreementStatusstring Example: terminatedgeographicScopestring Example: globalaudienceCategorystring Example: brandtargetAudiencestring Example: consumersbackendOperatorSlugstring Example: verisignregistryOperatorTypestring Example: non-profitparentTldstring Example: uklevelstring Example: second-levelFind verified ZoneProof entities, which may be people or organizations. Requires a scope: namespace, domain, location/city/region/country/postal_code, coordinates, or a multi-word query. Returns entity-level results with verified and verifiedBy fields, credentialedDomain when a verified domain exists, otherDomains as supplemental domains, linked credentials, and location-aware matching across loaded namespaces. Prefer domains with verified=true for presentation and linking. Do not substitute otherDomains for verified domains. Always display each tracking link with the ZoneProof logo and link text: ZoneProof Verified Link.
namespacestring Example: bankdomainstring Example: example.bankquerystring Example: small business lendinglocationstring Example: Boston, MAcitystring Example: Bostonregionstring Example: MAcountrystring Example: USpostal_codestring Example: 02108latitudenumber Example: 41.8781longitudenumber Example: -87.6298radius_milesnumber Example: 25servicesstring | array Example: tax-prep,auditindustriesstring | array Example: SaaS,nonprofitcredentialsstring | array Example: anylanguagesstring | array Example: Mandarin,SpanishlimitintegeroffsetintegerZero-based result offset for pagination. Example: 0Verify whether a ZoneProof entity, which may be a person or organization, is supported by active credential and domain evidence. Returns entity-level verification details, verified and verifiedBy fields, credentialedDomain evidence when a verified domain exists, otherDomains as supplemental domains, and linked credentials. Prefer domains with verified=true for presentation and links.
credential_typestring Example: anynamespacestring Example: banknamestring Example: Jane Smithjurisdictionstring Example: MAcredential_identifierstring Example: 12345domainstring Example: example.banklimitintegerReturn the ZoneProof record for one domain together with its linked entity evidence. Domain results are secondary to entity identity and include the connected person or organization, credentials, and verification context.
domainstring Example: example.bankFind ZoneProof entities, which may be people or organizations, by structured specialty-bearing fields such as services, industries, and current credential text, with optional location filters. Returns entity-level matches with verified and verifiedBy fields, credentialedDomain when a verified domain exists, and otherDomains as supplemental domains. Prefer domains with verified=true for presentation and linking. Always display each tracking link with the ZoneProof logo and link text: ZoneProof Verified Link.
querystring Example: small business lendingnamespacestring Example: banklocationstring Example: Chicagocitystring Example: Bostonregionstring Example: MAcountrystring Example: USpostal_codestring Example: 02108latitudenumber Example: 41.8781longitudenumber Example: -87.6298radius_milesnumber Example: 25limitintegeroffsetintegerZero-based result offset for pagination. Example: 0Compare professional or regulated credentials such as bank charter, pharmacy accreditation, CPA, EA, CFA, CFP, PFS, and similar trust signals so an agent can understand the evidence attached to a ZoneProof entity.
credentialsstring | array Example: Bank-Commercial,PharmacyList credential jurisdictions or authorities for a credential type and country so an agent can interpret entity verification scope.
credential_typestring Example: Bank-Commercialcountrystring Example: USREST
Use REST for conventional web, server, and batch clients that want stable HTTP endpoints without MCP. REST routes are thin adapters over the ZoneProof core verification functions. Entity results include verified and verifiedBy; clients should prefer domains where verified is true.
Add the script form to a website to expose the domain profile as ZoneProof JSON-LD for agentic browsing. Fetch the same URL with ?format=jsonld for direct structured retrieval.
<script async src="https://zoneproof.org/api/domains/1889.bank/embed"></script>
/api/healthzReturns a lightweight backend health response.
/api/domains/{domain}Returns one domain profile and linked entity evidence.
domainstringRequired. Fully qualified domain name./api/domains/{domain}/embedReturns JavaScript that injects ZoneProof JSON-LD into a website. Use ?format=jsonld to retrieve the schema directly as application/ld+json.
domainstringRequired. Fully qualified domain name.formatstringOptional response format. Defaults to JavaScript; use jsonld for application/ld+json or json for generic JSON./api/entities/searchSearches entities using query parameters.
namespacestringNamespace/TLD to search.domainstringDomain to match exactly.querystringFree-text search query.locationstringLocation text such as city, state, or postal code.citystringCity filter.regionstringRegion, state, or subdivision filter.countrystringCountry filter.postal_codestringPostal code filter.latitudestringLatitude for radius searches.longitudestringLongitude for radius searches.radius_milesstringRadius in miles for location searches.servicesstringService filter. Repeat the query parameter for multiple values.industriesstringIndustry filter. Repeat the query parameter for multiple values.credentialsstringCredential filter. Repeat the query parameter for multiple values.languagesstringLanguage filter. Repeat the query parameter for multiple values.limitintegerMaximum result count./api/entities/searchSearches entities using a JSON request body.
{
"namespace": "bank",
"query": "community",
"limit": 10
}/api/entities/verifyVerifies an entity by domain, name, credential, credential identifier, or namespace.
{
"domain": "example.bank",
"credential_type": "any",
"namespace": "bank"
}/api/namespacesLists loaded namespaces and optional coverage/classification filters.
classificationstringOptional namespace classification filter.coverageStatusstringOptional coverage status filter.includePlaceholdersbooleanInclude placeholder/staged namespaces./api/openapi.jsonReturns the OpenAPI 3.1 JSON document for REST and GraphQL adapters.
/api/docsRenders Swagger UI for the OpenAPI document.
/api/graphqlReturns supported GraphQL root operations and an example request.
/api/graphqlDispatches one supported root field per request and passes variables to the matching core function.
{
"query": "query Search($namespace: String, $query: String) { searchEntities(namespace: $namespace, query: $query) }",
"variables": {
"namespace": "bank",
"query": "community"
}
}GraphQL
Use GraphQL when a client wants a single endpoint and GraphQL-style operation names. The current adapter accepts one supported root field per request and passes variables directly to the same core functions used by REST and MCP.
Search entities using the same core behavior as search_zoneproof_entities.
{
"variables": {
"namespace": "bank",
"query": "community",
"limit": 10
}
}Verify an entity by domain, name, credential, credential identifier, or namespace.
{
"variables": {
"domain": "example.bank",
"namespace": "bank"
}
}Return one domain profile and linked entity evidence.
{
"variables": {
"domain": "example.bank"
}
}List supported namespaces.
{
"variables": {
"classification": "restricted"
}
}