Learn how to quote with the CPQ API
Welcome to the Arlo CPQ API Documentation. The CPQ API provides a RESTful interface that allows you to obtain quotes from Arlo through simple HTTP requests.
Please reach out to karthik+cpq@joinarlo.com if you have any questions!
The end-to-end process is very simple:
Get the list of plans
Get the list of plans offered by Arlo - GET /plans
Submit proposal information
Submit proposal information - POST /proposal
Poll until the proposal is ready
Poll until the proposal is ready - GET /proposal/<proposal_id>
Mark the proposal as sold
Mark the proposal as sold - POST /proposal/<proposal_id>/mark-sold
You may find the OpenAPI docs here and the raw JSON specification here. The base API URL is 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.
A plan is defined by a unique combination of network, PBM, vendor stack, and benefit details (including accumulators and cost shares by benefit category). You can retrieve detailed breakdowns of all plans offered by Arlo through these endpoints. The responses provide comprehensive benefits information, including accumulators, cost share data by benefit category, and other plan specifications.
This endpoint returns all available plans that can be quoted and their detailed information.
This endpoint returns the detailed information of a specific plan. The plan_id
can be retrieved from the bulk /plans
endpoint.
To obtain quotes from Arlo, create a proposal for each new opportunity. A proposal represents a unique pairing of quoting broker and group. Note that any modification to group information—including name, effective date, headquarters state, or census data—requires creating a new proposal.
This endpoint creates a new proposal.
In order to create a proposal, you must provide details about the group, all the individuals to be covered by the plan (including dependents), and all information about the quoting broker.
You may specify particular 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.
The request body must include complete broker and agency information:
Required Broker Details:
Agency Details:
This information is essential for proper proposal attribution and compliance requirements. Note: If a broker operates independently (not affiliated with an agency), you may set agency_name and agency_npn to null. However, all broker fields remain mandatory.
After creating a proposal, you can poll this endpoint to retrieve the quoted information. The response provides comprehensive details about the proposal request and the quoted rates for all requested plan designs.
After creating a proposal, you can poll this endpoint to check its status. To prevent server overload, please limit polling frequency to once every 10-15 seconds.
See the Fully Underwritten vs Illustrative Rates section for more details.
When a quoting broker decides to proceed with an Arlo plan, you can mark the proposal as sold. This requires only the proposal ID—no need to specify individual plans.
Upon successful completion, the response will include a url
and message
:
message
to the broker after they’ve marked the group as soldurl
The broker will experience one of two flows:
A single proposal can include quotes for multiple plans. Each plan quote provides not only rates but also detailed information about the funding structure, contract length, quote assessment type, and more.
Each plan quote includes a 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.It’s important for CPQ API consumers to identify the quote_assessment_type
for each plan quote and ensure the appropriate context is communicated to the broker.
You will receive your testing API key separately in the format arlo_test_*
. Production API keys follow the format arlo_live_*
.
The CPQ API implements versioning through the 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.
By default, the /proposal
endpoints return mock responses to simplify testing. Mock mode is automatically enabled when using test API keys.
Mock mode behavior:
To disable mock mode:
Set the 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.
All requests to the CPQ API will return a 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.
Please reach out to karthik+cpq@joinarlo.com if you have any questions!
Learn how to quote with the CPQ API
Welcome to the Arlo CPQ API Documentation. The CPQ API provides a RESTful interface that allows you to obtain quotes from Arlo through simple HTTP requests.
Please reach out to karthik+cpq@joinarlo.com if you have any questions!
The end-to-end process is very simple:
Get the list of plans
Get the list of plans offered by Arlo - GET /plans
Submit proposal information
Submit proposal information - POST /proposal
Poll until the proposal is ready
Poll until the proposal is ready - GET /proposal/<proposal_id>
Mark the proposal as sold
Mark the proposal as sold - POST /proposal/<proposal_id>/mark-sold
You may find the OpenAPI docs here and the raw JSON specification here. The base API URL is 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.
A plan is defined by a unique combination of network, PBM, vendor stack, and benefit details (including accumulators and cost shares by benefit category). You can retrieve detailed breakdowns of all plans offered by Arlo through these endpoints. The responses provide comprehensive benefits information, including accumulators, cost share data by benefit category, and other plan specifications.
This endpoint returns all available plans that can be quoted and their detailed information.
This endpoint returns the detailed information of a specific plan. The plan_id
can be retrieved from the bulk /plans
endpoint.
To obtain quotes from Arlo, create a proposal for each new opportunity. A proposal represents a unique pairing of quoting broker and group. Note that any modification to group information—including name, effective date, headquarters state, or census data—requires creating a new proposal.
This endpoint creates a new proposal.
In order to create a proposal, you must provide details about the group, all the individuals to be covered by the plan (including dependents), and all information about the quoting broker.
You may specify particular 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.
The request body must include complete broker and agency information:
Required Broker Details:
Agency Details:
This information is essential for proper proposal attribution and compliance requirements. Note: If a broker operates independently (not affiliated with an agency), you may set agency_name and agency_npn to null. However, all broker fields remain mandatory.
After creating a proposal, you can poll this endpoint to retrieve the quoted information. The response provides comprehensive details about the proposal request and the quoted rates for all requested plan designs.
After creating a proposal, you can poll this endpoint to check its status. To prevent server overload, please limit polling frequency to once every 10-15 seconds.
See the Fully Underwritten vs Illustrative Rates section for more details.
When a quoting broker decides to proceed with an Arlo plan, you can mark the proposal as sold. This requires only the proposal ID—no need to specify individual plans.
Upon successful completion, the response will include a url
and message
:
message
to the broker after they’ve marked the group as soldurl
The broker will experience one of two flows:
A single proposal can include quotes for multiple plans. Each plan quote provides not only rates but also detailed information about the funding structure, contract length, quote assessment type, and more.
Each plan quote includes a 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.It’s important for CPQ API consumers to identify the quote_assessment_type
for each plan quote and ensure the appropriate context is communicated to the broker.
You will receive your testing API key separately in the format arlo_test_*
. Production API keys follow the format arlo_live_*
.
The CPQ API implements versioning through the 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.
By default, the /proposal
endpoints return mock responses to simplify testing. Mock mode is automatically enabled when using test API keys.
Mock mode behavior:
To disable mock mode:
Set the 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.
All requests to the CPQ API will return a 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.
Please reach out to karthik+cpq@joinarlo.com if you have any questions!