@adcp/sdk API Reference - v14.0.0-beta.6
    Preparing search index...

    Interface ResolvedBrand

    Brand identity returned by the registry resolver.

    parent_brand is a registry hierarchy reference. New registry responses use the parent brand's canonical domain when the parent has one; older rows may still carry a portfolio-internal brand id from brand.json#/brands[].id. Do not walk parent_brand directly. RegistrySync.getAncestors() is a topology-only compatibility view populated by older/self-hosted brand feed events; public v3 feeds may not populate it, and it is not relationship authorization evidence.

    source reports identity provenance, not relationship authorization. Only relationship_trust: "mutual" | "inline" extends trust to house_domain. Missing relationship_trust means the selected record carries no verdict; it is not equivalent to standalone. When live_brand_json is present, a fresh=true read fell back to stored evidence. Read migration_warnings before relying on fields promoted from a legacy document.

    interface ResolvedBrand {
        canonical_id: string;
        canonical_domain: string;
        brand_name: string;
        names?: { [key: string]: string }[];
        keller_type?: "master" | "sub_brand" | "endorsed" | "independent";
        house_domain?: string;
        claimed_house_domain?: string;
        house_name?: string;
        relationship_trust?:
            | "standalone"
            | "inline"
            | "unverifiable"
            | "mutual"
            | "leaf_only"
            | "house_only";
        relationship_verified_at?: string;
        relationship_declared_at?: string;
        promoted_from_schema?: string;
        migration_warnings?: {
            field: string;
            message: string;
            suggestion?: string;
        }[];
        brand_agent_url?: string;
        brand_manifest?: { [key: string]: unknown };
        source: "enriched" | "community" | "hosted" | "brand_json" | "stub";
        live_brand_json?: {
            valid: boolean;
            url: string;
            status_code?: number;
            errors: { field: string; message: string; severity: "error" }[];
            warnings: { field: string; message: string; suggestion?: string }[];
        };
        parent_brand?: string;
    }

    Hierarchy

    • Omit<GeneratedResolvedBrand, "parent_brand">
      • ResolvedBrand
    Index

    Properties

    canonical_id: string
    acmecorp.com
    
    canonical_domain: string
    acmecorp.com
    
    brand_name: string
    Acme Corp
    
    names?: { [key: string]: string }[]
    keller_type?: "master" | "sub_brand" | "endorsed" | "independent"
    house_domain?: string
    claimed_house_domain?: string

    House the requested domain claims. This field never extends trust on its own; relationship_trust reports whether the reciprocal declaration is current enough to do so.

    house_name?: string
    relationship_trust?:
        | "standalone"
        | "inline"
        | "unverifiable"
        | "mutual"
        | "leaf_only"
        | "house_only"

    How the brand-to-house relationship was established. inline: the house's own document defines the brand. mutual: both sides publish the relationship — the trust-extending edge. leaf_only: the brand claims a house whose reciprocal declaration is missing, not yet active, or too old to extend trust. house_only: a house claims the brand, which has not reciprocated. standalone: the brand claims no house. unverifiable: a claimed house could not be checked.

    relationship_verified_at?: string

    Format: date-time

    When both sides of a mutual relationship were last seen agreeing. Present only for mutual, and it does not advance while the house side is unreachable, so callers can apply their own edge-aging policy.

    2026-07-28T12:00:00Z
    
    relationship_declared_at?: string

    Format: date-time

    When the house declared the relationship in brand_refs[].effective_at, or the resolver's durable first observation if the publisher omitted that field. Callers can apply a declaration-age ceiling independently of relationship_verified_at.

    2026-01-29T12:00:00Z
    
    promoted_from_schema?: string

    Set when a pre-v3 document was promoted to a canonical v3 document for this response. Identity only — legacy relationship data is preserved opaquely, never promoted to a trust claim.

    migration_warnings?: { field: string; message: string; suggestion?: string }[]

    Loss or ambiguity encountered while promoting a pre-v3 document. A house warning means the legacy house object was preserved only as opaque metadata and did not establish a trusted relationship.

    brand_agent_url?: string
    brand_manifest?: { [key: string]: unknown }
    source: "enriched" | "community" | "hosted" | "brand_json" | "stub"

    Provenance of the selected record, not relationship authorization. Deterministic precedence is hosted > brand_json > community > enriched > stub; normal reads prefer the durable stored winner on a source tie, while fresh=true lets a successful live origin read win a tie. brand_json: the domain's own /.well-known/brand.json. hosted: registered by an owner whose control of the domain was verified. community: contributed by a member. enriched: third-party enrichment. stub: a minimal organization-derived placeholder awaiting stronger evidence.

    live_brand_json?: {
        valid: boolean;
        url: string;
        status_code?: number;
        errors: { field: string; message: string; severity: "error" }[];
        warnings: { field: string; message: string; suggestion?: string }[];
    }

    This request's origin-validation diagnostics when fresh=true falls back to a stored registry record. Presence means the response is stored evidence, not a successful live-origin read.

    parent_brand?: string