One API, organized by what you're building

Six product areas over one deterministic trust ledger: a portable reliability record the person owns, not you. Everything below is live. Each section explains what the product does and names the real endpoints; the calls themselves, every request and response field, live in the API reference.

Trust API

Is this person reliable? Answer with evidence, not vibes.

Read a user's portable reliability score, plus the factor breakdown, six named components, history, a unified timeline, and a diff explaining exactly what moved and why. Batch up to 100 users in one call for listings and leaderboards. Advisory risk signals come from the same ledger. And the model itself is public: GET /api/v1/scoring/model returns the weights, the unproven-user anchor (a new user starts at 20, trust is earned, not given) and the confidence thresholds, read from the live formula constants, so any caller can check any score against the model. That is the point of a bias-free score: you don't have to take our word for it.

  • GET/api/v1/users/{id}/scorescore + band + confidence + breakdown
  • GET/api/v1/users/{id}/score/explainfactor-level "why"
  • GET/api/v1/users/{id}/trust-summaryevidence-based summary, strengths & risks, never a verdict
  • GET/api/v1/users/{id}/score/componentssix named 0-100 components
  • GET/api/v1/users/{id}/score/historycursor-paginated history
  • GET/api/v1/users/{id}/timelineunified feed: events + score changes
  • GET/api/v1/users/{id}/score/deltawhat changed since last computation
  • POST/api/v1/users/{id}/score/projectwhat-if preview (writes nothing)
  • POST/api/v1/users/scoresbatch read, up to 100 users
  • GET/api/v1/users/{id}/platformswhich platforms contribute verified evidence
  • GET/api/v1/users/{id}/riskadvisory risk signals
  • GET/api/v1/scoring/modelthe scoring model itself, public, no key

Credential & Verification API

Verify a trust claim without trusting the wire it arrived on.

Scores are issued as EdDSA-signed Verifiable Trust Credentials and W3C VCs with a did:web issuer. A candidate, seller or counterparty hands you a share token or an export bundle; you verify the signature, expiry and revocation offline against published keys. No API key needed for any of this.

  • GET/api/v1/verify/{token}public trust check (no key)
  • GET/api/v1/verify/{token}/credentialthe signed credential
  • GET/api/v1/verify/{token}/exportself-verifying export bundle
  • GET/api/v1/status/revocationStatusList2021 revocation list
  • GET/.well-known/did.jsondid:web issuer document
  • GET/.well-known/jwks.jsonverifying keys (Ed25519)
  • GET/.well-known/credda-trust-registry.jsonrecognized issuers

Reputation Ingestion API

Turn real outcomes on your platform into portable reputation.

Report what actually happened: contracts fulfilled, deliveries late, reviews verified. The ledger is append-only and the score is a pure function of it: your events build a user's reputation, and nothing else can. Idempotency keys make retries safe; batch ingestion takes 100 events per call with per-item results. Verification rules resist gaming: an event only counts as verified evidence when a third party witnessed the outcome.

  • POST/api/v1/eventsreport one outcome, Idempotency-Key makes retries exactly-once
  • POST/api/v1/events/batchup to 100 events, partial success, per-item idempotency
  • POST/api/v1/users/{id}/score/projectpreview the impact before you report

Every request and response field is in the API reference.

Badge & Widget

Display verified reputation anywhere, with one script tag.

A user mints a revocable share token (on credda.io or via your platform key), chooses a disclosure scope (full, band-only, or minimal) and embeds the badge. The badge resolves live from this host and stops resolving the moment the token is revoked. Achievement badges (deterministic, display-only) are part of the public profile too.

  • POST/api/v1/users/{id}/share-tokenmint / rotate / revoke (platform key)
  • GET/widget/credda-widget.jsthe embeddable widget script, served from this host
  • GET/api/v1/verify/{token}what the badge resolves against

Every request and response field is in the API reference.

Webhooks & Automation

React when trust changes, without polling.

Subscribe your endpoint to score.updated, score.band_changed and dispute.resolved. Deliveries are HMAC-signed over a timestamped payload; the SDK verifies them in constant time with replay tolerance. Failed deliveries retry with exponential backoff, every attempt lands in a delivery log you can read back, and any logged delivery can be replayed on demand. Every score change carries a factor-level reason, so your automation can react to why, not just the number.

  • POST/api/v1/webhookscreate (signing secret shown once)
  • POST/api/v1/webhooks/{id}/testsend a signed test delivery
  • GET/api/v1/webhooks/{id}/deliveriesdelivery log, cursor-paginated, one row per attempt
  • POST/api/v1/webhooks/{id}/deliveries/{deliveryId}/replayre-send a stored delivery

Every request and response field is in the API reference.

Agents & AI

Trust your agent can check mid-reasoning.

The MCP server gives any Model Context Protocol agent six tools: check a counterparty's trust, offline-verify a credential it was handed, or mint and present its own, plus registry/DID resources for discovery. The CLI puts the same surface in terminals and CI. One deliberate boundary: AI never decides a score. Credda's AI is advisory-only by design, so there is no "AI verdict" endpoint to call, and that is the point of building on a bias-free ledger.

@credda/mcp-server npm

MCP server: check a counterparty's trust, verify a credential offline, or mint and present your principal's own, mid-reasoning, from any MCP-aware agent.

npm install @credda/mcp-server

@credda/cli npm

The same surface in terminals and CI: lookup, export, offline verify (exit 0/2), webhooks, and a local HMAC-verifying delivery listener.

npm install -g @credda/cli

@credda/js npm

The typed TypeScript SDK both are built on: score reads, ingestion, webhook verification, and offline credential verification.

npm install @credda/js

Start building