---
title: "Whether every wire-contract publishing tool row records a valid wire contract"
method: GET
path: "/v1/admin/integrations/wire-contract-digests"
tags: ["admin"]
---

# Whether every wire-contract publishing tool row records a valid wire contract

`GET /v1/admin/integrations/wire-contract-digests`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/admin/integrations/wire-contract-digests`
- Auth: HTTP bearer

Audits every enabled tool row backed by an ACTIVE account of a provider that publishes a wire contract: it must record a digest that still matches its own stored schema and the live adapter contract. ``ok`` is false while any row is missing, mismatched, or unverifiable. Re-running the backfill clears ``missing`` and ``mismatched``; ``unverifiable`` it cannot: the provider will not answer for that ref, so read ``blocked_by`` first. Note ``ok: true`` with ``checked: 0`` means the scan matched no rows, not that the fleet is verified. Read-only. Internal admin users only.

## Response `200`

Successful Response

- WireContractDigestReport: Whether every enabled tool row of a wire-contract publishing provider records a wire contract.
  - `ok` boolean, required: True only when nothing is missing, mismatched, or unverifiable.
  - `checked` integer, required
  - `verified` integer, required
  - `missing` integer, required
  - `mismatched` integer, required
  - `unverifiable` integer, required
  - `failures` WireContractDigestFailure[]: A capped sample of the offending rows, for diagnosis.
    - `tenant_id` string, required
    - `tool_definition_id` string, required
    - `name` string, required: The tool's dispatch name within its tenant.
    - `tool_ref` string, nullable: Provider action this row dispatches, from its config.
    - `provider` string, required
    - `reason` string, required: ``missing`` (no digest recorded), ``mismatched`` (the recorded digest no longer describes the row's own stored state), or ``unverifiable`` (the provider publishes no contract for this ref: retired, unknown, or unconfigured).
    - `blocked_by` string, nullable: Why no usable live digest could be obtained, when that is the reason. Deployment faults: ``provider_not_configured`` (no adapter registered in this process), ``publisher_capability_missing`` (a provider we ship a contract for whose adapter is not offering it), or ``digest_error`` (the capability raised, or returned something that is not a string). Data faults: ``provider_publishes_no_contract`` (this provider has no fixed wire), ``digest_blank`` (it answered with an empty string), or ``no_tool_ref`` (the row's own config carries no usable ref). Null for an ordinary retired or unknown ref, which is the one case the provider answered normally.
  - `failures_truncated` boolean, required: True when more rows failed than the sample lists.

## Other responses

- `401`: Unauthorized
- `403`: Permission denied (PERMISSION_DENIED) or email not verified (EMAIL_NOT_VERIFIED)
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
