Broker.insure

Developers

Plug any agent into the insurance network.

One Brief schema, four surfaces. Applicants and real-estate agents prepare requests from any AI assistant. Brokers pull Briefs and post terms back from their own systems and agents. The platform carries quotes; it never makes them.

Connect an AI assistant

Add a custom connector (sometimes called a custom MCP server or app) in your assistant and give it this address. No key is needed for the public tools.

https://broker.insure/api/mcp

Then ask in plain words, for example “find insurance options for a home with polybutylene plumbing in Calgary” or, as a real-estate agent, “prepare a referral for my client’s closing on November 28”. Submitting a client referral always runs a permission step: the assistant shows the exact wording, and the client confirms and consents themselves through a one-time link.

Broker API keys and scopes

Create keys from the Desk. A key is shown once, stored only as a hash, and can be revoked at any time. Every action a key takes is recorded as that key on behalf of your brokerage.

ScopeAllows
offers:readList the offers, acceptances and questions your brokerage holds.
brief:readRead the Brief for a request you hold an active assignment on.
offers:respondAccept, ask a question or decline an offer.
quotes:writePost or revise a quote record on a request you accepted.
notes:writeAdd a note to the linked Desk case.
webhooks:manageFlush and replay webhook deliveries.
keys:manageReserved for key administration.
POST /api/desk/keys          x-broker-token: …
{ "name": "AMS integration", "scopes": ["offers:read", "brief:read", "offers:respond", "quotes:write"] }

REST API v1

MethodPathWhat it does
GET/api/v1/meYour brokerage, the key’s scopes and limits.
GET/api/v1/offersOffers and assignments, with why you were chosen and the closing date.
GET/api/v1/requests/{id}/briefNeeds and facts with their certainty. No contact details at this stage.
POST/api/v1/assignments/{id}/respondBody {action: accept | ask | decline, note}. Atomic, first valid accept wins.
POST/api/v1/requests/{id}/notesA note on the linked Desk case.
GET/api/v1/events?since=Polling feed of events on requests you hold.
POST/api/desk/quotesPost a quote record. Revisions supersede, never overwrite.

Errors are JSON with an error message and a code. 401 means a missing or invalid key; 403 means the key lacks the scope.

Desk MCP for brokers’ agents

The same actions as the REST API, as MCP tools, so a brokerage’s assistant can watch its offers, pull a Brief, run the brokerage’s own rater or market process and post the terms back. Every tool result repeats the rule that matters: the agent acts under its brokerage’s licence; broker.insure never quotes, advises or binds.

{
  "mcpServers": {
    "broker-insure-desk": { "url": "https://broker.insure/api/mcp-desk", "headers": { "Authorization": "Bearer bi_live_…" } }
  }
}

Signed webhooks

Subscribe an HTTPS endpoint to any of these events. Each delivery carries a timestamp and an HMAC-SHA256 signature over the timestamp and the raw body, using the secret shown once when you subscribe. Failed deliveries retry with backoff and can be replayed.

assignment.offered · assignment.expired · assignment.accepted · assignment.declined · clarification.asked · request.updated · quote.requested · quote.received

// Node: verify a delivery
import { createHmac, timingSafeEqual } from 'node:crypto';
function verify(secret, header, rawBody) {
  const { t, v1 } = Object.fromEntries(header.split(',').map((p) => p.split('=')));
  if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
  const mac = createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
  return timingSafeEqual(Buffer.from(mac), Buffer.from(v1));
}

The quote record

A quote is a record of terms a licensed party issued, carried with its provenance. Currency is ISO 4217 and amounts are integers in minor units. Unknown stays unknown. A revision becomes a new version and the earlier one is kept as the applicant saw it. An expired quote cannot be selected, and selecting records a choice, never coverage.

{
  "requestId": "BI-33B8-F9DF-D749", "assignmentId": "asg_…",
  "quote": {
    "issuingParty": "Example Mutual", "currency": "CAD",
    "premiumMinor": 218400, "premiumPeriod": "annual",
    "limits": [{ "k": "Dwelling", "v": "650,000" }],
    "subjectivities": [{ "k": "Plumbing", "v": "Licensed plumber's letter within 30 days" }],
    "expiresAt": "2026-11-20T23:59:00-07:00"
  }
}

The rules every integration inherits

  • broker.insure never quotes, advises, binds or takes commission. Brokers pay a flat fee per introduction.
  • An agent acts under its brokerage’s licence and key, and every action is attributed to that key.
  • The applicant sees every recipient, the reason they were chosen and every quote’s source.
  • Briefs carry no contact details at this stage. Contact follows acceptance, through the Desk.

Status: the public MCP is live. Broker keys, the Desk MCP, webhooks and quote records run against demo brokers in Alberta while each market’s operating policy is confirmed.