{"kalicart_discovery_profile":"merchant-1.1","title":"Kalicart — merchant storefront agent discovery profile","human_summary":"A storefront publishes <link rel=\"kalicart-catalog\"> and <link rel=\"kalicart-agent\"> (same href) in the raw HTML document from the storefront server (not only after JavaScript runs) pointing at GET https://dashboard.kalicart.com/v1/agent-bridge/{opaque_token}. The JSON is scoped to exactly one merchant catalog. It is orthogonal to the federated global catalog on https://global.kalicart.com.","scope_type":"single_merchant_catalog","semantics_document":"https://dashboard.kalicart.com/.well-known/kalicart-merchant-discovery-profile.json","machine_readable_fields_in_agent_bridge_json":{"intent_flags":"single_merchant_only, global_indexable, federated_search_source, agent_read_surface (booleans)","crawler_policy":"allow_llm_training, allow_live_agent_reads, allow_global_indexing","capabilities":"search, offers, availability, cart, checkout, payments, mutations, read_only","authentication":"required, scheme for public surface; private_api for X-Api-Key","freshness":"inventory_freshness, price_freshness, cache TTLs — not realtime POS","merchant":"id, canonical_domain from storefront URL","anti_global_semantics":"explicit do-not-index-as-global flags"},"contrast_with_global_federation":{"global_discovery_host":"https://global.kalicart.com","note":"Multi-merchant read APIs live only under global.kalicart.com /v1/global-catalog/*. Do not follow a merchant agent-bridge URL when building a global index, or substitute global URLs for token-scoped merchant reads."},"http_affordances":{"agent_bridge_path_pattern":"/v1/agent-bridge/{opaque_token}","link_response_header":"GET /v1/agent-bridge/:token includes Link: profile + describedby pointing at this document URL (RFC 8288).","vendor_media_type":"application/vnd.kalicart.merchant-discovery+json","vendor_content_negotiation":"Send Accept: application/vnd.kalicart.merchant-discovery+json on GET agent-bridge to receive that Content-Type; JSON body is identical to default application/json. Response includes Vary: Accept."},"recommended_head_markup":{"order":["Optional HTML comment (Kalicart dashboard) reminding that tags must be server-rendered","link rel=describedby → this profile URL","link rel=profile → same profile URL (for HTML parsers that skip HTTP Link headers)","link rel=kalicart-catalog → agent-bridge URL","link rel=kalicart-agent → same agent-bridge URL","meta name=kalicart:scope content=single-merchant-catalog","meta name=kalicart:global-index content=false","meta name=kalicart:indexable-by-global content=false"],"note":"Copy the exact block from the Kalicart dashboard (Agent discovery tab). Tags must appear in the HTML source returned by the storefront; client-side-only injection is invisible to many agents. After token rotation, update hrefs if the discovery URL changed."},"optional_body_fallback":{"purpose":"Some fetchers strip <head>; optional <script type=\"application/ld+json\"> DataCatalog with the same agent-bridge URL as \"url\". Place in theme footer or body if your platform allows."}}