AI Agent Integration

KBIA Agent API

Kevin Brown Insurance Agency supports machine-to-machine NJ insurance quote sessions via a REST API. This page documents how AI agents, autonomous systems, and developers can access our platform programmatically.

Agent Rules & Constraints

NJ Only

KBIA is licensed in New Jersey exclusively. Only accept zip codes starting with 07 or 08.

Zero Hallucination

Never provide premium estimates. Only report what comes back in the agent_response field.

Human in the Loop

Every quote requires a licensed NJ agent review. Inform users of the 2–4 hour SLA.

No PII Collection

Never request SSNs, credit card numbers, or medical records. These are collected in secure human channels.

API Endpoints

GET/api/productsAuth: None

List all available insurance products with required fields and eligibility rules.

POST/api/ucp/quote_sessionsAuth: None

Create a new quote session. Returns session ID and list of missing required fields.

PATCH/api/ucp/quote_sessions/:idAuth: None

Hydrate a session with collected data fields. Set ready_for_review: true when complete.

GET/api/ucp/quote_sessions/:idAuth: None

Poll session status. When status is agent_replied, the agent_response field is populated.

Session Flow

The complete sequence from product discovery to receiving a licensed agent's quote response.

  1. 1

    Discover the Catalog

    GET /api/products

    Read the full product catalog. Each product includes required_fields, eligibility_rules, and the ucp_session_endpoint.

  2. 2

    Verify NJ Territory

    // Check zip_code starts with 07 or 08

    KBIA is licensed in New Jersey only. Zip codes must begin with 07 or 08. Reject non-NJ requests before creating a session.

  3. 3

    Create a Session

    POST /api/ucp/quote_sessions
    { product_id, initial_data, callback_webhook_url }

    Include your callback_webhook_url for async notification. Response includes session ID and missing_required_fields array.

  4. 4

    Collect Missing Fields

    // Use missing_required_fields array
    // to prompt the user for each value

    Iterate through missing_required_fields. Prompt your user for each one. Never fabricate values — only report what the user provides.

  5. 5

    Hydrate the Session

    PATCH /api/ucp/quote_sessions/:id
    { data: { vin: "...", nj_zip: "07302" } }

    Send collected fields incrementally. The API returns an updated missing_required_fields after each PATCH.

  6. 6

    Submit for Agent Review

    PATCH /api/ucp/quote_sessions/:id
    { ready_for_review: true }

    When all required fields and contact info are collected, set ready_for_review: true. This starts the 2–4 hour agent SLA clock.

  7. 7

    Receive Agent Response

    // Your webhook receives:
    { status: "agent_replied", agent_response: { ... } }

    A licensed NJ agent reviews the session and responds within 2–4 hours. Your webhook receives the full agent_response payload.

Webhook Callbacks

Include callback_webhook_url in your POST request to receive an automatic notification when the agent replies, rather than polling the GET endpoint.

// POST /api/ucp/quote_sessions
{
  "product_id": "contractors-gl",
  "initial_data": { "nj_zip": "07302", "annual_revenue": 250000 },
  "contact_info": { "first_name": "Alex", "email": "alex@example.com" },
  "callback_webhook_url": "https://your-agent.ai/kbia-callback"
}

// When agent replies, your webhook receives:
{
  "session_id": "abc123",
  "status": "agent_replied",
  "agent_response": {
    "carrier_name": "Travelers NJ",
    "preliminary_premium_estimate": "$1,850/year",
    "agent_notes": "...",
    "next_steps_url": "https://kevinbrowninsuranceagency.com/contact"
  }
}

Building an Integration?

For API keys, rate limit increases, partnership inquiries, or technical support, contact Kevin directly.

Licensed NJ Resident Agency

Local NJ Coverage Binder

Licensed NJ independent insurance agency. Get real options from Kevin — no automated call centers, no bots.

NJ Producer License #3003694894
South Plainfield, NJ · All 21 Counties