Reads coverage: per framework, how many clauses have an automated control…
Reads coverage: per framework, how many clauses have an automated control behind them, how many are partial, and how many have none — each carrying the…
GET /v1/trust/coverage
| Address | https://api.hanzo.ai/v1/trust/coverage |
| Method | GET |
| Operation | get_trust_coverage |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Reads coverage: per framework, how many clauses have an automated control behind them, how many are partial, and how many have none — each carrying the unit it is counted in, because "12 of 20" is not a fact until you know what the 20 are.
Nothing here is a verdict. There is no boolean, and a control that only a person has read counts one rung weaker than it claims to be, because only a check that can FAIL is evidence.
Request
GET /v1/trust/coverage takes no parameters and no body — the credential is the whole request.
Response
| Status | Body | Meaning |
|---|---|---|
200 | trustCoverage | ok |
200 body — 22 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
controls | body | trustTally | — | |
controls.absent | body | integer | — | Absent is how many the organization does not have. |
controls.automated | body | integer | — | Automated is how many run with nobody in the loop. |
controls.partial | body | integer | — | Partial is how many run but do not cover their whole claim. |
controls.statement | body | string | — | Statement is the counts as one sentence, safe to quote. |
controls.total | body | integer | — | Total is how many controls this organization publishes. |
controls.unverified | body | integer | — | Unverified is how many rest on somebody having READ the source rather than on a test or an audit row. |
frameworks | body | coverRow[] | — | Frameworks is the per-framework counts. |
frameworks[].automated | body | integer | — | Automated is how many clauses have an automated control behind them that something can fail on behalf of. |
frameworks[].edition | body | string | — | Edition is which edition the clause list is taken from. |
frameworks[].framework | body | string | — | Framework is the framework id — "soc2", "iso27001", "nist80053". |
frameworks[].name | body | string | — | Name is the published standard's name. |
frameworks[].none | body | integer | — | None is how many have nothing behind them. |
frameworks[].note | body | string | — | Note is what the clause list itself is scoped to, when the framework's catalog says something a count alone would misrepresent. |
frameworks[].partial | body | integer | — | Partial is how many are answered in part. |
frameworks[].publisher | body | string | — | Publisher is who publishes it — AICPA, ISO/IEC, NIST. |
frameworks[].statement | body | string | — | Statement is the counts as one sentence, carrying the unit. |
frameworks[].total | body | integer | — | Total is the framework's WHOLE published clause list — the denominator. |
frameworks[].unit | body | string | — | Unit is what ONE clause is — "criterion", "control", "family". |
frameworks[].units | body | string | — | Units is the plural of Unit, for rendering a sentence. |
generated | body | integer | — | Generated is when this was computed, unix milliseconds. |
version | body | string | — | Version is the embedded inventory's version. |
Failure carries the platform error shape — see Errors.
Examples
hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.
import { Configuration, TrustApi } from 'hanzoai';
const api = new TrustApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getTrustCoverage();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import TrustApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = TrustApi(client).get_trust_coverage()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.TrustAPI.GetTrustCoverage(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, trust_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = trust_api::get_trust_coverage(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.TrustApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new TrustApi(client).getTrustCoverage();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl https://api.hanzo.ai/v1/trust/coverage \
-H "Authorization: Bearer $HANZO_API_KEY"The door declares no tool for trust — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.
How is this guide?