Vault API

Search the vault and check claims against it from your own code. The API is for Pro customers. Keys are issued by hand: reply to your receipt email or write to /support to ask for one. There is no self-serve key page.

Authentication

Every request needs an Authorization header with a bearer key in the form dm_live_....

Authorization: Bearer dm_live_...

A missing or invalid key returns 401 with error code unauthorized.

Rate limit and message cap

Each key is limited to 60 requests per minute for /api/v1/search and 10 per minute for /api/v1/verify. Going over that returns 429 with error code rate_limited and a Retry-After: 60 header. Repeated requests with an invalid key are throttled by source address as well, and also return 429.

Each call that passes authentication, the rate limit, and the cap check counts as one message against your account's plan cap, including a call that later fails with internal. API calls and chat messages share one cap. Reaching it returns 402 with error code cap_reached and no Retry-After.

POST /api/v1/search

Runs a similarity search over the vault.

Request body

{
  "query": "string, 1-2000 characters",
  "topK": 5   // optional, 1-20, default 5
}

Response

{
  "ok": true,
  "data": {
    "results": [
      { "slug": "...", "title": "...", "excerpt": "...", "similarity": 0.82 }
    ]
  }
}

Results carry a slug, not a URL. There is no public per-slug wiki page to link to.

POST /api/v1/verify

Splits the text you send into individual claims (up to 60 per request) and returns up to 3 vault sources per claim. A claim with an empty sources array is not in the vault, which means unverified, not false.

Request body

{
  "text": "string, 1-8000 characters"
}

Response

{
  "ok": true,
  "data": {
    "claims": [
      {
        "text": "...",
        "sources": [
          { "slug": "...", "title": "...", "excerpt": "...", "similarity": 0.81 }
        ]
      }
    ]
  }
}

Errors

Every error uses the same envelope:

{ "ok": false, "error": { "code": "...", "message": "..." } }
  • 401 unauthorized: missing or invalid API key
  • 400 invalid_body: request body failed validation
  • 429 rate_limited: over the per-minute limit for this key, or too many invalid keys from this address
  • 402 cap_reached: account hit its plan message cap
  • 500 internal: something failed on our end, try again

Example

curl https://www.decryptedmatrix.ai/api/v1/verify \
  -H "Authorization: Bearer dm_live_..." \
  -H "Content-Type: application/json" \
  -d '{"text":"Epstein was arrested in July 2019. He owned a private island."}'