Skip to main content
POST
/
api
/
user
/
uploads
/
vault-health-summary
Aggregate vault-wide health stats
curl --request POST \
  --url https://pria.praxislxp.com/api/user/uploads/vault-health-summary \
  --header 'Content-Type: application/json' \
  --header 'x-access-token: <api-key>' \
  --data '
{
  "institution": "<string>"
}
'
{
  "success": true,
  "summary": {
    "totalCount": 123,
    "activeCount": 123,
    "errorCount": 123,
    "neverUsedCount": 123,
    "staleCount": 123,
    "unscannedCount": 123,
    "unoptimizedCount": 123,
    "unindexedCount": 123,
    "missingTerminalCount": 123,
    "staleBaseUrlCount": 123
  },
  "grade": {
    "letter": "B",
    "score": 84.6,
    "factors": [
      {
        "key": "unindexedCount",
        "count": 12,
        "impact": 5.4,
        "label": "Included but no segments indexed"
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.praxis-ai.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-access-token
string
header
required

JWT token passed in x-access-token header

Body

application/json
vault
enum<string>
required

Vault scope to summarise

Available options:
personal,
instance,
account
institution
string

Optional institution _id, only honored on the instance vault for cross-instance admin views.

Response

Summary returned

success
boolean
Example:

true

summary
object
grade
object

Composite vault-health grade derived from the summary counts. Lets API consumers (UI, dashboards) display a single A–F letter + 0–100 score without re-implementing the rules client-side.

Severity weights per category (penalty per 100% of total):

  • Critical (50pts): errorCount, unindexedCount, missingTerminalCount
  • Degraded (25pts): unoptimizedCount, staleBaseUrlCount
  • Stale (10pts): neverUsedCount, staleCount
  • Unknown (5pts): unscannedCount

score = 100 − Σ (weight × count / totalCount), clamped to ≥0. Letter: 90+ A, 80+ B, 70+ C, 60+ D, else F. Empty vault returns { letter: 'N/A', score: null, factors: [] }.