{"openapi":"3.1.0","info":{"title":"Agent Trust Hub Public API","version":"1.0.0","description":"Read-only access to Agent Trust Hub catalog coverage, public-source records, endpoint observations, incidents, and the published methodology. For unknown data, nullable fields use null, explicit categorical fields can use literal \"unknown\", and missing upstream collections normalize to empty arrays. These representations do not mean zero, failure, or verification.","contact":{"name":"Agent Trust Hub support","email":"support@agenttrusthub.cc"}},"servers":[{"url":"https://agenttrusthub.cc","description":"Canonical Agent Trust Hub origin"}],"tags":[{"name":"Metadata"},{"name":"Catalog"},{"name":"Monitoring"},{"name":"Methodology"},{"name":"News"}],"paths":{"/api/v1/meta":{"get":{"operationId":"getApiMeta","summary":"Get API metadata, taxonomy, connected sources, and methodology versions","tags":["Metadata"],"responses":{"200":{"description":"API metadata","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ApiMeta"}}}]}}}},"503":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/stats":{"get":{"operationId":"getStats","summary":"Get current Agent Trust Hub coverage and monitoring aggregates","tags":["Catalog","Monitoring"],"responses":{"200":{"description":"Current coverage statistics","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Stats"}}}]}}}},"503":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/services":{"get":{"operationId":"listServices","summary":"Search and paginate active service records","tags":["Catalog"],"parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":120}},{"name":"market","in":"query","schema":{"type":"string","enum":["all","global","russia"]}},{"name":"category","in":"query","description":"Prefer an Agent Trust Hub public category slug advertised by /api/v1/meta; grouped public categories are expanded before the upstream request. Raw upstream category values remain accepted for compatibility. When a value is both a public slug and an upstream value, the public grouped mapping takes precedence.","schema":{"anyOf":[{"type":"string","enum":["models","coding-agents","automation","research","voice-agents","image-video","agent-infrastructure","agent-commerce"]},{"type":"string","minLength":1,"maxLength":120}]}},{"name":"source","in":"query","schema":{"type":"string","maxLength":120}},{"name":"protocol","in":"query","schema":{"type":"string","maxLength":120}},{"name":"access","in":"query","schema":{"type":"string","maxLength":120}},{"name":"availability","in":"query","schema":{"type":"string","enum":["all","unknown","healthy","degraded","down"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":60,"default":24}},{"name":"sort","in":"query","schema":{"type":"string","enum":["score","name","fresh"]}}],"responses":{"200":{"description":"Paginated catalog records","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CatalogPage"}}}]}}}},"400":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/services/{slug}":{"get":{"operationId":"getService","summary":"Get a service record with endpoint observations and public history","tags":["Catalog","Monitoring"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}}],"responses":{"200":{"description":"Service detail","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ServiceDetail"}}}]}}}},"400":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/incidents":{"get":{"operationId":"listIncidents","summary":"List available automatically observed incident history","tags":["Monitoring"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}}],"responses":{"200":{"description":"Incident history","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IncidentPage"}}}]}}}},"400":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/news":{"get":{"operationId":"listNews","summary":"List published bilingual news derived from allowlisted official sources","tags":["News"],"parameters":[{"name":"locale","in":"query","schema":{"type":"string","enum":["ru","en"],"default":"ru"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"Published news items","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/NewsPage"}}}]}}}},"400":{"description":"The request failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/methodologies/current":{"get":{"operationId":"getCurrentMethodology","summary":"Get the current technical index and user-rating methodology","tags":["Methodology"],"responses":{"200":{"description":"Current published methodology","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Methodology"}}}]}}}}}}}},"components":{"schemas":{"ResponseMeta":{"type":"object","additionalProperties":false,"required":["fetchedAt","stale","apiVersion"],"properties":{"fetchedAt":{"type":["string","null"],"format":"date-time"},"stale":{"type":"boolean"},"apiVersion":{"type":"string","const":"1.0.0"}}},"SuccessEnvelope":{"type":"object","required":["data","meta"],"properties":{"data":{},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"ApiError":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","enum":["UPSTREAM_UNAVAILABLE","INVALID_QUERY","NOT_FOUND"]},"message":{"type":"string"}}},"ErrorEnvelope":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"$ref":"#/components/schemas/ApiError"}}},"SourceCount":{"type":"object","additionalProperties":false,"required":["key","count","lastSeenAt"],"properties":{"key":{"type":"string"},"count":{"type":"integer","minimum":0},"lastSeenAt":{"type":["string","null"],"format":"date-time"}}},"ApiMeta":{"type":"object","additionalProperties":false,"required":["apiVersion","canonicalOrigin","locales","categories","sources","methodologies"],"properties":{"apiVersion":{"type":"string","const":"1.0.0"},"canonicalOrigin":{"type":"string","format":"uri","const":"https://agenttrusthub.cc"},"locales":{"type":"array","prefixItems":[{"const":"ru"},{"const":"en"}],"minItems":2,"maxItems":2},"categories":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["slug","upstreamCategories","title","description"],"properties":{"slug":{"type":"string"},"upstreamCategories":{"type":"array","items":{"type":"string"}},"title":{"$ref":"#/components/schemas/LocalizedText"},"description":{"$ref":"#/components/schemas/LocalizedText"}}}},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceCount"}},"methodologies":{"type":"object","additionalProperties":false,"required":["technical","userRating","href"],"properties":{"technical":{"type":"string"},"userRating":{"type":"string"},"href":{"type":"string","format":"uri"}}}}},"LocalizedText":{"type":"object","additionalProperties":false,"required":["ru","en"],"properties":{"ru":{"type":"string"},"en":{"type":"string"}}},"Stats":{"type":"object","additionalProperties":false,"required":["services","russia","curated","endpoints","monitoredEndpoints","healthyEndpoints","downEndpoints","checks","lastCheck","publishedReviews","sources"],"properties":{"services":{"type":"integer","minimum":0},"russia":{"type":"integer","minimum":0},"curated":{"type":"integer","minimum":0},"endpoints":{"type":"integer","minimum":0},"monitoredEndpoints":{"type":"integer","minimum":0},"healthyEndpoints":{"type":"integer","minimum":0},"downEndpoints":{"type":"integer","minimum":0},"checks":{"type":"integer","minimum":0},"lastCheck":{"type":["string","null"],"format":"date-time"},"publishedReviews":{"type":"integer","minimum":0},"sources":{"type":"array","items":{"$ref":"#/components/schemas/SourceCount"}}}},"LanguageEvidence":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["scope","sourceUrl"],"properties":{"scope":{"type":"string","const":"source-record"},"sourceUrl":{"type":"string"}}}]},"Service":{"type":"object","additionalProperties":false,"required":["id","slug","name","description","website","category","market","languages","languageEvidence","providerCountry","accessModes","protocols","tags","sourceKey","sourceUrl","sourceUpdatedAt","importedAt","version","repositoryUrl","remoteCount","packageCount","ownershipStatus","availability","lastCheckedAt","technicalScore","scoreCoverage","scoreVersion","ratingAverage","ratingCount","rubPayments","rubPaymentsEvidenceUrl","personalDataRu","personalDataEvidenceUrl","metadata","curated"],"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"website":{"type":["string","null"]},"category":{"type":"string"},"market":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}},"languageEvidence":{"$ref":"#/components/schemas/LanguageEvidence"},"providerCountry":{"type":["string","null"]},"accessModes":{"type":"array","items":{"type":"string"}},"protocols":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"sourceKey":{"type":"string"},"sourceUrl":{"type":"string"},"sourceUpdatedAt":{"type":["string","null"]},"importedAt":{"type":"string"},"version":{"type":["string","null"]},"repositoryUrl":{"type":["string","null"]},"remoteCount":{"type":"integer","minimum":0},"packageCount":{"type":"integer","minimum":0},"ownershipStatus":{"type":"string"},"availability":{"type":"string"},"lastCheckedAt":{"type":["string","null"],"format":"date-time"},"technicalScore":{"type":["number","null"],"minimum":0,"maximum":100},"scoreCoverage":{"type":["number","null"],"minimum":0,"maximum":1},"scoreVersion":{"type":["string","null"]},"ratingAverage":{"type":["number","null"],"minimum":1,"maximum":5},"ratingCount":{"type":"integer","minimum":0},"rubPayments":{"type":"string"},"rubPaymentsEvidenceUrl":{"type":["string","null"]},"personalDataRu":{"type":"string"},"personalDataEvidenceUrl":{"type":["string","null"]},"metadata":{"type":"object","additionalProperties":true},"curated":{"type":"boolean"}}},"CatalogPage":{"type":"object","additionalProperties":false,"required":["services","total","page","limit","pages"],"properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"total":{"type":"integer","minimum":0},"page":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1},"pages":{"type":"integer","minimum":0}}},"Endpoint":{"type":"object","additionalProperties":false,"required":["id","url","kind","transport","currentStatus","protocolObserved","lastHttpStatus","lastLatencyMs","lastCheckedAt"],"properties":{"id":{"type":"integer"},"url":{"type":"string"},"kind":{"type":"string"},"transport":{"type":"string"},"currentStatus":{"type":["string","null"]},"protocolObserved":{"type":["string","null"]},"lastHttpStatus":{"type":["integer","null"],"minimum":100,"maximum":599},"lastLatencyMs":{"type":["number","null"],"minimum":0},"lastCheckedAt":{"type":["string","null"],"format":"date-time"}}},"Check":{"type":"object","additionalProperties":false,"required":["status","httpStatus","latencyMs","protocol","challengePresent","checkedAt"],"properties":{"status":{"type":"string"},"httpStatus":{"type":["integer","null"],"minimum":100,"maximum":599},"latencyMs":{"type":["number","null"],"minimum":0},"protocol":{"type":["string","null"]},"challengePresent":{"type":["boolean","null"]},"checkedAt":{"type":"string","format":"date-time"}}},"Incident":{"type":"object","required":["id","kind","status","title","openedAt","resolvedAt","lastObservedAt"],"properties":{"id":{"type":"integer"},"kind":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"openedAt":{"type":"string"},"resolvedAt":{"type":["string","null"]},"lastObservedAt":{"type":["string","null"]},"slug":{"type":"string"},"name":{"type":"string"},"endpointUrl":{"type":["string","null"]}}},"OwnerReply":{"type":"object","additionalProperties":false,"required":["body","publishedAt"],"properties":{"body":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"}}},"Review":{"type":"object","additionalProperties":false,"required":["id","authorType","authorName","rating","title","body","usageEvidenceStatus","publishedAt","relationship","includedInRating","source","ownerReply"],"properties":{"id":{"oneOf":[{"type":"integer"},{"type":"string","format":"uuid"}]},"authorType":{"type":"string"},"authorName":{"type":"string"},"rating":{"type":"integer","minimum":1,"maximum":5},"title":{"type":"string"},"body":{"type":"string"},"usageEvidenceStatus":{"type":"string"},"publishedAt":{"type":["string","null"],"format":"date-time"},"relationship":{"type":["string","null"],"enum":["customer","employee","owner","partner","other",null],"description":"Disclosed relationship to the reviewed service, when available."},"includedInRating":{"type":"boolean","description":"False for AI-agent observations and for owner, employee, and partner reviews. Those records remain visible but do not affect User Rating."},"source":{"type":"string","enum":["upstream","agenttrusthub"]},"ownerReply":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/OwnerReply"}]}}},"ServiceDetail":{"type":"object","additionalProperties":false,"required":["service","endpoints","checks","incidents","reviews"],"properties":{"service":{"$ref":"#/components/schemas/Service"},"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/Endpoint"}},"checks":{"type":"array","items":{"$ref":"#/components/schemas/Check"}},"incidents":{"type":"array","items":{"$ref":"#/components/schemas/Incident"}},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/Review"}}}},"IncidentPage":{"type":"object","additionalProperties":false,"required":["incidents"],"properties":{"incidents":{"type":"array","items":{"$ref":"#/components/schemas/Incident"}}}},"NewsItem":{"type":"object","additionalProperties":false,"required":["presentation","slug","publishedAt","articlePublishedAt","title","summary","source","related","url"],"example":{"presentation":"official-source","slug":"official-x402-2026-08-09-12345678","publishedAt":"2026-08-09","articlePublishedAt":null,"title":"Official update: Coinbase x402 releases","summary":"Original English source title: v1.2.3","source":{"name":"Coinbase x402 releases","url":"https://example.com/official-update"},"related":{"kind":"protocol","name":"x402"},"url":"https://example.com/official-update"},"properties":{"presentation":{"type":"string","enum":["editorial","official-source"],"description":"`editorial` uses a durable Agent Trust Hub URL; `official-source` links directly to the official source and can be transient."},"slug":{"type":"string"},"publishedAt":{"type":"string","format":"date","description":"Source event or publication date used for ordering; this is not the Agent Trust Hub article publication time."},"articlePublishedAt":{"type":["string","null"],"format":"date-time","description":"Agent Trust Hub editorial publication time when independently recorded; otherwise null."},"title":{"type":"string"},"summary":{"type":"string"},"source":{"type":"object","additionalProperties":false,"required":["name","url"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"related":{"type":"object","additionalProperties":false,"required":["kind","name"],"properties":{"kind":{"type":"string","enum":["service","protocol"]},"name":{"type":"string"}}},"url":{"type":"string","format":"uri","description":"Durable Agent Trust Hub URL for editorial items; direct official source URL for official-source entries."}}},"NewsPage":{"type":"object","additionalProperties":false,"required":["locale","mode","sourcesChecked","items"],"properties":{"locale":{"type":"string","enum":["ru","en"]},"mode":{"type":"string","enum":["live","fallback"],"description":"`live` contains current allowlisted-feed results; `fallback` contains the committed curated registry because live sources were unavailable or this runtime has no live-feed adapter."},"sourcesChecked":{"type":"integer","minimum":0,"description":"Number of allowlisted official feeds considered for this result."},"items":{"type":"array","items":{"$ref":"#/components/schemas/NewsItem"}}}},"Methodology":{"type":"object","additionalProperties":false,"required":["technical","userRating","documentation"],"properties":{"technical":{"type":"object","required":["version","scale","signals","telemetry","publication","calculation"],"properties":{"version":{"type":"string"},"scale":{"type":"object","required":["minimum","maximum"],"properties":{"minimum":{"type":"number"},"maximum":{"type":"number"}}},"signals":{"type":"array","items":{"type":"object","required":["key","weight","telemetry"],"properties":{"key":{"type":"string"},"weight":{"type":"number"},"telemetry":{"type":"boolean"}}}},"telemetry":{"type":"object","required":["minimumSavedChecks","minimumMonitoredAddressCoverage"],"properties":{"minimumSavedChecks":{"type":"integer"},"minimumMonitoredAddressCoverage":{"type":"number"}}},"publication":{"type":"object","required":["minimumKnownSignalWeight"],"properties":{"minimumKnownSignalWeight":{"type":"number"}}},"calculation":{"type":"object","additionalProperties":false,"required":["score","coverage"],"properties":{"score":{"type":"object","additionalProperties":false,"required":["formula","knownAndMet","knownAndNotMet","unknown","renormalizeToKnownWeight"],"properties":{"formula":{"type":"string","const":"sum(weights where known = true and met = true)"},"knownAndMet":{"type":"string","const":"weight"},"knownAndNotMet":{"type":"number","const":0},"unknown":{"type":"number","const":0},"renormalizeToKnownWeight":{"type":"boolean","const":false}}},"coverage":{"type":"object","additionalProperties":false,"required":["knownWeightFormula","scoreCoverageFormula"],"properties":{"knownWeightFormula":{"type":"string","const":"sum(weights where known = true)"},"scoreCoverageFormula":{"type":"string","const":"knownWeight / sum(all weights)"}}}}}}},"userRating":{"type":"object","required":["version","scale","displayAggregate","ratingSort","eligibility","unknownPolicy"],"properties":{"version":{"type":"string"},"scale":{"type":"object","required":["minimum","maximum"],"properties":{"minimum":{"type":"number"},"maximum":{"type":"number"}}},"displayAggregate":{"type":"object","additionalProperties":false,"required":["field","formula","condition","otherwise"],"properties":{"field":{"type":"string","const":"ratingAverage"},"formula":{"type":"string","const":"sum(eligible rating values) / n"},"condition":{"type":"string","const":"n > 0"},"otherwise":{"type":"null"}}},"ratingSort":{"type":"object","additionalProperties":false,"required":["exposed","queryValue","rankingFormula","priorWeight","priorFallback","prior"],"properties":{"exposed":{"type":"boolean","const":false},"queryValue":{"type":"null"},"rankingFormula":{"type":"string","const":"(n / (n + m)) * serviceMean + (m / (n + m)) * priorMean"},"priorWeight":{"type":"number","const":5},"priorFallback":{"type":"array","prefixItems":[{"type":"string","const":"categoryMean"},{"type":"string","const":"globalMean"}],"minItems":2,"maxItems":2},"prior":{"type":"object","additionalProperties":false,"required":["order","whenUnavailable"],"properties":{"order":{"type":"array","prefixItems":[{"type":"string","const":"categoryMean"},{"type":"string","const":"globalMean"}],"minItems":2,"maxItems":2},"whenUnavailable":{"type":"null"}}}}},"eligibility":{"type":"object","additionalProperties":false,"required":["includedAuthorTypes","excludedAuthorTypes","excludedRelationships"],"properties":{"includedAuthorTypes":{"type":"array","prefixItems":[{"type":"string","const":"human"},{"type":"string","const":"company"}],"minItems":2,"maxItems":2},"excludedAuthorTypes":{"type":"array","prefixItems":[{"type":"string","const":"agent"}],"minItems":1,"maxItems":1},"excludedRelationships":{"type":"array","prefixItems":[{"type":"string","const":"employee"},{"type":"string","const":"owner"},{"type":"string","const":"partner"}],"minItems":3,"maxItems":3}}},"unknownPolicy":{"type":"object","additionalProperties":false,"required":["missingServiceMean","missingPriorMean"],"properties":{"missingServiceMean":{"type":"null"},"missingPriorMean":{"type":"null"}}}}},"documentation":{"type":"string","format":"uri"}}}}}}