Trust API — REST Reference
For applications that do not speak XRPC natively, Verak provides two read-only REST endpoints: a trust summary by handle or DID, and a label definitions catalogue. Both endpoints are CDN-cached, CORS-unrestricted, and require no API key.These endpoints are a convenience layer over the AT Protocol labeler. If your stack can make XRPC calls, the native labeler path is the preferred integration — it removes Verak infrastructure as a dependency entirely.
Base URL
/api/v1/ are versioned. Breaking changes (removed fields, changed semantics) will be released under /api/v2/. Additive changes (new optional fields) are non-breaking and may appear at any time.
Trust Summary Endpoint
GET /api/v1/trust/{subject}
Returns the trust state for a single subject. The subject can be an AT Protocol handle or a did:plc DID.
Cache: s-maxage=300 (5 minutes at the CDN edge)CORS:
Access-Control-Allow-Origin: *Authentication: None
Request examples
By handleResponse — 200 OK (verified member)
Response — 200 OK (resolvable non-member)
A subject whose DID resolves via the PLC directory but who has no Verak labels returns 200 withverified: false. This is intentional — an unresolvable subject is a different failure mode from a resolved subject with no trust signals.
Response — 404 Not Found
Returned when the subject cannot be resolved to a DID — either because the handle does not exist, the DID is malformed, or the PLC directory returned no result.Field reference
Definitions Endpoint
GET /api/v1/labels/definitions
Returns the catalogue of labels issued by the Verak Labeler with display metadata. Useful for building local label renderers without hardcoding label semantics.
Cache: s-maxage=3600 (1 hour at the CDN edge)CORS:
Access-Control-Allow-Origin: *Authentication: None
Request
Response — 200 OK
Field reference
This endpoint returns only the allowlisted fields above. Internal metadata (review state, reviewer identity, applied signal weights) is never included.
CORS
Both endpoints are served with:OPTIONS) requests succeed from any origin. Browser-based applications can call these endpoints directly without a proxy.
Data Boundary
To be explicit about what these endpoints will never return:
If a field you need is not in the response, it is not available via this API by design.
Fair Use
These endpoints are CDN-cached. There are no API keys, no rate-limit tiers, and no authentication. Cache behaviour means repeated identical requests within the cache window return the cached response at no additional cost to the origin. If you need bulk lookups, real-time streaming, or firehose-scale data, the right path is the AT Protocol labeler stream (com.atproto.label.subscribeLabels), not repeated calls to this API. See the labeler page →
Status Codes
5xx errors are transient. Retry with exponential backoff. Do not surface 5xx as a negative trust signal — inability to query is not the same as verified: false.

