Get subjects

Returns one subject WITH its contact PII — the only surface that returns it, and only to the owning org.

GET /v1/compliance/subjects/{id}

Addresshttps://api.hanzo.ai/v1/compliance/subjects/{id}
MethodGET
Operationget_compliance_subjects_by_id
AuthAuthorization: Bearer $HANZO_API_KEY

Returns one subject WITH its contact PII — the only surface that returns it, and only to the owning org. The response is never cached by any intermediary.

Request

1 field.

FieldInTypeRequiredDescription
idpathstringyesID is the subject to read, from the path.

Response

StatusBodyMeaning
200compliance.Subjectok
defaultproblem-detailsrefused

200 body — 8 fields.

FieldInTypeAlwaysDescription
createdAtbodyinteger (int64)—CreatedAt is when the subject was first recorded, Unix SECONDS.
emailbodystring—Email is the party's address, when the org supplied one.
idbodystring—ID is the opaque handle every other record uses to point at this party.
kindbodystring—Kind is what is being verified: "individual" (a natural person, so KYC) or "business" (a legal entity, so KYB).
namebodystring—Name is the party's name, under the same PII rule as Email.
orgbodystring—Org is the tenant that is doing the verifying — the party who must answer for this record, not the party being verified.
refbodystring—Ref is the org's OWN identifier for this party, carried so a caller can match a subject back to their system without keeping a second mapping.
updatedAtbodyinteger (int64)—UpdatedAt is when the subject's own fields last changed, Unix seconds.

Failure carries the platform error shape — see Errors.

Examples

hanzo compliance subjects get <id>
import { Configuration, ComplianceApi } from 'hanzoai';

const api = new ComplianceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getComplianceSubjectsById({ id: 'id' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ComplianceApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ComplianceApi(client).get_compliance_subjects_by_id(id='id')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ComplianceAPI.GetComplianceSubjectsById(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, compliance_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = compliance_api::get_compliance_subjects_by_id(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ComplianceApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new ComplianceApi(client).getComplianceSubjectsById();
curl https://api.hanzo.ai/v1/compliance/subjects/<id> \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches compliance through the compliance tool, which names its 16 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_compliance_accreditation"
         }
       }
     }'

Compliance API · All Hanzo APIs · Interactive reference

Was this page useful?