> For the complete documentation index, see [llms.txt](https://even-financial.gitbook.io/developer-center/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://even-financial.gitbook.io/developer-center/marketplace-integrations/native-api/auto-insurance/api-reference.md).

# API Reference

## Getting Started

### Session Information

* The Auto Insurance API requires basic `sessionInformation` (the end user's IP address and user agent) with every offer search.
* Carriers use this information as part of underwriting, compliance, and fraud-prevention checks, so it must be collected from the live user session and passed through accurately.

### Authentication & Environments

A representative from Engine by Gen will set up an account and provide an authorization token to access the Engine API.

* An **authorization token** is required to authenticate every request. Include it in the request headers; otherwise the API returns an error.
* Every request must also include an **Api-Version** header. The current supported version for the Auto Insurance API is `2026-02-25`.
* **Test and production tokens are separate.** Requests made with a test token are not reflected in performance reporting or payable events. Switch to the production token once testing is complete.
* A test token only works against the test environment, and a production token only works against production. Using a token against the wrong environment returns `401 Unauthorized`.
* For more information, see our [API Reference](https://engine.tech/docs/api-reference/#authentication) page

<table><thead><tr><th width="145.21484375">Environment</th><th>Base URL</th><th>Token Type</th></tr></thead><tbody><tr><td>Test / Dev</td><td><code>https://dev-api.engine.tech</code></td><td>Test authorization token</td></tr><tr><td>Production</td><td><code>https://api.engine.tech</code></td><td>Production authorization token</td></tr></tbody></table>

{% hint style="warning" %}
**Rate tables are environment-specific**

A `uuid` created in the test environment cannot be polled against production (and vice versa). Doing so returns `404 Not Found`.
{% endhint %}

### Required Headers

<table><thead><tr><th width="183.1171875">Header</th><th>Value</th></tr></thead><tbody><tr><td><code>Authorization</code></td><td><code>Bearer &#x3C;AUTH_TOKEN></code></td></tr><tr><td><code>Api-Version</code></td><td>Most recent API Version, e.g. <code>2026-02-25</code></td></tr><tr><td><code>Content-Type</code></td><td><code>application/json</code></td></tr></tbody></table>

***

## Step 1: Retrieve Supported Issuers

**Before submitting an offer search**, retrieve the list of supported insurance carriers:

```bash
curl --location 'https://api.engine.tech/leads/autoInsurance/issuers' \
--header 'Authorization: Bearer <AUTH_TOKEN>' \
--header 'Content-Type: application/json'
```

Example response:

```json
[
  {
    "id": "statefarm",
    "name": "State Farm",
    "logoImageUrl": "https://cdn.trellisconnect.com/sdk/v1.1/assets/images/logos/statefarm.ico"
  }
]
```

Pass the issuer's `id` as the value of `autoInsuranceInformation.currentIssuer` in your offer search:

```json
{
  "autoInsuranceInformation": {
    "currentIssuer": "statefarm"
  }
}
```

{% hint style="warning" %}
The `name` and `logoImageUrl` fields are provided for display purposes only. Use the `id` value when making requests.
{% endhint %}

***

## Step 2: Submit the Offer Search

* Set `productTypes` to `["AutomobileInsurance"]`
* Submit a POST request to `/offerSearches/`

### Sample Request/Response

{% tabs %}
{% tab title="Request" %}
{% code overflow="wrap" expandable="true" %}

```json
curl --location 'https://api.engine.tech/offerSearches/' \
--header 'Authorization: Bearer <AUTH_TOKEN>' \
--header 'Api-Version: 2026-02-25' \
--header 'Content-Type: application/json' \
--data '{
  "autoInsuranceInformation": {
    "currentIssuer": "notinsured",
    "policyHolderInformation": {
      "isHomeOwner": true,
      "isMilitary": false
    },
    "numberOfVehicles": 1
  },
  "sessionInformation": {
    "ipAddress": "203.0.113.42",
    "userAgent": "Mozilla/5.0"
  },
  "personalInformation": {
    "zipcode": "94103",
    "dateOfBirth": "1990-06-15"
  },
  "clientTags": {
    "subId": ["2ee169ef"]
  },
  "productTypes": [
    "AutomobileInsurance"
  ]
}
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" expandable="true" %}

```json
{
  "uuid": "11111111-1111-4111-8111-111111111111",
  "leadUuid": "22222222-2222-4222-8222-222222222222",
  "createdAt": "2026-08-25T19:30:00.000Z",
  "pendingResponses": [],
  "offers": [
    {
      "uuid": "33333333-3333-4333-8333-333333333333",
      "productType": "AutomobileInsurance",
      "productDisplayName": "Example Auto Insurance",
      "productVersions": [2],
      "version": 1,
      "status": "active",
      "headline": "Get an auto insurance quote",
      "descriptionPoints": [
        "Compare coverage options",
        "View sample rates in minutes",
        "Manage your policy online"
      ],
      "url": "https://offers.engine.tech/channelTrackingOfferRedirects/11111111-1111-4111-8111-111111111111/33333333-3333-4333-8333-333333333333",
      "unmonetizedUrl": "https://www.example.com/auto-insurance",
      "isMonetized": true,
      "financialInstitutionUuid": "44444444-4444-4444-8444-444444444444",
      "financialInstitutionDisplayName": "Example Auto Insurance",
      "financialInstitutionImageUrl": "https://cdn.example.com/logos/example-auto.png",
      "recommendationScore": 14,
      "rank": 1,
      "createdAt": "2026-08-25T19:30:01.000Z",
      "updatedAt": "2026-08-25T19:30:01.000Z"
    },
    {
      "uuid": "55555555-5555-4555-8555-555555555555",
      "productType": "AutomobileInsurance",
      "productDisplayName": "Sample Mutual",
      "productVersions": [2],
      "version": 1,
      "status": "active",
      "headline": "Compare auto insurance rates",
      "descriptionPoints": [
        "Customize your coverage",
        "Discounts may be available",
        "24/7 customer support"
      ],
      "url": "https://offers.engine.tech/channelTrackingOfferRedirects/11111111-1111-4111-8111-111111111111/55555555-5555-4555-8555-555555555555",
      "unmonetizedUrl": "https://www.example.com/sample-mutual",
      "isMonetized": true,
      "financialInstitutionUuid": "66666666-6666-4666-8666-666666666666",
      "financialInstitutionDisplayName": "Sample Mutual",
      "financialInstitutionImageUrl": "https://cdn.example.com/logos/sample-mutual.png",
      "recommendationScore": 13,
      "rank": 2,
      "createdAt": "2026-08-25T19:30:01.000Z",
      "updatedAt": "2026-08-25T19:30:01.000Z"
    }
  ]
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

### Request Fields

{% hint style="info" %}
Fields marked **Recommended** for `POST /offerSearches/` are technically optional, but providing them meaningfully improves quote accuracy and offer matching.

Omitting an optional field implies "no information" for that attribute.
{% endhint %}

<details open>

<summary><strong>Required fields</strong></summary>

<table><thead><tr><th width="182.65234375">Field</th><th width="128.4375">Type</th><th>Purpose</th></tr></thead><tbody><tr><td><code>productTypes</code></td><td>array of strings</td><td>Types of products the user is interested in. Use <code>["AutomobileInsurance"]</code>.</td></tr><tr><td><code>sessionInformation.ipAddress</code></td><td>string</td><td>IP address of the end user's live session, used for underwriting and fraud checks.</td></tr><tr><td><code>sessionInformation.userAgent</code></td><td>string</td><td>User agent string of the end user's browser or device, captured from the live session.</td></tr></tbody></table>

</details>

<details>

<summary><strong>Recommended fields</strong></summary>

<table><thead><tr><th width="182.65234375">Field</th><th width="128.4375">Type</th><th>Purpose</th></tr></thead><tbody><tr><td><code>autoInsuranceInformation.currentIssuer</code></td><td>string</td><td>The lead's current or most recent auto insurance carrier. Use <code>"notinsured"</code> if the lead has no current coverage. Must be a valid issuer ID returned by <code>GET /leads/autoInsurance/issuers</code>.</td></tr><tr><td><code>autoInsuranceInformation.numberOfVehicles</code></td><td>integer</td><td>Number of vehicles the lead wants to insure.</td></tr><tr><td><code>autoInsuranceInformation.policyHolderInformation.isHomeOwner</code></td><td>boolean</td><td>Whether the lead owns their home. Used by carriers as a rating factor and may unlock bundling discounts.</td></tr><tr><td><code>autoInsuranceInformation.policyHolderInformation.isMilitary</code></td><td>boolean</td><td>Whether the lead is active-duty military, an honorable veteran, or a military family member. Used to surface military discounts.</td></tr><tr><td><code>personalInformation.zipCode</code></td><td>string</td><td>ZIP code of the lead's residence. Used to match the lead with carriers licensed in their state and to rate the offer.</td></tr><tr><td><code>personalInformation.dateOfBirth</code></td><td>string</td><td>Date of birth of the lead, in <code>YYYY-MM-DD</code> format. Used for age-based eligibility and rating.</td></tr></tbody></table>

</details>

<details>

<summary><strong>Optional tracking fields</strong></summary>

<table><thead><tr><th width="182.65234375">Field</th><th width="128.4375">Type</th><th>Purpose</th></tr></thead><tbody><tr><td><code>clientTags</code></td><td>array of strings</td><td>Client-defined tag(s) for tracking and attribution, such as a sub-affiliate or campaign ID. See Client Tags for Attribution below.</td></tr></tbody></table>

</details>

{% hint style="success" icon="chart-line-up" %}

#### Client Tags for Attribution

Partners can optionally pass `clientTags.subId`, an array of client-defined string tags, with each offer search request.

Engine includes these tags in reporting, letting a partner attribute leads and revenue back to a specific sub-affiliate, campaign, or placement. This field has no effect on which offers are returned; it is purely for tracking.

See the [Attribution Tracking](/developer-center/channel-partner-reporting/attribution-tracking.md) page for more information
{% endhint %}

***

## Step 3: Poll for the Rate Table

Capture the `uuid` returned in the Step 1 response and issue a `GET` request to the Offer Searches endpoint:

```applescript
GET https://api.engine.tech/offerSearches/{uuid}
```

### Polling Process

1. After the POST in Step 1, poll `GET /offerSearches/{uuid}` once per second for up to 15 seconds.
2. Check `pendingResponses` on each response:
   * Not empty: Engine is still waiting on one or more partners. Keep polling.
   * Empty: Every partner has finished. Stop polling; `offers` is the final set.
3. As each partner responds, its offers are added to `offers` and that partner is removed from `pendingResponses`.

### Sample Responses

{% tabs %}
{% tab title="Search Still Pending (200 OK)" %}
Immediately after submitting the offer search, the response may show no offers yet, with one or more partners listed under `pendingResponses`:

{% code expandable="true" %}

```json
{
 "uuid": "6204740b-25ca-407a-9927-d229c2b3e315",
 "leadUuid": "ad5cc266-b358-4c57-85f1-968f746ae0e4",
 "offers": [],
 "pendingResponses": [
 {
 "partner": {
 "uuid": "0ac9a64b-177f-4699-910b-7c301772331a",
 "name": "Sample Carrier Co.",
 "description": "-",
 "disclaimer": "-",
 "supportsPreSelect": false,
 "shouldDisplayPreSelect": false,
 "supportsPersonalizedOffers": true,
 "imageUrl": "https://images.engine.tech/logos/dev/sample-carrier-autoinsurance.svg",
 "brandName": "Sample Carrier",
 "brandUuid": "871f6802-d27d-4092-8f82-d1d205c7a478"
 },
 "offerCatalogProductTypes": [
 "AutomobileInsurance"
 ]
 }
 ],
 "createdAt": "2026-07-30T17:58:31.957182Z"
}
```

{% endcode %}
{% endtab %}

{% tab title="Offers Ready (200 OK)" %}
Once a partner has responded, its offer(s) appear in the `offers` array and `pendingResponses` no longer contains that partner:

{% code expandable="true" %}

```json
{
 "uuid": "6204740b-25ca-407a-9927-d229c2b3e315",
 "leadUuid": "ad5cc266-b358-4c57-85f1-968f746ae0e4",
 "offers": [
 {
 "descriptionPoints": [
 "Free rate quote online — no sales calls",
 "Compare top carrier rates instantly, save up to $800+/yr",
 "Shop trusted carriers to find your best rate",
 "Rates starting as low as $12/wk. Save now!"
 ],
 "impressionTrackingPixelUrls": [
 "https://track.engine.tech/p/impr.gif?ad_pos=1&ad_num=1;<tracking_token>"
 ],
 "uuid": "88090bc3-dda6-445b-bb91-5a1e53dc18a5",
 "version": 1,
 "url": "https://offers.engine.tech/ref/999dfd70-e06e-466d-a8ad-e35661ba5423",
 "unmonetizedUrl": "https://offers.engine.tech/uref/999dfd70-e06e-466d-a8ad-e35661ba5423",
 "recommendationScore": 11,
 "productDisplayName": "Compare-Discounts",
 "rank": 1,
 "headline": "Compare Auto Insurance Rates From Top-Rated Carriers",
 "productType": "AutomobileInsurance",
 "status": "active",
 "isMonetized": true,
 "financialInstitutionUuid": "8f04c171-85db-4753-bdc7-31bb11c59f4c",
 "financialInstitutionImageUrl": "https://images.engine.tech/logos/dev/sample-carrier-logo.png",
 "financialInstitutionDisplayName": "Sample Auto Insurance Provider"
 }
 ],
 "pendingResponses": [],
 "createdAt": "2026-07-30T17:58:31.957182Z"
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

***

### Response Fields

{% tabs %}
{% tab title="Top-Level Fields" %}

<table><thead><tr><th width="256.82421875">Field</th><th width="93.671875">Type</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td><code>uuid</code></td><td>string</td><td>Rate table UUID. Use this value to poll the rate table endpoint.</td><td><code>"6204740b-25ca-407a-9927-d229c2b3e315"</code></td></tr><tr><td><code>leadUuid</code></td><td>string</td><td>Unique identifier for the lead associated with the offer search.</td><td><code>"ad5cc266-b358-4c57-85f1-968f746ae0e4"</code></td></tr><tr><td><code>offers</code></td><td>array</td><td>Array of completed auto insurance offers returned so far. See Offer Fields below.</td><td>—</td></tr><tr><td><code>pendingResponses</code></td><td>array</td><td>Array of partners Engine is still waiting to hear back from. Keep polling while this array is non-empty.</td><td>—</td></tr><tr><td><code>pendingResponses[].partner</code></td><td>object</td><td>Metadata about a partner whose response is still pending. See Partner Fields below.</td><td>—</td></tr><tr><td><code>pendingResponses[].offerCatalogProductTypes</code></td><td>array of strings</td><td>Product type(s) the pending partner was queried for.</td><td><code>["AutomobileInsurance"]</code></td></tr><tr><td><code>createdAt</code></td><td>string (ISO 8601)</td><td>Timestamp the rate table was created.</td><td><code>"2026-07-30T17:58:31.957182Z"</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Partner Fields" %}
Fields on `pendingResponses[].partner`. These describe a pending carrier/partner and supply the branding and disclosure content you may need to display.

| Field                        | Type         | Description                                                                                                | Example                                                                   |
| ---------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `uuid`                       | string       | Unique identifier for the partner.                                                                         | `"0ac9a64b-177f-4699-910b-7c301772331a"`                                  |
| `name`                       | string       | Partner name.                                                                                              | `"Sample Carrier Co."`                                                    |
| `brandName`                  | string       | Brand name shown to the consumer.                                                                          | `"Sample Carrier"`                                                        |
| `brandUuid`                  | string       | Unique identifier for the brand.                                                                           | `"871f6802-d27d-4092-8f82-d1d205c7a478"`                                  |
| `imageUrl`                   | string (url) | Partner/brand logo URL.                                                                                    | `"https://images.engine.tech/logos/dev/sample-carrier-autoinsurance.svg"` |
| `description`                | string       | Optional partner description. May be empty.                                                                | —                                                                         |
| `disclaimer`                 | string       | Partner-level disclaimer / license text. When populated, this must be displayed to the user. May be empty. | —                                                                         |
| `supportsPreSelect`          | boolean      | Whether the partner supports pre-selection.                                                                | `false`                                                                   |
| `shouldDisplayPreSelect`     | boolean      | Whether pre-selection should be displayed.                                                                 | `false`                                                                   |
| `supportsPersonalizedOffers` | boolean      | Whether the partner supports personalized offers.                                                          | `true`                                                                    |
| {% endtab %}                 |              |                                                                                                            |                                                                           |

{% tab title="Offer Fields" %}

<table><thead><tr><th>Field</th><th width="115.4296875">Type</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td><code>uuid</code></td><td>string</td><td>Unique identifier for the individual offer.</td><td><code>"88090bc3-dda6-445b-bb91-5a1e53dc18a5"</code></td></tr><tr><td><code>version</code></td><td>integer</td><td>Version number of the offer.</td><td><code>1</code></td></tr><tr><td><code>rank</code></td><td>integer</td><td>Engine's recommended display rank. Display offers in ascending order by rank (rank 1 first).</td><td><code>1</code></td></tr><tr><td><code>recommendationScore</code></td><td>number</td><td>Present in responses but <strong>not used for auto insurance ranking</strong> — use <code>rank</code> instead.</td><td><code>11</code></td></tr><tr><td><code>headline</code></td><td>string</td><td>Primary marketing headline to display on the offer card.</td><td><code>"Compare Auto Insurance Rates From Top-Rated Carriers"</code></td></tr><tr><td><code>descriptionPoints</code></td><td>array of strings</td><td>Marketing bullet points describing the offer. Display as checkmark bullets on the offer card.</td><td><code>["Free rate quote online — no sales calls", "..."]</code></td></tr><tr><td><code>productType</code></td><td>string</td><td>Product type of the offer.</td><td><code>"AutomobileInsurance"</code></td></tr><tr><td><code>productDisplayName</code></td><td>string</td><td>Display name for the product/offer type (e.g., internal labeling or subheadline).</td><td><code>"Compare-Discounts"</code></td></tr><tr><td><code>status</code></td><td>string</td><td>Status of the offer. <strong>Only display offers with status <code>"active"</code></strong>.</td><td><code>"active"</code></td></tr><tr><td><code>isMonetized</code></td><td>boolean</td><td>Whether the offer is monetized. Use with <code>url</code> / <code>unmonetizedUrl</code>.</td><td><code>true</code></td></tr><tr><td><code>url</code></td><td>string (url)</td><td>Click-through URL for the offer's monetized destination. Use as the "View Rate" CTA when <code>isMonetized</code> is true.</td><td><code>"https://offers.engine.tech/ref/..."</code></td></tr><tr><td><code>unmonetizedUrl</code></td><td>string (url)</td><td>Click-through URL for the offer's unmonetized destination. Use when the offer should not be tracked for monetization.</td><td><code>"https://offers.engine.tech/uref/..."</code></td></tr><tr><td><code>impressionTrackingPixelUrls</code></td><td>array of strings (url)</td><td>One or more tracking pixel URLs that must be fired when the offer is rendered/viewed. See Impression Tracking in Building Your UI.</td><td><code>["https://track.engine.tech/p/impr.gif?..."]</code></td></tr><tr><td><code>financialInstitutionUuid</code></td><td>string</td><td>Unique identifier for the carrier/financial institution offering the policy.</td><td><code>"8f04c171-85db-4753-bdc7-31bb11c59f4c"</code></td></tr><tr><td><code>financialInstitutionDisplayName</code></td><td>string</td><td>Display name of the carrier/financial institution.</td><td><code>"Sample Auto Insurance Provider"</code></td></tr><tr><td><code>financialInstitutionImageUrl</code></td><td>string (url)</td><td>URL of the carrier/financial institution's logo.</td><td><code>"https://images.engine.tech/logos/dev/sample-carrier-logo.png"</code></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## Response Codes & Error Handling

### Successful Request (2xx)

{% hint style="success" %}

#### `201 Created`

**Endpoint:** `POST /offerSearches/`

**Meaning:** The request was accepted and a rate table was created. This does not mean offers were returned.

**Next action:** Check `offers` and `pendingResponses`. Poll when `pendingResponses` is non-empty.
{% endhint %}

{% hint style="success" %}

#### `200 OK`

**Endpoint:** `GET /offerSearches/{uuid}`

**Meaning:** The rate table was found and returned. `offers` may still be empty.

**Next action:** Check `offers` and `pendingResponses`. Keep polling until `pendingResponses` is empty.
{% endhint %}

**Completed searches with no offers**

An empty `offers` array and empty `pendingResponses` array means no matches were found. This is a silent failure. The request succeeded, but there are no offers to display.

Common causes include:

* Missing FCRA consent.
* State exclusions.
* Missing required fields.
* Automated risk screening.
* Carrier unavailability.

### Unsuccesful Request (4xx)

{% hint style="danger" %}

#### `400 Bad Request`

**Endpoint:** Any

**Meaning:** The request was malformed and was not processed.

**Next action:** Fix the malformed input.

Common causes:

* **Missing or invalid Api-Version header** — required on every request; it must match a supported version, such as `2026-02-25`.
* **Invalid JSON** — the request body could not be parsed.
* **Malformed UUID** — a path parameter, such as `/offerSearches/{uuid}`, used an invalid UUID format.

The response body contains error objects describing the failed field and reason.
{% endhint %}

{% hint style="warning" %}

#### `401 Unauthorized`

**Endpoint:** Any

**Meaning:** The authorization header is missing, expired, or invalid.

**Next action:** Verify the bearer token and environment. Test tokens only work with `dev-api.engine.tech`. Production tokens only work with `api.engine.tech`.
{% endhint %}

{% hint style="warning" %}

#### `404 Not Found`

**Endpoint:** `GET /offerSearches/{uuid}`

**Meaning:** The rate table UUID does not exist.

**Next action:** Verify the UUID and environment.

This can happen when:

* The UUID was copied incorrectly.
* A dev UUID is requested from production, or the reverse.
  {% endhint %}

{% hint style="danger" %}

#### `422 Unprocessable Entity`

**Endpoint:** Any

**Meaning:** The `Api-Version` header is present, but its version string is not recognized.

**Next action:** Use a supported version. See Authentication & Environments.
{% endhint %}

### Retry Request (429 & 5xx)

{% hint style="warning" %}

#### `429 Too Many Requests`

**Endpoint:** Any

**Meaning:** Too many requests were sent in a short window. This usually results from polling faster than the recommended cadence.

**Next action:** Slow polling, honor `Retry-After` when present, and retry with exponential backoff.

* Poll no more than about once per second per rate table.
* If `Retry-After` is present, wait that many seconds before retrying.
* On repeated `429` responses, back off exponentially, such as 1s, 2s, then 4s.
  {% endhint %}

{% hint style="info" %}

#### `500` / `503` Server Error

**Endpoint:** Any

**Meaning:** Engine encountered a temporary internal error or is briefly unavailable. These responses are transient and are not caused by malformed input.

**Next action:** Retry with exponential backoff within the polling window. Contact your Engine representative if the error persists.

* Retry with exponential backoff, such as 1s, 2s, then 4s.
* Do not treat a single 5xx response as a failed search. Keep polling within your timeout window.
* If 5xx responses continue past the timeout, stop polling and show a graceful error.
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://even-financial.gitbook.io/developer-center/marketplace-integrations/native-api/auto-insurance/api-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
