docs/user_guides/schemas/UsdProfiles/ClaimsAPI.md
% WARNING: THIS FILE IS GENERATED BY genSchemaDocs. DO NOT EDIT. % Generated: 03:55PM on July 10, 2026
(ClaimsAPI)=
ClaimsAPI attaches two tiers of profile data to a
prim, stored as sub-dictionaries in the prim's customData metadata under the
key profilesInfo:
Capability usage (DCC-authored): which USD capabilities this prim relies on, each annotated with a degradation class:
hard — load-bearing; a consumer that lacks this capability will produce
incorrect results.soft — the prim degrades gracefully if the capability is absent.enhancement — the capability improves quality but its absence is
acceptable.Capability usages can be authored manually via SetCapabilityUsage(), or
derived automatically by calling PopulateCapabilityUsages().
The automatic path does two things in one call:
UsdProfileRegistry::GetSchemaImpliedCapabilities() for every
applied API schema on every descendant prim (including the root) and merges
the results using most-conservative-class-wins.stage.GetUsedLayers(), identifies each layer's file format type,
and merges any impliesCapabilities declared by that format plugin (via
UsdProfileRegistry::GetFileFormatImpliedCapabilities()). This ensures that
referencing a .mtlx layer, for example, automatically contributes
usd.core.mtlx.fileFormat to the prim's capability usages.The merged result is written to this prim's capabilityUsages metadata.
This is the recommended approach for pipeline post-processes and DCC save hooks.
See {ref}usdProfiles_schema_implied_capabilities for how API schemas declare
their implied capabilities, and {ref}usdProfiles_using_claimsapi for
end-to-end workflow examples.
Profile compatibility (pipeline-authored): which profiles (tagged nodes in
the UsdProfileRegistry DAG) this prim is compatible with, plus an optional
per-profile exception set listing capabilities that are intentionally out of
compliance.
A compatibility declaration without exceptions is an unqualified assertion that the prim satisfies every capability in the profile's transitive closure. A declaration with exceptions is an audited degradation record: the prim satisfies the profile except for the listed capabilities, which are present but failing audit.
This tier is authored by a pipeline conformance step or platform-compatibility audit tool.
Use IsCompatibleWith() for the common single-profile check. It calls
UsdProfileRegistry::CoversCapabilities() with the stored capability usages
as the required set and the stored exception list for that profile:
status, results = api.IsCompatibleWith("studio.vfx.26.08")
if status == PR.QueryStatus.ValidPath:
print("fully compatible")
For bulk raw access, use GetProfilesInfo() / SetProfilesInfo().
:depth: 2
:local:
:backlinks: none