{"capabilities":{"streaming":false},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"description":"Server-rendered brand campaign pages with a grounded conversational Q\u0026A endpoint. Plain HTTP+JSON — not a JSON-RPC A2A server; see documentationUrl for the exact contract.","documentationUrl":"https://ask.highwirepro.com/llms.txt","name":"Brand campaigns on ask.highwirepro.com","provider":{"organization":"SparkleTree","url":"https://sparkletree.io"},"skills":[{"description":"POST https://ask.highwirepro.com/ask with JSON body {\"question\":\"...\"} — on a brand domain the host resolves the brand; optionally add {\"campaign\":\"{campaign-uuid}\"}, where the uuid is the {campaign-id} segment of any /c/ page URL. Without \"campaign\" the question runs against the brand's whole live roster (brand concierge): the response carries \"campaign\" and \"links\" only when the answer recommends a specific campaign, and no \"homeCampaignId\". Response JSON: {\"answer\",\"campaign\"?,\"links\":[{\"label\",\"url\"}],\"homeCampaignId\"?,\"session\"}. Echo \"session\" in the next request to continue the conversation; brand-scope threads move across campaigns without losing history. With a pinned campaign, a recommended sibling's identity and call to action ride \"campaign\"/\"links\" while \"homeCampaignId\" keeps naming the grounding campaign.","examples":["What is this campaign about?","What does the brand offer right now?"],"id":"ask","name":"Ask about live campaigns","tags":["campaigns","qa"]}],"supportedInterfaces":[{"transport":"HTTP+JSON","url":"https://ask.highwirepro.com/ask"}],"url":"https://ask.highwirepro.com/","version":"1"}