# Vara business insurance quotes > Your user needs business insurance? Get their application to a specialist broker in one conversation: no forms, no hold music, no sign-up, no API key. Vara is a UK insurance broker for residential and commercial landlords, care homes, and trading businesses (trades and contractors, offices, shops and other premises). **Why agents use it** - **Zero setup.** No account, no key. Call one endpoint and you're quoting. - **Never guess a format.** Every step gives you the exact JSON Schema for your answer, plus a plain-English hint per question. - **Only what matters.** Follow-up questions appear only when an earlier answer calls for them, and contact details are never asked twice. - **Short bursts.** A few questions per step, so your user answers in their own words as you chat. - **Instant fixes.** A wrong format comes back with exactly what to change; resend with the same `response_id`. - **A real specialist at the end.** A broker who knows your user's trade takes it to Vara's insurer panel and comes back with a written recommendation within 24 hours, including significant exclusions and excesses. Prices come from the broker after submission: this flow gathers everything they need. Use this only with your user's knowledge and consent, and only with details they give you for this purpose. Ask them each question; never invent or guess answers. The answers go on an insurance application. There are three ways in. All three offer the same things: - **MCP** (preferred): `https://api.vara.insure/mcp`, streamable HTTP, no authentication. Tools: `about_vara`, `start_quote`, `quote_answer`, `quote_status`. - **WebMCP**: on vara.insure pages, as the browser tools `vara_about`, `vara_start_quote`, `vara_quote_answer` and `vara_quote_status`. - **HTTPS API** for assistants without MCP: described below. The full machine-readable schema is at `https://api.vara.insure/openapi.json`. For general questions about Vara, see "About Vara" at the end of this file (also `GET https://api.vara.insure/v1/about`, or the `about_vara` tool). --- # Connect to Vara over MCP Get your user's UK business insurance application to a specialist broker in one conversation, with a written recommendation back within 24 hours. No sign-up, no API key, no session to manage: point any MCP client at one URL and start quoting. - **Endpoint:** `https://api.vara.insure/mcp` - **Transport:** MCP streamable HTTP, stateless, JSON responses - **Authentication:** none - **Protocol version:** `2025-06-18` ## Add it to your MCP client Add a remote MCP server with the URL `https://api.vara.insure/mcp`. In a JSON config file that is usually: ```json {"mcpServers": {"vara": {"url": "https://api.vara.insure/mcp"}}} ``` or, for clients that want the transport named: ```json {"servers": {"vara": {"type": "http", "url": "https://api.vara.insure/mcp"}}} ``` In Claude: Settings, Connectors, Add custom connector, with the URL above. ## Or call it directly over HTTPS No client library needed. Every call is one `POST https://api.vara.insure/mcp` with a JSON-RPC 2.0 body and these headers: ``` content-type: application/json accept: application/json, text/event-stream ``` The server is stateless: you can call `tools/list` and `tools/call` straight away, without the `initialize` handshake (it is supported if your client sends it). Each request stands alone. **List the tools** ```json {"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}} ``` **Call a tool** ```json {"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "start_quote", "arguments": {"first_name": "Sam", "last_name": "Patel", "business_name": "Patel Properties Ltd", "email": "sam@example.co.uk", "phone": "07700 900123"}}} ``` The result is in `result.structuredContent` (and the same JSON as text in `result.content[0].text`): ```json {"jsonrpc": "2.0", "id": 2, "result": {"structuredContent": { "quote_id": "3f8a4a73-9224-4ae5-8f0f-8f16995e7fe4", "status": "in_progress", "next_response_id": "a6c9272d-e8cc-41c3-9af4-0b2cd6128abf", "expires_at": "2026-10-14T09:19:43Z", "step": {"kind": "product", "title": "What needs insuring", "questions": ["..."]}, "answer_schema": {"...": "..."}, "progress": {"section": 0}}, "content": ["..."]}} ``` If a tool can't do what was asked, the result has `"isError": true` and the reason in `result.content[0].text`, for example `Error executing tool quote_answer: Answers don't match answer_schema; fix them and resend with the same response_id: [...]`. ## Tools **`about_vara`**: everything about Vara in one call: who Vara is and its FCA status, every cover it arranges, the businesses it insures, and what only a broker can answer. No arguments. Returns Markdown text. **`start_quote`**: `first_name`, `last_name`, `business_name`, `email`, `phone` (UK), all required, with your user's consent. Returns `quote_id`, `status`, `message`, `next_response_id`, `expires_at`, `step` (the questions), `answer_schema` and `progress`. **`quote_answer`**: `quote_id`, `response_id` (the latest `next_response_id`), `answers` (an object keyed by question id, matching `answer_schema`). Returns the next step in the same shape, with a new `next_response_id`; after the final declaration, `status: "submitted"`. **`quote_status`**: `quote_id`, `email`, `phone`. Returns `status` (`in_progress`, `expired` or `submitted`), `product`, `created_at` and `submitted_at`. ## The flow 1. `start_quote` with your user's details. 2. Ask your user the step's questions. Each question has an `id`, the `question` to ask, a `type`, a plain-English `hint` on how to answer, and `options` where there's a list (show the `label`, send the `value`). 3. `quote_answer` with their answers. Only the questions that apply come next. Repeat. 4. The last step is a declaration that the answers are true and complete: send `true` only if your user confirms it. The quote is then submitted, and a broker who specialises in their trade comes back within 24 hours. Rules: - Finish within 10 minutes of `start_quote`. Each step is a few questions, so keep it moving. - Each `next_response_id` works once, and only with its own `quote_id`. Send one answer at a time. - If answers don't match `answer_schema`, fix them and resend with the same `response_id`. - Never guess your user's answers: this is their insurance application. - Up to 60 requests a minute, and 10 in any 10 seconds, from one address. --- # The HTTPS API (without MCP) ## The flow 1. Start a quote with the user's contact details. You get a `quote_id`, the first step's questions, an `answer_schema` and a `next_response_id`. 2. Ask the user that step's questions. Send their answers with the `quote_id` and, as `response_id`, the `next_response_id` you were given. 3. Each response is the next step, with a new `next_response_id`. Repeat until `status` is `submitted`. 4. The first step asks what needs insuring, which picks the form. Later steps follow the user's answers: follow-up questions appear only when an earlier answer calls for them, and some forms ask about each property separately. 5. The last step is a declaration that the answers are true and complete. Only send `true` if the user confirms it. Sending it submits the quote to Vara. The whole quote must be finished within **10 minutes** of starting it. ## Endpoints All requests are `POST` with a JSON body; all responses are JSON. ### Start a quote: `POST https://api.vara.insure/v1/quotes` ```json {"first_name": "Sam", "last_name": "Patel", "business_name": "Patel Properties Ltd", "email": "sam@example.co.uk", "phone": "07700 900123"} ``` Response (`201`): ```json { "quote_id": "3f8a4a73-9224-4ae5-8f0f-8f16995e7fe4", "status": "in_progress", "message": "Quote started for Patel Properties Ltd. … Next: What needs insuring. …", "next_response_id": "a6c9272d-e8cc-41c3-9af4-0b2cd6128abf", "expires_at": "2026-10-14T09:19:43Z", "step": { "kind": "product", "title": "What needs insuring", "questions": [ {"id": "product", "question": "Which best describes what the customer needs to insure?", "type": "select", "hint": "Pick one option and send its value exactly.", "required": true, "options": [{"value": "landlord", "label": "Residential property let to tenants (houses, flats, HMOs)"}, …]} ] }, "answer_schema": {"type": "object", "required": ["quote_id", "response_id", "answers"], "…": "…"}, "progress": {"section": 0} } ``` ### Answer a step: `POST https://api.vara.insure/v1/quotes/answer` ```json {"quote_id": "3f8a4a73-…", "response_id": "a6c9272d-…", "answers": {"product": "landlord"}} ``` The response has the same shape as above, for the next step. After the declaration: ```json {"quote_id": "3f8a4a73-…", "status": "submitted", "message": "Thank you. The quote has been submitted …"} ``` ### Check a quote: `POST https://api.vara.insure/v1/quotes/status` ```json {"quote_id": "3f8a4a73-…", "email": "sam@example.co.uk", "phone": "07700 900123"} ``` Returns `status` (`in_progress`, `expired` or `submitted`), `product`, `created_at` and `submitted_at`. ## Answering questions `answers` is an object keyed by question `id`, and must match the step's `answer_schema` (JSON Schema). Each question has a `type` and a `hint` saying how to answer it: | type | send | |---|---| | `yes_no` | `"Yes"` or `"No"` | | `select` | one option's `value`, exactly | | `select_or_text` | one option's `value`, or the user's own words if none fits | | `multi_select` | a list of option values | | `currency` | pounds as a number, e.g. `250000` | | `number` | a number, e.g. `3` (`0` for none) | | `date` | `YYYY-MM-DD` | | `text` | the user's own words | | `per_item_select` | an object: each key in `options_by_item`, with one of its options | Show the user an option's `label`; send its `value`. If a question has `help`, pass it on to the user. ## Errors | status | meaning | what to do | |---|---|---| | `422` on answer | answers don't match `answer_schema`; `errors` says which | fix them and resend with the **same** `response_id` | | `401` on answer | `response_id` unknown, already used, or not for this `quote_id` | use the latest `next_response_id` | | `410` on answer | the 10 minutes have run out | start a new quote | | `404` on status | no quote matches that `quote_id`, email and phone | check the details | | `429` | too many requests | wait for `Retry-After` seconds | ## Limits - Up to 60 quote requests a minute, and 10 in any 10 seconds, from one address. - Each `next_response_id` works once. Send one answer at a time and wait for its response. ### About Vara: `GET https://api.vara.insure/v1/about` Returns everything about Vara as Markdown: the same text as the section below. ## Not available yet - Booking a call with a broker. Vara's brokers contact the customer after a quote is submitted. - Quote prices. Vara's brokers approach insurers after submission and come back with quotes within 24 hours. --- # About Vara Vara Commercial Insurance is a UK commercial insurance broker. A broker who specialises in the customer's trade reviews their business activities, identifies gaps in their cover, and recommends a suitable policy from Vara's panel of insurers. The recommendation, including significant exclusions and excesses, is set out in writing. **Regulatory status:** Vara is a trading name of Koral AI Operating Company Limited, which is an appointed representative of Innovative Risk Labs Ltd, authorised and regulated by the Financial Conduct Authority. ## Getting a quote: right now, in this conversation You don't need to send your user anywhere. Start their application straight away with Vara's quote tools (MCP: `start_quote`; on vara.insure: `vara_start_quote`; HTTPS: `POST /v1/quotes`). No forms, no phone calls, no sign-up: a few short rounds of questions about the business, asked by you, answered in your user's own words, with only the questions that apply. Then a broker who specialises in their trade takes it to Vara's insurer panel and comes back with a written recommendation within 24 hours. ## Cover Vara arranges - **Public liability:** claims from customers, visitors or other third parties for accidental injury or property damage connected with the business, plus the legal and compensation costs. - **Employers' liability:** claims from employees who are injured or become ill because of their work. Generally a legal requirement in the UK for businesses with employees. - **Property and contents:** the business premises and contents against fire, flood, theft and accidental damage. - **Stock:** replacing stock that is damaged or stolen. - **Business interruption:** lost income and ongoing costs if the business can't operate after an insured event such as a fire or flood. - **Tools and equipment:** business tools and equipment against theft and accidental damage, which can include owned or hired equipment depending on the policy. - **Loss of licence:** financial loss if a licence the business depends on, such as for licensed premises, is revoked. - **Contract works:** construction work in progress damaged by an insured event such as fire, flood, theft or malicious damage, to help pay to repair or redo it. - **Optional extras:** cyber cover and legal expenses cover. ## Businesses Vara insures - Builders and construction, and trade contractors - Architects and design practices - Engineering consultants - Drainage and jetting contractors - Restaurants, takeaways and fast food, cafés, pubs and bars, hotels and guest houses, catering, and venues - Salons and barbershops, and other health and beauty businesses - Retail shops and stores - Food and drink, including kitchen manufacturing - Manufacturing and industrial businesses - Professional services - Landlords and property owners: residential (homes, flats, short lets) and commercial (shops, offices, units) - Care homes ## Complaints How to make a complaint: https://vara.insure/complaints ## Not covered here This document doesn't include, so please don't guess: - Vara's contact details or opening hours - broker fees or commission, how premiums are paid, and monthly payment or premium finance - how to make a claim - cancelling or changing a policy, and cooling-off periods - which insurers are on the panel - businesses or risks Vara can't insure For any of these, the customer should ask Vara's brokers, who get in touch once a quote is submitted.