# Quote a Group

A quote can be created for a group through the Create a Quote endpoint ([API docs](https://docs.ideonapi.com/#group-quoting-group-quoting-post)). The latest version of this endpoint is v9, which is documented on this page. Like v8, v9 quotes are processed asynchronously — a successful request indicates that a quote has been created and processing has begun. Both polling and the delivery of premiums are covered in the subsequent [Monitor Quote Progress](/quote-and-select/quote-groups/small-group-medical/monitor-quote-progress.md) and [Retrieve Premium and Eligibility Results](/quote-and-select/quote-groups/small-group-medical/retrieve-premium-and-eligibility-results.md) sections.

{% hint style="warning" %}
**Pre-release documentation** — The v9 group quoting endpoints are actively in development and not yet available in production. This documentation is published early so integrators can plan and scope ahead of release. Endpoint behavior, field names, and response shapes may change before general availability. For the current development status and target release date, see the [Product Release Notes](/quote-and-select/product-release-notes/q2-2026.md#v9-group-quoting-combined-rates-and-limiting-factors). To integrate against the stable version today, see the [v8 documentation in Previous Versions](/quote-and-select/previous-versions/group-quoting-v8.md).
{% endhint %}

## Configuring Requests

A quote is created in reference to a group. The parameters required to create a quote are specific to that quote and the group at the time of quote creation. Notes on important fields for group medical quoting are included below.

* **Effective Date** `effective_date` - the effective date of coverage to be quoted for the group. Rates for small group medical plans are filed on a quarterly basis; premiums will (barring re-filings) be consistent within a quarter, but vary quarter to quarter.
* **Contribution Percentage** `contribution_percentage` - the estimated employer contribution to the payment of plan premiums. For most medical quoting use cases, this can be defaulted to *100*, as the contribution will not impact the quoted premium. Contribution applies in rare scenarios where there are minimum employer contribution requirements, such as the state of California.
* **Participation Percentage** `participation_percentage` - the estimated group participation for enrollment in the plan. For most medical quoting use cases, this can be defaulted to *100*, as the participation will not impact the quoted premium. Participation applies in rare scenarios where there are minimum participation requirements, such as with the CalChoice exchange.
* **Voluntary** `voluntary` - the voluntary flag does not have any impact on medical quoting premiums nor eligibility. This can be defaulted to either *true* or *false*.
* **Plan Filters** `plan_filters` - an optional object containing filters that narrow the set of plans included in the quote. For small group medical quoting, the primary filter is `plan_filters.carrier_ids`, an array of carrier brand IDs and/or issuer IDs. Plans for unspecified carriers will be excluded from the quote. If `plan_filters` is omitted, all available plans for the group will be quoted.
* **Outputs** `outputs` - an optional object containing settings that affect what is returned in the rates response for the quote. Currently, the supported output is `outputs.complete_age_bands.enabled`, which toggles whether or not the full 0–65 age banded premiums will be included in the rates response. If set to *true*, the `complete_age_bands` object will be rendered for each quoted plan, when applicable. Only medical quoting is supported for this output. The default value is *false*.

A sample request with fields required for v9 small group medical quoting, for reference:

{% code title="POST /groups/\<group.id>/quotes" %}

```json
{
  "quote": {
    "effective_date": "2026-01-01",
    "product_line": "medical",
    "market": "small_group",
    "contribution_percentage": 100,
    "participation_percentage": 100,
    "plan_filters": {
      "carrier_ids": [
        "bae1d0e1-80dc-48f4-918d-6c492340cc1"
      ]
    },
    "outputs": {
      "complete_age_bands": {
        "enabled": true
      }
    }
  }
}
```

{% endcode %}

## Additional Information

### Quote ID

Successful requests to the Create a Quote endpoint will return an `id` for the quote. This internal identifier needs to be referenced in the subsequent Show a Quote and Display Rates endpoints.

The `quote.id`  should be easily accessible for triage workflows; it is required for support requests related to group quoting, along with the group ID (found in the [Create a Group section](/quote-and-select/quote-groups/small-group-medical/create-a-group.md#group-and-location-ids)).&#x20;

### Carrier Quoting API Integrations

Ideon supports two parallel rating methodologies for quoting: an internal rating engine and integrations to carrier quoting APIs to source rates in real-time. These are used when applicable to process quotes. The vast majority of Small Group medical carriers are quoted through Ideon's internal rating engine. The exception is UnitedHealthcare "B2B" plans, which are quoted through a direct, real-time integration to UHC's quoting API. For more information on approval for UHC's API, please reach out to your Customer Success Manager.

The rating methodology used for each carrier quoted is surfaced in the v9 quote response via the `carrier_results[].quoting_method` field, returned as either *ideon\_rating\_engine* or *carrier\_api*. See the [Monitor Quote Progress section](/quote-and-select/quote-groups/small-group-medical/monitor-quote-progress.md) for details.

#### Retry Until Parameter

Carrier quoting APIs can introduce additional latency and errors independent of Ideon's API. The `retry_until` parameter can be used to configure the length of time Ideon will retry quotes through the carrier's API before completing the quote with an error for the carrier and/or plans that were not able to be rated.

The `retry_until` parameter configures the time in seconds for which Ideon will automatically retry any failed quotes that are routed through carrier APIs. The default is 15 seconds and accepted values are integers between 0 and 90. Note that this only affects retries for failed carrier quotes; a value of 0 means that Ideon will attempt to quote through the carrier API once, regardless of success or failure.

#### Broker NPN Validation

UnitedHealthcare's quoting API validates the broker NPN associated with each quote against their list of licensed and appointed brokers. Only quotes submitted with an NPN on UHC's appointed list will be processed; quotes with an unrecognized NPN will return a `quote_exception` for UHC plans and no premiums will be returned. The NPN sent to UHC is the one associated with the group being quoted, as configured in the Create a Group section. When both `broker_npn` and `agency_npn` are included for a group, the `broker_npn` will be used for UHC quotes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ideonapi.gitbook.io/quote-and-select/quote-groups/small-group-medical/quote-a-group.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
