Skip to content
cresvaDevelopers

Trust

A trust score is a composite from 0 to 100 across seven components. The endpoint returns the score, the components behind it, and, unusually, how much of it rests on anything that was actually measured.

What the score does not do is decide how an agent ranks anything. Cresva does not control any agent's ranking and does not claim to influence one. The score is evidence a storefront publishes about itself, for an agent to use however it chooses.

GET/trust

The current trust score for a storefront, with its components and their measured state.

Authentication: none required

bash
curl "https://cresva.ai/api/storefront/$BRAND_ID/trust"

No key is required. Anonymous callers are limited to 10 requests per minute per IP.

A real response

This is Cresva's own storefront, read on 2026-09-16. It is reproduced unedited, including the parts that are unflattering, because a documented response that is prettier than a real one teaches the wrong shape.

JSON
{
  "brand_id": "cmqmr1f6j0003la04nu93f4k4",
  "brand_name": "Cresva",
  "score": 50,
  "unweighted_score": 62.5,
  "tier": "bronze",
  "trend": "stable",
  "badges": [],
  "components": {
    "data_accuracy": 50,
    "fulfillment_speed": null,
    "return_rate": null,
    "negotiation_fairness": 50,
    "response_reliability": 50,
    "dispute_record": null,
    "customer_satisfaction": 50
  },
  "measured_components": {
    "data_accuracy": true,
    "fulfillment_speed": false,
    "return_rate": false,
    "negotiation_fairness": true,
    "response_reliability": true,
    "dispute_record": false,
    "customer_satisfaction": true
  },
  "measured_weight": 0.55,
  "provisional": true,
  "provisional_reason": "No completed transaction has been recorded for this brand, so nothing here rests on observed behaviour.",
  "seeded": false,
  "verified_transactions": 0,
  "member_since": "2026-06-20T19:27:02.683Z",
  "calculated_at": "2026-08-23T09:00:52.039Z",
  "certification": null
}

Reading the response

scorenumberThe weighted composite, 0 to 100.
unweighted_scorenumberThe mean of the components that were measured, before weighting. It will usually be higher than score, because unmeasured components contribute nothing rather than contributing an average.
tierstringOne of platinum, gold, silver, bronze, unrated. See the ladder below.
componentsobjectSeven component scores. A component with no evidence behind it is null, never a number.
measured_componentsobjectWhich of the seven were measured. Read this before reading components.
measured_weightnumberThe fraction of the total component weight that was measured, 0 to 1.
provisionalbooleanTrue when the score does not yet rest on observed behaviour.
provisional_reasonstringWhy, in a sentence, when provisional is true.
seededbooleanTrue when the brand's data is synthetic. Check this before quoting any number from a storefront.

An unmeasured component is null, not a number

Three of the seven components in the response above are null: fulfillment_speed, return_rate and dispute_record. That brand has recorded no completed transaction, so there is nothing to measure them from.

They are null rather than 50, and that distinction is the reason this endpoint can be trusted at all. An earlier version wrote 50 for "no data" and 100 for "no transactions, therefore no refunds", which let a brand with nothing at all reach 62.5 and a silver tier. A consumer that cannot handle null must skip the component. It must not read a number we invented.

The tier ladder

platinum90 and aboveThe highest published tier.
gold75 to 89
silver60 to 74
bronze40 to 59
unratedbelow 40, or not enough measuredUnrated is the absence of a tier, not a low one.

No tier is published at all until at least half the component weight has been measured. Below that threshold the score is still returned and marked provisional, but the tier reads unrated. A tier is a claim made to a third party, and half the evidence is the least we will make one on. The threshold is disclosed as measured_weight so nobody has to take it on trust.

The federated score

The specification also defines a federated trust score, computed across participating platforms. No platform other than Cresva implements it yet, so today a federated score is a Cresva score with a longer name. It is in the spec because the shape needs to exist before a second participant can be asked to implement it, and it is described here as unimplemented because that is what it is.