Learn how to quote with the CPQ API
Get the list of plans
GET /plans
Submit proposal information
POST /proposal
Poll until the proposal is ready
GET /proposal/<proposal_id>
Mark the proposal as sold
POST /proposal/<proposal_id>/mark-sold
https://underwriting-api.joinarlo.com/cpq
.
The OpenAPI documentation provides comprehensive details for each endpoint, including response types and sample responses. This resource helps streamline your development process while reducing the need for numerous test API requests to our testing environment.
plan_id
can be retrieved from the bulk /plans
endpoint.
plan_ids
you wish to be quoted. Note that Arlo groups plans internally by “program”, so even when requesting a single plan_id
, the response may include all plans associated with that program. You can disregard any additional plans not relevant to your needs.
Proposal creation is “asynchronous”. In other words, you will receive a proposal_id
in the response.
url
and message
:
message
to the broker after they’ve marked the group as soldurl
quote_assessment_type
field, which will be either FULLY_UNDERWRITTEN
or ILLUSTRATIVE
.
FULLY_UNDERWRITTEN
: Rates are generated through a comprehensive medical underwriting process.ILLUSTRATIVE
: Rates are based on a simplified assessment using only the group’s demographic information.quote_assessment_type
for each plan quote and ensure the appropriate context is communicated to the broker.
arlo_test_*
. Production API keys follow the format arlo_live_*
.
Arlo-API-Version
header. The current version is 2025-04-01
. New API versions will be released only when introducing breaking changes.
Note: You can use the production URL for testing by simply using your test API key instead of your live key.
/proposal
endpoints return mock responses to simplify testing. Mock mode is automatically enabled when using test API keys.
Mock mode behavior:
arlo-mock-response
header to false
for full integration testing. We recommend using this option sparingly and only as a final verification step before production, to minimize unnecessary load on the sandbox environment.
x-request_id
in the response headers. This ID can be used to correlate requests with responses and for debugging purposes. We recommend
logging these IDs if you ever need to reach out to us about an issue.