---
title: "Search funds in the Sugra Catalog"
method: GET
path: "/api/v1/catalog/funds"
tags: ["Catalog"]
---

# Search funds in the Sugra Catalog

`GET /api/v1/catalog/funds`

Search mutual and other funds by category, fund family, exchange, or a free-text name query. All filters are optional and combined with AND.

## Query parameters

- `category` string, nullable — Fund category to filter by (exact match).
- `family` string, nullable — Fund family / sponsor to filter by (exact match).
- `exchange` string, nullable — Listing venue to filter by (exact match).
- `q` string, nullable — Free-text search over the fund name.
- `limit` integer — Maximum number of funds to return.
- `offset` integer — Number of funds to skip (pagination).

## Response `200`

Matching funds, plus the total match count for pagination.

- unknown

## Other responses

- `401` — Missing or invalid `x-api-key` header. JSON body with a stable `code` distinguishing `missing_api_key` (no header sent) from `invalid_api_key` (header sent, key not accepted); any other 401 source carries the generic `unauthorized` with its detail as `reason`. Plus `hint`. `plan` is always null on 401 - an unauthenticated request has no plan; quota exhaustion is 429, not 401.
- `422` — Validation Error
- `429` — Daily rate limit exceeded. Check `X-RateLimit-Reset` for the next window.
- `503` — Upstream source is temporarily unavailable. Retry after a short delay.

---

[API](https://skmtc.net/sugra/apis/sugra-api.md) · [All operations](https://skmtc.net/sugra/apis/sugra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sugra/sugra-api/versions/4c4530760ba1/schema)
