Skip to main content
Before a platform can run the connect ceremony it needs a provider counterparty: a DID that is on the Trust List, active, and reachable. GET /api/v1/directory is the public browse index for exactly that — “who is registered, in what role, with what capabilities, and does it have a sealed-classify enclave I can connect to.”
The directory is an index, not a key gate. It serves booleans and pointers only — has_payload_key, an enclave marker, the Trust-List path. Actual key material is resolved from the one root-signed /.well-known/ocss/trust-list document (§11.9 / §4.2 cl.2), verified offline against your pinned root X. The directory never returns a public key.

GET /api/v1/directory

Public, unauthenticated read. No phosra_ key, no signature. Query parameters (all optional): 200 response:
role and capabilities are accreditation-declared metadata. A provider that has not yet declared an entry_role or a §5.3 capability manifest still appears in the unfiltered listing and is still connectable — it just won’t match a ?role= / ?capability= filter. In sandbox, most reference providers ship without those declarations, so enumerate unfiltered and select on the enclave marker (and a 200 from the connect-config lookup below) rather than relying on the facet filters.

Recipe — find a connectable provider

GET /api/v1/providers/{did}/connect is the companion lookup — it returns the OAuth authorize_url / token_url / profiles_url the ceremony needs. See Get provider connect config for its full contract (and the deliberate 404 for an unknown, revoked, or connect-config-less DID — no existence leak).

Next