For the complete documentation index, see llms.txt. This page is also available as Markdown.

Utilities

Check health of endpoint

get

Check if the endpoint is healthy and well

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

Successful response

application/json
stringOptional
get/health-check
GET /api/health-check HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
text

Deep health check (exercises DIDKit end to end)

get

Issues and verifies a test credential + presentation with the service keypair, proving the full DIDKit crypto path (plugin load, signing, and the runtime delegation inside the native plugin) works. Reports which DIDKit engine loaded. Added after the 2026-07-02 incidents, where shallow health checks stayed green while DIDKit paths were broken.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

Successful response

application/json
healthybooleanRequired
versionstringRequired
didkitEnginestring Β· enumRequiredPossible values:
didstringRequired
vpVerifiedbooleanRequired
verificationErrorsstring[]Required
msnumberRequired
get/health-check/deep
GET /api/health-check/deep HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "healthy": true,
  "version": "text",
  "didkitEngine": "native",
  "did": "text",
  "vpVerified": true,
  "verificationErrors": [
    "text"
  ],
  "ms": 1
}

Resolve a recipient locale by email

post

Returns the account's saved BCP-47 locale preference for this email, or null when no preference is set or no account exists. Returning null (rather than defaulting to 'en') lets the caller fall back to its own signal (e.g. the client UI locale) before English. Never reveals whether an account exists β€” a missing account and an account with no saved locale both return null β€” so it is safe to call before authentication (e.g. to localize a login-code email). Rate limited to 10 lookups per email per hour (plus a broad per-IP circuit breaker); callers should treat any error as an unresolved locale and fall back, never as a failure.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
emailstring Β· emailRequiredPattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
Responses
200

Successful response

application/json
localestring Β· nullableRequired
post/utilities/resolve-email-locale
POST /api/utilities/resolve-email-locale HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 26

{
  "email": "name@gmail.com"
}
{
  "locale": "text"
}

Request a list of valid challenges

get

Generates an arbitrary number of valid challenges for a did, then returns them

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
amountinteger Β· max: 100OptionalDefault: 100
Responses
200

Successful response

application/json
string[]Optional
get/challenges
GET /api/challenges HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  "text"
]

Get LCN Did

get

Gets the did:web for the LCN itself

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

Successful response

application/json
stringOptional
get/did
GET /api/did HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
text

Last updated

Was this helpful?