openapi: 3.0.0
info:
title: LeO Public API - prospects
description: External API for account management, credits, prospect search, and contact enrichment This
document carries only the `prospects` operations, split from LeO's published openapi.json.
version: '1.0'
servers:
- url: https://api.meetleo.com
description: 'LeO Public API production base (verified live 2026-08-14: GET /health -> 200, GET /openapi.json
-> 200)'
tags:
- name: prospects
description: Search, retrieve and enrich commercial-insurance prospects across LeO's insights database.
paths:
/v1/prospects/search:
post:
operationId: ProspectsController_search
summary: Search prospects
description: "Synchronous search over the Leo insights database. Returns firmographics (employees,\
\ vertical, NAICS, website), and insurance signals (workers comp, OSHA, DOT, Form 5500, IRS 990\
\ for non-profits).\n\n**When to use:** building a prospecting list, exploring market segments,\
\ or previewing match volume before paying for enrichment.\n\n**Does NOT consume enrichment credits.**\
\ Contacts are always `null` here — call `POST /v1/prospects/enrich` to get contact emails.\n\n\
**Example — Texas trucking fleets, 25–250 employees, with WC and DOT data:**\n```json\n{\n \"\
filters\": [{\n \"state\": [\"TX\"],\n \"naicsList\": [\"484110\", \"484121\"],\n \"\
minEmployeesNumber\": 25,\n \"maxEmployeesNumber\": 250,\n \"hasWc\": true,\n \"hasDot\"\
: true\n }],\n \"page\": 1,\n \"limit\": 25\n}\n```"
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchProspectsDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/SearchProspectsResponseData'
'401':
description: Unauthorized
'422':
description: Validation error
'429':
description: Too many requests (HTTP API stage throttling or upstream limits)
tags:
- prospects
security:
- bearer: []
/v1/prospects/{prospectId}:
get:
operationId: ProspectsController_getById
summary: Get a single prospect by ID
description: 'Returns full firmographic and insurance data for a single prospect.
**Consumes 1 credit** per call (same as a 1-result search).
Use `POST /v1/prospects/search` first to discover matching prospect IDs, then call this endpoint
to fetch the full record.'
parameters:
- name: prospectId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ProspectResponse'
'401':
description: Unauthorized
'402':
description: Insufficient credits
'404':
description: Prospect not found
'429':
description: Too many requests (HTTP API stage throttling or upstream limits)
tags:
- prospects
security:
- bearer: []
/v1/prospects/enrich:
post:
operationId: ProspectsController_enrich
summary: Enrich prospects with contact data
description: "Asynchronous. Searches for matching prospects, reserves credits up to `maxProspects`,\
\ and queues a contact-enrichment job that resolves decision-maker emails and titles.\n\n**Flow:**\n\
1. POST this endpoint → **202 Accepted** with `taskId`, `pollUrl`, `creditsReserved`, `estimatedWaitSeconds`\
\ (~120s typical).\n2. Poll `GET /v1/jobs/{taskId}` every 5s until `data.status` is `completed`\
\ or `failed` (allow up to 5 minutes).\n3. Inspect per-prospect `enrichmentStatus`: `enriched`\
\ (email returned, credit charged), `no_email` (no contact found, no credit charged), `failed`.\n\
\n**Tip:** narrow filters return higher `enriched` rates. The same filter shape as `/v1/prospects/search`\
\ works here — preview with search first, then enrich.\n\n**Example — enrich up to 25 Texas trucking\
\ fleets:**\n```json\n{\n \"filters\": [{\n \"state\": [\"TX\"],\n \"naicsList\": [\"484110\"\
, \"484121\"],\n \"minEmployeesNumber\": 25,\n \"maxEmployeesNumber\": 250,\n \"hasWc\"\
: true,\n \"hasDot\": true\n }],\n \"maxProspects\": 25\n}\n```"
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnrichProspectsDto'
responses:
'202':
description: Accepted — poll GET /v1/jobs/{taskId} for results
content:
application/json:
schema:
$ref: '#/components/schemas/EnrichProspectsResponseData'
'401':
description: Unauthorized
'402':
description: Insufficient credits
'422':
description: No prospects match filters
'429':
description: Too many requests (HTTP API stage throttling or upstream limits)
tags:
- prospects
security:
- bearer: []
components:
securitySchemes:
bearer:
scheme: bearer
bearerFormat: JWT
type: http
schemas:
BenefitsRedFlags:
type: object
properties:
benefitsRagFlagComplianceAmendmentNeeded:
type: boolean
nullable: true
example: null
description: Compliance Amendment Needed — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionComplianceAmendmentNeeded:
type: string
nullable: true
example: null
description: Compliance Amendment Needed — human-readable explanation when flagged; null otherwise.
benefitsRagFlagCorrectiveDistributions:
type: boolean
nullable: true
example: null
description: Corrective Distributions — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionCorrectiveDistributions:
type: string
nullable: true
example: null
description: Corrective Distributions — human-readable explanation when flagged; null otherwise.
benefitsRagFlagDecliningPlanAssets:
type: boolean
nullable: true
example: null
description: Declining Plan Assets — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionDecliningPlanAssets:
type: string
nullable: true
example: null
description: Declining Plan Assets — human-readable explanation when flagged; null otherwise.
benefitsRagFlagDelinquentContributions:
type: boolean
nullable: true
example: null
description: Delinquent Contributions — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionDelinquentContributions:
type: string
nullable: true
example: null
description: Delinquent Contributions — human-readable explanation when flagged; null otherwise.
benefitsRagFlagExcessiveServiceProviderFees:
type: boolean
nullable: true
example: null
description: Excessive Service Provider Fees — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionExcessiveServiceProviderFees:
type: string
nullable: true
example: null
description: Excessive Service Provider Fees — human-readable explanation when flagged; null
otherwise.
benefitsRagFlagFidelityBondTooLow:
type: boolean
nullable: true
example: null
description: Fidelity Bond Too Low — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionFidelityBondTooLow:
type: string
nullable: true
example: null
description: Fidelity Bond Too Low — human-readable explanation when flagged; null otherwise.
benefitsRagFlagFrozenPlan:
type: boolean
nullable: true
example: null
description: Frozen Plan — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionFrozenPlan:
type: string
nullable: true
example: null
description: Frozen Plan — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHas5500Audit:
type: boolean
nullable: true
example: null
description: Has 5500 Audit — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionHas5500Audit:
type: string
nullable: true
example: null
description: Has 5500 Audit — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighAverageAccountBalance:
type: boolean
nullable: true
example: null
description: High Average Account Balance — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionHighAverageAccountBalance:
type: string
nullable: true
example: null
description: High Average Account Balance — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighBrokerCommissionRate:
type: boolean
nullable: true
example: null
description: High Broker Commission Rate — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionHighBrokerCommissionRate:
type: string
nullable: true
example: null
description: High Broker Commission Rate — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighExpenseRatio:
type: boolean
nullable: true
example: null
description: High Expense Ratio — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionHighExpenseRatio:
type: string
nullable: true
example: null
description: High Expense Ratio — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighFees:
type: boolean
nullable: true
example: null
description: High Fees — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionHighFees:
type: string
nullable: true
example: null
description: High Fees — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighParticipantTurnover:
type: boolean
nullable: true
example: null
description: High Participant Turnover — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionHighParticipantTurnover:
type: string
nullable: true
example: null
description: High Participant Turnover — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighPremiumPerCapita:
type: boolean
nullable: true
example: null
description: High Premium Per Capita — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionHighPremiumPerCapita:
type: string
nullable: true
example: null
description: High Premium Per Capita — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighRetireeAssets:
type: boolean
nullable: true
example: null
description: High Retiree Assets — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionHighRetireeAssets:
type: string
nullable: true
example: null
description: High Retiree Assets — human-readable explanation when flagged; null otherwise.
benefitsRagFlagHighTurnoverRatio:
type: boolean
nullable: true
example: null
description: High Turnover Ratio — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionHighTurnoverRatio:
type: string
nullable: true
example: null
description: High Turnover Ratio — human-readable explanation when flagged; null otherwise.
benefitsRagFlagIndirectCompensationHeavy:
type: boolean
nullable: true
example: null
description: Indirect Compensation Heavy — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionIndirectCompensationHeavy:
type: string
nullable: true
example: null
description: Indirect Compensation Heavy — human-readable explanation when flagged; null otherwise.
benefitsRagFlagLargeAssetDrop:
type: boolean
nullable: true
example: null
description: Large Asset Drop — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionLargeAssetDrop:
type: string
nullable: true
example: null
description: Large Asset Drop — human-readable explanation when flagged; null otherwise.
benefitsRagFlagLateFiling:
type: boolean
nullable: true
example: null
description: Late Filing — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionLateFiling:
type: string
nullable: true
example: null
description: Late Filing — human-readable explanation when flagged; null otherwise.
benefitsRagFlagLowParticipationRate:
type: boolean
nullable: true
example: null
description: Low Participation Rate — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionLowParticipationRate:
type: string
nullable: true
example: null
description: Low Participation Rate — human-readable explanation when flagged; null otherwise.
benefitsRagFlagMissingAudit:
type: boolean
nullable: true
example: null
description: Missing Audit — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionMissingAudit:
type: string
nullable: true
example: null
description: Missing Audit — human-readable explanation when flagged; null otherwise.
benefitsRagFlagMultiplePlansSingleEmployer:
type: boolean
nullable: true
example: null
description: Multiple Plans Single Employer — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionMultiplePlansSingleEmployer:
type: string
nullable: true
example: null
description: Multiple Plans Single Employer — human-readable explanation when flagged; null
otherwise.
benefitsRagFlagNegativeNetAssets:
type: boolean
nullable: true
example: null
description: Negative Net Assets — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionNegativeNetAssets:
type: string
nullable: true
example: null
description: Negative Net Assets — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNegativeNetIncome:
type: boolean
nullable: true
example: null
description: Negative Net Income — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionNegativeNetIncome:
type: string
nullable: true
example: null
description: Negative Net Income — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNetParticipantOutflow:
type: boolean
nullable: true
example: null
description: Net Participant Outflow — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionNetParticipantOutflow:
type: string
nullable: true
example: null
description: Net Participant Outflow — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNewPlan:
type: boolean
nullable: true
example: null
description: New Plan — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionNewPlan:
type: string
nullable: true
example: null
description: New Plan — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNoCurrentBroker:
type: boolean
nullable: true
example: null
description: No Current Broker — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionNoCurrentBroker:
type: string
nullable: true
example: null
description: No Current Broker — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNoEmployerContributions:
type: boolean
nullable: true
example: null
description: No Employer Contributions — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionNoEmployerContributions:
type: string
nullable: true
example: null
description: No Employer Contributions — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNoInsuranceOnWelfarePlan:
type: boolean
nullable: true
example: null
description: No Insurance On Welfare Plan — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionNoInsuranceOnWelfarePlan:
type: string
nullable: true
example: null
description: No Insurance On Welfare Plan — human-readable explanation when flagged; null otherwise.
benefitsRagFlagNoStopLoss:
type: boolean
nullable: true
example: null
description: No Stop Loss — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionNoStopLoss:
type: string
nullable: true
example: null
description: No Stop Loss — human-readable explanation when flagged; null otherwise.
benefitsRagFlagPlanRecentlyTerminated:
type: boolean
nullable: true
example: null
description: Plan Recently Terminated — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionPlanRecentlyTerminated:
type: string
nullable: true
example: null
description: Plan Recently Terminated — human-readable explanation when flagged; null otherwise.
benefitsRagFlagPolicyExpiringSoon:
type: boolean
nullable: true
example: null
description: Policy Expiring Soon — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionPolicyExpiringSoon:
type: string
nullable: true
example: null
description: Policy Expiring Soon — human-readable explanation when flagged; null otherwise.
benefitsRagFlagQualifiedAuditOpinion:
type: boolean
nullable: true
example: null
description: Qualified Audit Opinion — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionQualifiedAuditOpinion:
type: string
nullable: true
example: null
description: Qualified Audit Opinion — human-readable explanation when flagged; null otherwise.
benefitsRagFlagRelatedPartyTransactions:
type: boolean
nullable: true
example: null
description: Related Party Transactions — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionRelatedPartyTransactions:
type: string
nullable: true
example: null
description: Related Party Transactions — human-readable explanation when flagged; null otherwise.
benefitsRagFlagSingleCarrierDependency:
type: boolean
nullable: true
example: null
description: Single Carrier Dependency — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionSingleCarrierDependency:
type: string
nullable: true
example: null
description: Single Carrier Dependency — human-readable explanation when flagged; null otherwise.
benefitsRagFlagSmallPlanLargeAssets:
type: boolean
nullable: true
example: null
description: Small Plan Large Assets — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionSmallPlanLargeAssets:
type: string
nullable: true
example: null
description: Small Plan Large Assets — human-readable explanation when flagged; null otherwise.
benefitsRagFlagStaleValuation:
type: boolean
nullable: true
example: null
description: Stale Valuation — true = flagged, false = not flagged, null = insufficient data.
benefitsRagFlagDescriptionStaleValuation:
type: string
nullable: true
example: null
description: Stale Valuation — human-readable explanation when flagged; null otherwise.
benefitsRagFlagUnderfundedPension:
type: boolean
nullable: true
example: null
description: Underfunded Pension — true = flagged, false = not flagged, null = insufficient
data.
benefitsRagFlagDescriptionUnderfundedPension:
type: string
nullable: true
example: null
description: Underfunded Pension — human-readable explanation when flagged; null otherwise.
required:
- benefitsRagFlagComplianceAmendmentNeeded
- benefitsRagFlagDescriptionComplianceAmendmentNeeded
- benefitsRagFlagCorrectiveDistributions
- benefitsRagFlagDescriptionCorrectiveDistributions
- benefitsRagFlagDecliningPlanAssets
- benefitsRagFlagDescriptionDecliningPlanAssets
- benefitsRagFlagDelinquentContributions
- benefitsRagFlagDescriptionDelinquentContributions
- benefitsRagFlagExcessiveServiceProviderFees
- benefitsRagFlagDescriptionExcessiveServiceProviderFees
- benefitsRagFlagFidelityBondTooLow
- benefitsRagFlagDescriptionFidelityBondTooLow
- benefitsRagFlagFrozenPlan
- benefitsRagFlagDescriptionFrozenPlan
- benefitsRagFlagHas5500Audit
- benefitsRagFlagDescriptionHas5500Audit
- benefitsRagFlagHighAverageAccountBalance
- benefitsRagFlagDescriptionHighAverageAccountBalance
- benefitsRagFlagHighBrokerCommissionRate
- benefitsRagFlagDescriptionHighBrokerCommissionRate
- benefitsRagFlagHighExpenseRatio
- benefitsRagFlagDescriptionHighExpenseRatio
- benefitsRagFlagHighFees
- benefitsRagFlagDescriptionHighFees
- benefitsRagFlagHighParticipantTurnover
- benefitsRagFlagDescriptionHighParticipantTurnover
- benefitsRagFlagHighPremiumPerCapita
- benefitsRagFlagDescriptionHighPremiumPerCapita
- benefitsRagFlagHighRetireeAssets
- benefitsRagFlagDescriptionHighRetireeAssets
- benefitsRagFlagHighTurnoverRatio
- benefitsRagFlagDescriptionHighTurnoverRatio
- benefitsRagFlagIndirectCompensationHeavy
- benefitsRagFlagDescriptionIndirectCompensationHeavy
- benefitsRagFlagLargeAssetDrop
- benefitsRagFlagDescriptionLargeAssetDrop
- benefitsRagFlagLateFiling
- benefitsRagFlagDescriptionLateFiling
- benefitsRagFlagLowParticipationRate
- benefitsRagFlagDescriptionLowParticipationRate
- benefitsRagFlagMissingAudit
- benefitsRagFlagDescriptionMissingAudit
- benefitsRagFlagMultiplePlansSingleEmployer
- benefitsRagFlagDescriptionMultiplePlansSingleEmployer
- benefitsRagFlagNegativeNetAssets
- benefitsRagFlagDescriptionNegativeNetAssets
- benefitsRagFlagNegativeNetIncome
- benefitsRagFlagDescriptionNegativeNetIncome
- benefitsRagFlagNetParticipantOutflow
- benefitsRagFlagDescriptionNetParticipantOutflow
- benefitsRagFlagNewPlan
- benefitsRagFlagDescriptionNewPlan
- benefitsRagFlagNoCurrentBroker
- benefitsRagFlagDescriptionNoCurrentBroker
- benefitsRagFlagNoEmployerContributions
- benefitsRagFlagDescriptionNoEmployerContributions
- benefitsRagFlagNoInsuranceOnWelfarePlan
- benefitsRagFlagDescriptionNoInsuranceOnWelfarePlan
- benefitsRagFlagNoStopLoss
- benefitsRagFlagDescriptionNoStopLoss
- benefitsRagFlagPlanRecentlyTerminated
- benefitsRagFlagDescriptionPlanRecentlyTerminated
- benefitsRagFlagPolicyExpiringSoon
- benefitsRagFlagDescriptionPolicyExpiringSoon
- benefitsRagFlagQualifiedAuditOpinion
- benefitsRagFlagDescriptionQualifiedAuditOpinion
- benefitsRagFlagRelatedPartyTransactions
- benefitsRagFlagDescriptionRelatedPartyTransactions
- benefitsRagFlagSingleCarrierDependency
- benefitsRagFlagDescriptionSingleCarrierDependency
- benefitsRagFlagSmallPlanLargeAssets
- benefitsRagFlagDescriptionSmallPlanLargeAssets
- benefitsRagFlagStaleValuation
- benefitsRagFlagDescriptionStaleValuation
- benefitsRagFlagUnderfundedPension
- benefitsRagFlagDescriptionUnderfundedPension
DotData:
type: object
properties:
units:
type: number
nullable: true
example: 87
description: Number of power units (trucks/tractors) registered with FMCSA.
drivers:
type: number
nullable: true
example: 112
description: Number of CDL drivers registered with FMCSA.
violations:
type: boolean
example: false
bipdPrimary:
nullable: true
allOf:
- $ref: '#/components/schemas/DotInsuranceLine'
bipdExcess:
nullable: true
allOf:
- $ref: '#/components/schemas/DotInsuranceLine'
cargo:
nullable: true
allOf:
- $ref: '#/components/schemas/DotInsuranceLine'
surety:
nullable: true
allOf:
- $ref: '#/components/schemas/DotInsuranceLine'
required:
- units
- drivers
- violations
- bipdPrimary
- bipdExcess
- cargo
- surety
DotInsuranceLine:
type: object
properties:
renewalDate:
type: string
nullable: true
example: '2026-08-15'
description: DOT coverage renewal date (ISO YYYY-MM-DD).
carrier:
type: string
nullable: true
example: Progressive Commercial
description: DOT coverage carrier name.
required:
- renewalDate
- carrier
EnrichProspectsDto:
type: object
properties:
filters:
description: Filter group(s) selecting which prospects to enrich. Conditions inside one object
are **ANDed**. Narrow filters return better contact match rates and avoid burning credits
on `no_email` rows.
example:
- state:
- TX
naicsList:
- '484110'
- '484121'
minEmployeesNumber: 25
maxEmployeesNumber: 250
hasWc: true
hasDot: true
type: array
items:
$ref: '#/components/schemas/SearchProspectsFiltersDto'
maxProspects:
type: number
description: Cap on the number of prospects to enrich in this run (1–100). Credits reserved
scale with this number — start small (e.g. 10) for new integrations.
default: 100
minimum: 1
maximum: 100
example: 25
required:
- filters
EnrichProspectsResponseData:
type: object
properties:
taskId:
type: string
format: uuid
example: 550e8400-e29b-41d4-a716-446655440000
description: Opaque job identifier — pass to GET /v1/jobs/{taskId}.
status:
type: string
example: pending
description: Initial job state immediately after accept.
pollUrl:
type: string
example: /v1/jobs/550e8400-e29b-41d4-a716-446655440000
description: Relative path to poll for job completion.
creditsReserved:
type: number
example: 25
description: Credits reserved up front (≤ maxProspects). Final charge in metadata.creditsUsed
on the completed job — only `enriched` rows are billed.
estimatedWaitSeconds:
type: number
description: Expected job duration in seconds (typical ~120).
example: 120
required:
- taskId
- status
- pollUrl
- creditsReserved
- estimatedWaitSeconds
InsuranceLineData:
type: object
properties:
renewalDate:
type: string
nullable: true
example: '2026-09-01'
description: Policy renewal date (ISO YYYY-MM-DD). Present for WC, pension, and welfare/benefits
lines.
carrier:
type: string
nullable: true
example: Travelers
description: Insurance carrier name for this line.
broker:
type: string
nullable: true
example: Marsh McLennan Agency
description: Broker name. Present for WC, pension, and welfare/benefits lines.
participants:
type: number
nullable: true
example: 142
description: Number of covered participants. Only present for pension and welfare/benefits lines.
required:
- renewalDate
- carrier
OshaData:
type: object
properties:
healthViolations:
type: boolean
example: false
safetyViolations:
type: boolean
example: true
required:
- healthViolations
- safetyViolations
PaginationResponse:
type: object
properties:
page:
type: integer
example: 1
description: 1-based page number returned.
limit:
type: integer
example: 25
description: Page size used for this response.
total:
type: integer
example: 1842
description: Total prospects matching the filters across all pages.
required:
- page
- limit
- total
ProspectInsurance:
type: object
properties:
wc:
nullable: true
allOf:
- $ref: '#/components/schemas/InsuranceLineData'
pension:
nullable: true
allOf:
- $ref: '#/components/schemas/InsuranceLineData'
benefits:
nullable: true
allOf:
- $ref: '#/components/schema
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/leo/refs/heads/main/openapi/leo-prospects-api-openapi.yml