---
title: "Search funds to resolve a bw_fund_id"
method: GET
path: "/funds/search"
tags: ["Funds"]
---

# Search funds to resolve a bw_fund_id

`GET /funds/search`

## Request

- Base URL: `https://riskmodels.app/api`
- URL: `https://riskmodels.app/api/funds/search`
- Auth: none required

Funds discovery. Resolves a `bw_fund_id` for downstream `/funds/{bw_fund_id}/*` calls, which are metered.

`net_expense_ratio` is a **percent per year** (0.59 = 0.59%/yr, not 0.0059), and `net_expense_ratio_asof` can trail by years — treat it as a staleness signal, not a current-fee guarantee.

**Authentication:** None — this endpoint is public. It is wrapped in `withBilling` with `skipBilling: true`, which bypasses key validation entirely, so no `Authorization` header is required or checked.
**Billing:** Free
**Rate Limit:** 60 requests/minute per IP (`FUND_SEARCH_IP_RPM`). `limit` is capped at 100 rows on this public route; the keyed `/api/data/funds/search` mirror allows more.

## Query parameters

- `q` string
- `equity_style_9box` string
- `primary` 'true' | 'false'
- `limit` integer
- `include_inactive` 'true' | 'false'
- `include_etfs` 'true' | 'false'

## Response `200`

Matching funds

- object
  - `results` object[]
    - `bw_fund_id` string
    - `series_id` string, nullable
    - `ticker` string, nullable
    - `cik` string, nullable
    - `fund_name` string, nullable
    - `morningstar_category` string, nullable
    - `equity_style_9box` string, nullable
    - `style_link_method` string, nullable
    - `net_expense_ratio` number, nullable: Percent per year (0.59 = 0.59%/yr).
    - `net_expense_ratio_asof` string, date, nullable
    - `primary_bw_fund_id` string, nullable
    - `latest_report_date` string, date, nullable
    - `latest_filing_date` string, date, nullable
    - `status` 'active' | 'delisted', nullable
    - `death_date` string, date, nullable
    - `is_etf` boolean, nullable
    - `is_money_market` boolean, nullable

## Other responses

- `429`: Per-IP rate limit exceeded

---

[API](https://skmtc.dev/riskmodels/apis/riskmodels-api.md) · [All operations](https://skmtc.dev/riskmodels/apis/riskmodels-api/llms.txt) · [OpenAPI document](https://skmtc.dev/riskmodels/apis/riskmodels-api/revisions/1a034cad408a?raw)
