Only publisher domains are inventory. Your brand domain is never a product’s coverage.
Registered domain
Set on the account (see Accounts and organizations). It’s verified when it matches an admin’s verified email domain, or when Semicola staff approve it; otherwise it stays pending.Brand domain
The brand domain is your buyer-facing identity, so it isn’t taken on assertion. Set it from the Listing page or withset_storefront_operator_domain. Semicola reads the domain’s brand.json
for your name and logo. Until it verifies, the Brand domain readiness check (operator_domain)
stays partial.
It matches your registered domain
Once the registered domain is verified, a brand domain equal to it verifies automatically. If it’s still pending, chase the registered domain, not the brand domain.It differs
A rebrand, an alias or a holding company. Two things must hold, in order:- Your registered domain is verified. Nothing gets around this.
- Published evidence links the two domains. Either domain’s
brand.jsonlists the other inauthorized_operators, or both resolve to the same house brand.
Changing it
- Setting a new brand domain re-runs verification from scratch.
- Re-saving the same domain changes nothing, so a profile update can’t un-verify you.
- Lookups fail closed: if the
brand.jsonlookup fails, the result is “not verified”. Re-save the domain to retry.
When it stays pending
- Is the registered domain verified? Nothing else can succeed first.
- Does the brand domain match it? If so, step 1 is the blocker.
- If it differs, is the linking evidence published in
brand.json?
Publisher domains
update_business_profile sets publisherDomains (up to 128) along with the rest of your business
profile. The Publisher domains readiness check needs a publisher domain on the storefront, and
Publisher authorization checks it against the brand registry. When your catalog lists a
publisher domain that isn’t yours, Product publisher domains turns partial and names it.
Public listing domain
Separate from all of the above: the hostname where your public listing is served.- Publish the listing on the marketplace (
publish_discoverywithvisibility: "marketplace"). - Save the hostname with
save_discovery_hostname(hostname, likelisting.example.com; replace an existing one withconfirmReplace, or passnullto remove it). It returns the one CNAME record to add at your registrar. - Verify with
activate_discovery_hostname. It reads the routing proof the hostname serves at/.well-known/semicola-discovery-registration. Verifying never publishes. - Make it public with
publish_discoveryandvisibility: "public".
Not available yet
- Brand-hierarchy evidence from an external registry: linking evidence is
brand.jsononly. - Staff review of pending linking evidence, and asking Semi to file that review for you.
adagents.jsonauthorization per publisher domain: Publisher authorization checks the brand registry, not each domain’sadagents.json.