> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Read the consolidated trust posture

> One brand-verification answer across 10DLC, toll-free, WhatsApp, RCS, branded calling, and number regulatory KYC — with a single trust score and the next actions to raise it.

## Read the consolidated trust posture

Brand verification is siloed per channel: 10DLC and toll-free live in messaging compliance, WhatsApp in channel settings, RCS in sender registration, branded calling in voice trust, and number KYC in regulatory records. This endpoint is for the operations or compliance owner who needs one answer to "what blocks our deliverability today," and for dashboards that render a single trust hub instead of six channel pages. Every source read is fail-soft — one degraded subsystem never blanks the whole hub.

The response carries three blocks. `summary` rolls the channels into counters plus a 0-100 `trustScore` (= verified channels / applicable channels) and an `overallState`. `channels` lists every trust surface with its `state` (`not_started` | `in_progress` | `verified` | `action_required` | `unavailable`), a short tenant-readable `detail` ("2 of 3 numbers verified"), the provider's `reason` when action is required, and a `manageHref` the dashboard deep-links for that surface. `nextActions` prioritizes what to fix first, each entry pointing at the dashboard path for that channel (`priority` is `urgent` or `todo`).

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": {
      "summary": {
        "applicable": 6,
        "verified": 4,
        "inProgress": 1,
        "actionRequired": 1,
        "notStarted": 0,
        "trustScore": 67,
        "overallState": "action_required"
      },
      "channels": [
        {
          "key": "messaging_10dlc",
          "label": "10DLC Brand (US A2P)",
          "pillar": "messaging",
          "state": "verified",
          "detail": "Campaign approved",
          "reason": null,
          "verifiedAt": "2026-05-12T09:14:42.000Z",
          "manageHref": "/settings/compliance"
        },
        {
          "key": "branded_calling",
          "label": "Branded Calling",
          "pillar": "voice",
          "state": "action_required",
          "detail": "Provider rejected the claim",
          "reason": "Logo file must be under 500 KB",
          "verifiedAt": null,
          "manageHref": "/settings/voice"
        }
      ],
      "nextActions": [
        {
          "channel": "branded_calling",
          "label": "Re-upload the branded-calling logo under 500 KB",
          "href": "/settings/voice",
          "priority": "urgent"
        }
      ]
    },
    "meta": {
      "request_id": "req_brand",
      "timestamp": "2026-08-01T12:00:00.000Z"
    }
  }
  ```
</ResponseExample>

A channel with `state: "unavailable"` is excluded from the `trustScore` denominator (the feature is not hooked up in your account), so the score stays honest either way.
