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

# Partner fleet health

> Inspect provider-to-client connection facts, certification, and source-level health without exposing client credentials or unrelated inventory.

The **Partner → Fleet** page gives a provider operator a source-by-source view of the client inventory explicitly connected to its capabilities. It keeps three concepts separate:

* **Provider ownership** identifies the organization that operates a provider and its capabilities.
* **Partner status** records optional registration and commercial standing. Owning a private provider does not automatically make an organization a registered Partner.
* **Client connections** record the client's request and authorization, the provider's acceptance, validation, activation, quarantine, and binding revocation as distinct facts.

The page is available to organization administrators for a provider-owning organization. A child organization must switch to its parent organization rather than inheriting the parent's fleet view.

## Read the fleet projection

Use the authenticated endpoint that backs the page:

```http theme={null}
GET /api/v2/provider/fleet?windowHours=168
Authorization: Bearer <token>
```

`windowHours` defaults to `168` and accepts values up to `720`. It controls the observation window used for source-level call and failure metrics.

The response groups explicitly bound client sources under the provider capability they use:

```json theme={null}
{
  "generatedAt": "2026-08-03T12:00:00.000Z",
  "projection": {
    "rowLimit": 2000,
    "truncated": false
  },
  "ownerOrganization": {
    "customerId": 42,
    "name": "Acme Media",
    "company": "Acme Media"
  },
  "workspace": {
    "registrationStatus": "REGISTERED",
    "commercialStatus": "ACTIVE"
  },
  "operators": [
    {
      "operatorUid": "20000000-0000-4000-8000-000000000001",
      "displayName": "Acme operator",
      "capabilities": [
        {
          "capabilityUid": "30000000-0000-4000-8000-000000000001",
          "type": "SALES",
          "displayName": "Acme sales",
          "certification": {
            "assertionKey": "creative_sync_format_negotiation",
            "status": "PASSED",
            "observedAt": "2026-08-03T10:00:00.000Z",
            "expiresAt": "2026-09-02T10:00:00.000Z"
          },
          "summary": {
            "connectedSources": 1,
            "activeSources": 1,
            "healthySources": 1,
            "degradedSources": 0,
            "unhealthySources": 0,
            "unknownSources": 0,
            "quarantinedSources": 0
          },
          "sources": [
            {
              "bindingUid": "40000000-0000-4000-8000-000000000001",
              "sourceId": "inventory-source-7",
              "sourceName": "Client storefront",
              "client": {
                "customerId": 84,
                "name": "Client Media",
                "company": "Client Media"
              },
              "connection": {
                "clientRequestedAt": "2026-08-03T09:00:00.000Z",
                "clientAuthorizedAt": "2026-08-03T09:01:00.000Z",
                "providerAcceptedAt": "2026-08-03T09:02:00.000Z",
                "validation": {
                  "status": "PASSED",
                  "observedAt": "2026-08-03T09:03:00.000Z",
                  "errorCode": null,
                  "errorSummary": null,
                  "owner": null
                },
                "activatedAt": "2026-08-03T09:04:00.000Z",
                "activationCurrent": true,
                "quarantinedAt": null,
                "revokedAt": null
              },
              "health": {
                "status": "healthy",
                "previousStatus": "degraded",
                "observedAt": "2026-08-03T11:55:00.000Z",
                "lastOkAt": "2026-08-03T11:55:00.000Z",
                "error": null,
                "metrics": {
                  "callCount": 120,
                  "failureCount": 1,
                  "failureRate": 0.0083,
                  "p95LatencyMs": 184
                }
              }
            }
          ]
        }
      ]
    }
  ]
}
```

<Note>
  The example shortens some nested objects for readability. Treat the API response as the source of truth for nullable lifecycle fields. `activatedAt` is historical evidence; only `activationCurrent: true` means that activation belongs to the current, unrevoked client-authorization epoch.
</Note>

The projection reads at most 2,000 joined fleet rows per request and reports that ceiling in `projection.rowLimit`. When `projection.truncated` is `true`, the page warns that its per-capability source totals are partial rather than presenting them as complete.

## Interpret health safely

Health is computed per bound inventory source from that source's observations. A healthy sibling does not hide another source's failure, and the creative canary assertion does not become a general fleet-health badge.

Errors expose a safe code, summary, owner (`CLIENT`, `PROVIDER`, or `SCOPE3`), and an optional correlation reference for provider-owned remediation. Client-owned and Scope3-owned lifecycle details remain generic in the provider view; their raw summaries and correlation references are not returned. The projection does not return credentials, raw upstream payloads, or inventory belonging to unrelated clients. Missing provider acceptance and malformed certification evidence fail closed.

An administrator can use the corresponding inventory-source diagnostics view to confirm which capability a source is mapped to, whether the provider accepted it, and whether the connection is active or quarantined.
