> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bridgelinepf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog and versioning

> What changed in the API, and the promises we keep when we change it.

## Versioning

The API has one version today, `2026-09-23`. Versions are dates, and a new one is made only for a change that could break an integration.

You can pin a version by sending the `Bridgeline-Version` header. Every response echoes the version that served it:

```http theme={null}
Bridgeline-Version: 2026-09-23
```

Leave the header out and you get the current version. A value that isn't a real date is refused with [`400 INVALID_API_VERSION`](/errors/INVALID_API_VERSION).

### What we change without a new version

Additive changes ship to everyone, at any time:

* new endpoints;
* new optional request fields;
* new response fields;
* new values in an enum, such as a quote `status`, a coverage `type`, or an assumption, warning or reason code;
* new error codes;
* changes to human-readable `message` text.

Write your integration to tolerate all of these: ignore unknown fields and fall back safely on unknown values. See [conventions](/concepts/conventions#enums-only-grow).

### What we never do

* Rename or repurpose a field, an enum value or an error code. Codes and fields are added, never renamed; enums only grow.
* Remove a field, or make an optional request field required, within a version.
* Change the meaning of a value, such as rates from fractions to percentages.

If we ever need a breaking change, it ships in a new dated version, announced here in advance, and your pinned version keeps behaving as before.

<Note>
  The API is in private beta. We may still adjust details based on feedback from the agencies building with us. We'll announce any such change here first, and we won't make it silently.
</Note>

## Changelog

<Update label="5 October 2026" description="Test mode">
  * **Test keys.** `bl_test_` keys get real pricing and real rules, with test data kept apart from live and no real-world effects: nobody is emailed when someone taps **I'm interested** on a test quote. Bridgeline enables test mode per agency; ask your Bridgeline contact. See [test and live mode](/concepts/test-and-live-mode).
  * **Test helper** [`POST /v1/test_helpers/quotes/{id}/interest`](/api-reference/test-helpers/quote-interest) acts out your client's response on a test quote.
  * Test quotes have their own daily limits: 200 per key and 500 per agency, separate from live.
  * New error codes [`TEST_MODE_NOT_ENABLED`](/errors/TEST_MODE_NOT_ENABLED), [`TEST_MODE_ONLY`](/errors/TEST_MODE_ONLY) and [`QUOTE_ALREADY_INTERESTED`](/errors/QUOTE_ALREADY_INTERESTED).
</Update>

<Update label="5 October 2026" description="State codes">
  `insured.address.state` must now be a two-letter USPS state code (the 50 states, `DC`, `PR`, `GU`, `VI`, `AS` and `MP`). Any other value is a `422 VALIDATION_FAILED` with detail code `INVALID_FORMAT`; a full state name gets a message naming its code. A valid code outside Texas is still a `201` ineligible quote. See [insured state](/concepts/eligibility#insured-state).
</Update>

<Update label="October 2026" description="Documentation">
  The documentation moves to docs.bridgelinepf.com, with an API reference generated from our OpenAPI spec and a page for every error code.
</Update>

<Update label="4 October 2026" description="Retries">
  New error code [`IDEMPOTENCY_RECORD_LOST`](/errors/IDEMPOTENCY_RECORD_LOST). When a request's response was lost, a retry with the same `Idempotency-Key` now gets this terminal `500` straight away, instead of `409 IDEMPOTENCY_REQUEST_IN_PROGRESS` until the key expired. See [idempotency](/guides/idempotency#when-the-response-was-lost).
</Update>

<Update label="2 October 2026" description="Quotes and the interactive quote">
  * `POST /v1/quotes`: price one or more policies as one loan, with every option, eligibility, assumptions and binding readiness.
  * `GET /v1/quotes/{id}` and `GET /v1/coverage-types`.
  * **The interactive quote.** Every quote's `hosted_url` opens a page where your client compares options and taps **I'm interested**. `GET /v1/quotes/{id}` reports the response in `interest`, and `POST /v1/quotes/{id}/hosted-link` replaces a link.
  * Rate limits: 60 requests a minute per key, 500 quotes a day per key and 2,000 quotes a day per agency.
</Update>

<Update label="28 September 2026" description="Foundation">
  API keys, authentication, scopes, the error format, idempotency and `GET /v1/whoami`.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.