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

# Optional Products

By default, Meld filters the institutions shown in the picker to those that support **every** product in the `/connect/start` request. Sometimes you want users to see institutions that may not support all products, and then fetch data only for the products that are supported. **Optional products** solve this use case: they are aggregated on a best-effort basis and do not restrict which institutions appear.

## When to use optional products

* You want maximum institution coverage but still want bonus data (such as investments) where it exists.
* A product like `INVESTMENT_HOLDINGS` is nice to have for some customers but should not gate the rest of the flow.
* You are retroactively adding products via the [update connection endpoint](/docs/bank-linking/manage-connection-status/updating-connections) — those products always land in `optionalProducts`.

## Rules

* You must specify **at least one** product in the required `products` array.
* A product cannot appear in both `products` and `optionalProducts`.
* Optional products are aggregated on a best-effort basis — Meld does not guarantee data will be returned for them. Build your UI accordingly.

## Sample request

```bash theme={null}
curl --location 'https://api-sb.meld.io/bank-linking/connect/start' \
--header 'Meld-Version: 2022-11-10' \
--header 'Content-Type: application/json' \
--header 'Authorization: BASIC ***Redacted API Key***' \
--data '{
  "externalCustomerId": "testCustomer",
  "products": [
    "BALANCES",
    "TRANSACTIONS"
  ],
  "optionalProducts": [
    "INVESTMENT_HOLDINGS",
    "INVESTMENT_TRANSACTIONS"
  ]
}'
```

In the example above, the picker filters institutions to those that support `BALANCES` and `TRANSACTIONS`. Institutions are **not** filtered out for missing investment support. If the connected accounts do carry investment data, Meld retrieves it and emits the corresponding webhooks.

<Tip>
  Optional products are powerful for maximizing coverage, but do **not** guarantee data will be returned for those products. Always handle the case where investment or other optional data is empty.
</Tip>
