Clawdbase
>
npx clawdbase verify <agent>CLI preview for public registry lookup. REST is the developer contract.
Documentation
DevelopersOperations

Agent score

Return Trust and Confidence evidence for an Agent.

Operation: agent_score
Price: 10 credits / $0.10 display equivalent
Scope: scores:read

See REST result fields for Trust, Confidence, status, freshness, ledger, charge source and balance units.

Use before adopting, delegating to or executing an Agent. Supply a GitHub owner/repository, Agent URL or canonical Agent ID. Clawdbase resolves that input to one canonical registry identity before scoring or reserving usage.

{
  "operation": "agent_score",
  "subject": "owner/repository",
  "channel": "api",
  "idempotency_key": "agent-owner-repository-01"
}

Keep Agent Trust and Confidence on the Agent record. Do not substitute its Creator's score.

When to use it

Run agent_score before an Agent receives tools, credentials, write access, network access or delegated authority. Repeat according to your evidence-freshness policy after material repository, ownership or deployment changes.

Code examples

curl --request POST 'https://www.clawdbase.ai/api/clawdbase/operations/run' \
  --header "Authorization: Bearer $CLAWDBASE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "operation": "agent_score",
    "subject": "owner/repository",
    "channel": "api",
    "idempotency_key": "deployment-481:agent_score:owner-repository"
  }'
const response = await fetch('https://www.clawdbase.ai/api/clawdbase/operations/run', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.CLAWDBASE_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    operation: 'agent_score',
    subject: 'owner/repository',
    channel: 'api',
    idempotency_key: `deployment-481:agent_score:owner-repository`,
  }),
  signal: AbortSignal.timeout(50_000),
})

const body = await response.json()
if (!response.ok) throw new Error(body.error)
import os
import requests

response = requests.post(
    "https://www.clawdbase.ai/api/clawdbase/operations/run",
    headers={
        "Authorization": f"Bearer {os.environ['CLAWDBASE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={
        "operation": "agent_score",
        "subject": "owner/repository",
        "channel": "api",
        "idempotency_key": "deployment-481:agent_score:owner-repository",
    },
    timeout=50,
)

body = response.json()
if not response.ok:
    raise RuntimeError(body.get("error", "operation failed"))

A 502 means the upstream assessment failed and no credits settled; retry with the same idempotency key. The raw response uses result.verification_status, not scoreStatus. Only a usable confirmed result can be evaluated; a pending request or unavailable result must never be replaced with a sample score.

Interpret the result

Confirm result.resolved_subject.canonical_id, then read Trust, Confidence and result.score_evidence.score_version. A fresh accepted result is persisted to that same canonical Agent and public Page. Join Creator or lineage context only as related evidence. Do not overwrite the Agent pair with a Creator pair or a similarly named scraped record.

Policy example

assessment below is an application adapter, not the raw Clawdbase response. This example maps result.verification_status to its local scoreStatus field. The returned actions belong to the consuming application.

const result = body.result
if (!body.ok || !body.settled || !result) return { action: 'require_review' }
if (result.resolved_subject?.canonical_id !== expectedCanonicalId ||
    result.resolved_subject?.type !== 'agent') return { action: 'require_review' }
const assessment = {
  scoreStatus: result.verification_status,
  trust: result.scores?.trustScore,
  confidence: result.scores?.confidenceScore,
}
if (assessment.scoreStatus !== 'complete') return { action: 'require_review' }
if (![assessment.trust, assessment.confidence].every(value =>
  typeof value === 'number' && Number.isFinite(value) && value >= 0 && value <= 100
)) return { action: 'require_review' }
const scoredAt = Date.parse(result.score_evidence?.score_version ?? '')
if (!Number.isFinite(scoredAt) || scoredAt > Date.now() ||
    Date.now() - scoredAt > maxScoreAgeMs) return { action: 'require_refresh' }
if (deployment.canWriteProduction) return { action: 'allow_sandboxed' }
return evaluateAgentEvidence(assessment)

This illustrates combining evidence with deployment impact; it does not define a universal threshold.

Failure and retry

Invalid operation fields return 400, missing scores:read returns 403, and exhausted balances return 402. An inVerus failure returns 502, records a failed ledger row and reverses usage. Retry the same evaluation with the same idempotency key.

The public Agent Page is /a/{owner}/{repo} or /a/id/{id}. Console Page refresh is zero-cost system maintenance. A successful metered Agent operation also advances the resolved Agent's canonical score version so its API receipt and public Page refer to the same record.