Discover which compliance programs apply to an item, and read the questionnaire
you will need to answer.
GraphQL
The complianceRequirements query is the entry point to Zonos Clarify. Given an
item's HS code and route, it returns the compliance programs that are
triggered, and lets you traverse each program's full questionnaire structure —
questions, options, and branching logic. Use it to decide whether a shipment
needs compliance answers and to render your own questionnaire UI.
Scope required
This query requires the COMPLIANCE_READ scope. See
OAuth for authenticating API requests.
Pass an item's hsCode and shipToCountry to find which programs apply. The
result is a paginated connection of ComplianceRequirement nodes, each pointing
at the ComplianceProgram it triggers.
A shipFromCountry of null on a requirement means the program applies
regardless of origin. When you supply shipFromCountry in the filter, both
origin-specific rows and "any origin" rows are matched.
complianceRequirements accepts a ComplianceRequirementFilter plus standard
cursor pagination arguments (first / after for forward paging, last /
before for backward paging).
Filter field↕
Type↕
Notes↕
hsCode
String
Exact HS code match. Mutually exclusive with hsCodePrefix.
hsCodePrefix
String
Prefix match (digits and dots only, max 12 chars). Mutually exclusive with hsCode.
shipToCountry
CountryCode
Destination country.
shipFromCountry
CountryCode
Origin country. Rows with a null origin ("any origin") also match.
programTypes
[ComplianceProgramType!]
Match only these program types. Empty list = no filter.
For example, list every PGA requirement for cosmetics chapter 3304:
Each ComplianceProgram exposes its currentVersion — the ACTIVE questionnaire
— and that version's questions in display order. Every question declares its
answerType, whether it is required, its options (for select types), and an
optional displayCondition that branches the questionnaire. Read this structure
to render your own UI or to understand exactly what an importer must provide.
In the example above, contains_color_additives is only shown when
intended_use equals cosmetic — that's the displayCondition at work. For the
full branching model and dynamic (optionsSource) options, see
How it works.
Check compliance requirements
Check compliance requirements
Discover which compliance programs apply to an item, and read the questionnaire you will need to answer.
GraphQL
The
complianceRequirementsquery is the entry point to Zonos Clarify. Given an item's HS code and route, it returns the compliance programs that are triggered, and lets you traverse each program's full questionnaire structure — questions, options, and branching logic. Use it to decide whether a shipment needs compliance answers and to render your own questionnaire UI.This query requires the
COMPLIANCE_READscope. See OAuth for authenticating API requests.Discover applicable programs
Pass an item's
hsCodeandshipToCountryto find which programs apply. The result is a paginated connection ofComplianceRequirementnodes, each pointing at theComplianceProgramit triggers.query ComplianceRequirements($filter: ComplianceRequirementFilter!) {complianceRequirements(filter: $filter, first: 10) {totalCountpageInfo {hasNextPageendCursor}edges {cursornode {idhsCodeshipToCountryshipFromCountryprogram {idcodenameprogramTypeauthorityjurisdictionstatusstrictnesscurrentVersion {idversionstatus}}}}}}A
shipFromCountryofnullon a requirement means the program applies regardless of origin. When you supplyshipFromCountryin the filter, both origin-specific rows and "any origin" rows are matched.Filtering and pagination
complianceRequirementsaccepts aComplianceRequirementFilterplus standard cursor pagination arguments (first/afterfor forward paging,last/beforefor backward paging).hsCodeStringhsCodePrefix.hsCodePrefixStringhsCode.shipToCountryCountryCodeshipFromCountryCountryCodenullorigin ("any origin") also match.programTypes[ComplianceProgramType!]For example, list every PGA requirement for cosmetics chapter
3304:query PgaRequirements($filter: ComplianceRequirementFilter!) {complianceRequirements(filter: $filter, first: 25) {totalCountedges {node {hsCodeshipToCountryprogram {codename}}}}}Read a program's questionnaire
Each
ComplianceProgramexposes itscurrentVersion— theACTIVEquestionnaire — and that version'squestionsin display order. Every question declares itsanswerType, whether it isrequired, itsoptions(for select types), and an optionaldisplayConditionthat branches the questionnaire. Read this structure to render your own UI or to understand exactly what an importer must provide.query QuestionnaireStructure($filter: ComplianceRequirementFilter!) {complianceRequirements(filter: $filter, first: 1) {edges {node {program {codenamecurrentVersion {versionstatusquestions {codeprompthelpTextanswerTyperequiredsectiondisplayOrderoptionsSourceoptions {valuelabeldisplayOrder}displayCondition {questionCodeoperatorvalues}}}}}}}}In the example above,
contains_color_additivesis only shown whenintended_useequalscosmetic— that's thedisplayConditionat work. For the full branching model and dynamic (optionsSource) options, see How it works.Next steps
ComplianceRequirementFilter
Was this page helpful?