Skip to main content

Market Intelligence

Bold Penguin's Market Intelligence capabilities help determine which carriers are most likely to bind a given risk, and how to rank them. Two complementary APIs are available:

APIMethodBest forAuth
Market Intelligence AgentPOST (SSE)A ready-to-use, ranked carrier recommendation for a specific risk — the Market Intelligence agent does the analysis and returns a broker-friendly resultSession cookie
Market Recommendation (legacy)GETAggregate, historical carrier statistics for a risk (quote rate, premiums, market score)OAuth2

The Market Intelligence Agent API is the recommended integration surface: a single call invokes the Market Intelligence agent, which predicts the carriers most likely to bind, cross-references the carriers eligible to quote the risk, and returns a ranked recommendation. It is the same agent that powers the market intelligence step in the agentic flow. The Market Recommendation API exposes the lower-level historical statistics that (along with the prediction model) feed the agent; it is retained for existing integrations, but new integrations should use the agent endpoint.


Market Intelligence Agent API

The Market Intelligence Agent API is a single endpoint that invokes the Market Intelligence agent (mkt_intel_agent) for a given risk. The agent predicts the carriers most likely to bind, cross-references the carriers eligible to quote the risk, and returns a broker-friendly, ranked recommendation — rather than raw model scores. It is the same agent used by the agentic flow.

note

This endpoint is being introduced. The pattern, auth, and streaming behavior below follow Bold Penguin's standard agent-invocation gateway; confirm the published host and the exact request schema with the platform team before integrating.

Endpoint

POST https://<host>/mkt_intel_agent/invocations
Accept: text/event-stream

The gateway exposes agent invocation as POST /{target_agent}/invocations; for market intelligence the target agent is mkt_intel_agent. The request body is forwarded to the agent and the agent's response is streamed back: a Server-Sent Event (SSE) stream when the agent streams, or a single JSON body otherwise.

Authentication

Authenticate with your Bold Penguin session cookie — the same mechanism used by the agentic flow /stream endpoint. The gateway forwards your session credential to the agent runtime.

Cookie: auth-alpha=<your-session-token>

A Authorization: Bearer <token> header is also accepted. See the Agent Integration Guide for the full authentication flow.

Session affinity

Pass an x-session-id header to pin follow-up calls to the same session; the gateway echoes it back. Reuse the value on subsequent requests for the same risk.

Request

Send the risk as a message with a free-text instruction plus a structured data part. The data part carries the risk context; the agent reads it directly.

At minimum, provide:

FieldTypeRequiredDescription
state_cdstring (2 char)Two-letter US state code
naics_descstringNAICS description or code
productsstring[]Coverage product(s), e.g. ["GL"], ["BOP","WORK"]

Beyond the minimum, the data part accepts any datapoint you have about the application — business identity (e.g. business_name, industry) and the standard firmographic and risk-eligibility application fields (mqs_*), such as legal entity, year established, employee counts, revenue, payroll, building attributes, and prior insurance / loss history. Include whatever the application has populated using the standard field names; the more complete the context, the more refined the recommendation. There is no fixed schema to conform to and unrecognized fields are ignored. (See the Agent Integration Guide §17 — Market Intelligence Agent.)

curl -X POST https://<host>/mkt_intel_agent/invocations \
-H "Accept: text/event-stream" \
-H "Content-Type: application/json" \
-H "x-session-id: <optional-session-id>" \
-b "auth-alpha=<your-session-token>" \
-d '{
"message": {
"role": "user",
"parts": [
{"type": "text", "text": "Find the carriers most likely to bind this risk."},
{"type": "data", "data": {
"state_cd": "TX",
"naics_desc": "Masonry contractors",
"products": ["GL"],
"business_name": "Acme Masonry",
"industry": "construction",
"mqs_legal_entity": "LLC",
"mqs_year_established": 2015,
"mqs_full_time_employees": 12,
"mqs_estimated_annual_revenue": 1500000
}}
]
}
}'

Response

The agent streams progress events and a final result using the same SSE wire format as the agentic flow (see the Agent Integration Guide §4 and §8). The events you will see:

EventMeaning
subagent_contentIncremental tokens as the agent analyzes the risk — display as progress
workingStatus updates emitted between the agent's internal tool calls
mkt_intelThe market intelligence result — carriers likely to bind, with a reasoning summary
done / completeEnd of the turn / stream

The final result is a broker-friendly ranked carrier recommendation: carriers eligible to quote the risk are listed first, sorted by appetite/likelihood, with the best option per coverage highlighted. When no admitted carrier matches, the agent falls back to E&S options.

event: subagent_content
data: {"content": "Analyzing appetite for Masonry contractors in TX…"}

event: mkt_intel
data: {
"carriers_likely_to_bind": [
{"carrier": "Coterie", "product": "General Liability", "quote_likelihood": 0.91, "recommended": true, "rank": 1},
{"carrier": "Hiscox", "product": "General Liability", "quote_likelihood": 0.78, "recommended": false, "rank": 2}
],
"summary": "risk_profile:Acme Masonry|construction|TX"
}

event: done
data: {"pipeline_stage": null}

For the mkt_intel carrier-object fields, see the Agent Integration Guide §17 (Market Intelligence Agent).

What the agent does for you

A single call to this endpoint runs the full market-intelligence step: it predicts quote likelihood and likely premium per carrier, blends in historical market-recommendation statistics, cross-references the carriers eligible to quote the risk, and returns the ranked result. Partners integrate against this one agent endpoint rather than calling the underlying prediction and recommendation services separately.

Controlling the recommendation with externalized prompts

The agent's recommendation behavior — how carriers are ranked, when one is skipped, tie-breaks, how premium is weighed, and the E&S fallback — lives in the agent's prompt, not in code. Prompts are tenant-scoped and versioned: activate a new prompt for your tenant and it takes effect on the next invocation, with no code deploy. When your tenant has no active prompt, the agent uses the Bold Penguin default.

Create, version, activate, diff, and roll back prompts through the tenant-scoped Prompt Management API (base path /agentic-flow-gateway/prompts), using agent_name = mkt_intel_agent. See the Prompt Management guide for the full reference.

# Publish and activate a new ranking rule for your tenant's market intelligence agent
curl -X POST https://<host>/agentic-flow-gateway/prompts/mkt_intel_agent/versions \
-H "Content-Type: application/json" \
-b "auth-alpha=<your-session-token>" \
-d '{
"bump": "minor",
"notes": "Down-rank carriers with avg response time > 30s",
"activate": true,
"prompt_text": "<full agent prompt text…>"
}'
note

Prompt edits change agent behavior, not the request/response contract or the tool set.


Market Recommendation API (legacy)

Legacy

This endpoint predates the Market Intelligence Agent API and is largely subsumed by it. It remains documented for existing integrations; new integrations should use the Market Intelligence Agent API above, which incorporates this data automatically.

The Market Recommendation API returns carrier intelligence data related to a given risk. The service helps determine carrier tiering, ranking, and/or exclusion at time of eligibility determination based on a set of rules established by the partner.

Authentication

Follow the instructions for OAuth2 authentication as described here.

Endpoint

Staging

https://carrier-engine-uat.alpha.boldpenguin.com/market_recommendation

Production

https://carrier-engine.boldpenguin.com/market_recommendation

Methods

GET

Request Parameters

Query Parameters

  • state
    • The state code or full state name
    • Type: String
    • Required: Yes
  • naics
    • The business type being insured
    • String
    • Required: Yes
    • NOTE: NAICS descriptions are currently derived from the 2012 NAICS and must match exactly
  • product
    • The coverage type to search for. The product param can be passed in multiple times to query for additional products
    • Type: String
    • Required: Yes
    • Examples:
      • BOP
      • WC
      • Workers Compensation
      • Umbrella
      • bond
      • GL
      • PL
      • OTHER
  • carrier
    • The carrier to search for. This field can be a partial match. The carrier param can be passed in multiple times to query for additional carriers
    • Type: String
    • Required: No

Response Elements

  • state_cd
    • The state code
  • carrier_id
    • The uuid of the carrier
  • carrier_nm
    • The name of the carrier
  • naics_desc
    • The business type
  • product_desc
    • The coverage type
  • avg_carrier_questions
    • The average number of questions on a carrier's question set
  • avg_premium
    • The average premium amount over a certain time period
  • avg_response_times
    • The average API quote request response time in seconds
  • bindable_rate
    • Percent of successful quote requests that have ready_to_bind in response_meta
  • bp_market_score
    • Bold Penguin proprietary multi-factor value
  • percentile
    • Lower and upper bound of the Median Premium range
  • quote_rate
    • The percentage of successful quotes out of all quote requests over a certain time period
  • submissions
    • The total number of submissions over a certain time period

Examples

Sample Request

curl -L -g 
'https://carrier-engine-uat.alpha.boldpenguin.com/market_recommendation?state=Oregon&naics=Janitorial%20services&product[]=GL&product[]=BOP&carrier[]=hiscox&carrier[]=cna'
--header 'Authorization: bearer bps_thisismytokentherearemanylikeitbutthisoneismine'

Sample Response

[
{
"state_cd": "OR",
"carrier_id": "a6e4388b-0305-4d88-ba46-48cb44ea643f",
"carrier_nm": "Hiscox",
"naics_desc": "Janitorial services",
"product_desc": "General Liability",
"bindable_rate": "0.469627742",
"percentile_25": "522.99",
"percentile_75": "1973.82",
"median_premium": "634.77",
"bp_market_score": "3150.28",
"quote_rate_7days": "0.8",
"avg_response_times": "13.3",
"quote_rate_180days": "0.786331",
"avg_premium_180days": "1285.32",
"submissions_180days": "79",
"avg_carrier_questions": "2.466666667"
}
]