---
title: "Fund Search"
method: GET
path: "/gateway/v1/search/fund"
tags: ["Search"]
---

# Fund Search

`GET /gateway/v1/search/fund`

Searches funds by keyword.

**Included fields:** name, tier, type, logo, top invested projects.

## Query parameters

- `q` string, required — Search keyword — fund name like `a16z`, `paradigm`, or `coinbase ventures`
- `limit` integer — Results per page
- `offset` integer — Pagination offset

## Response `200`

OK

- DataResponseFundSearchItem
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` FundSearchItem[], nullable, required
    - `id` string, required — Surf fund UUID — pass as 'id' parameter to /fund/detail or /fund/portfolio for exact lookup
    - `image` string — Fund logo URL
    - `invested_projects_count` integer, required — Total number of unique invested projects (a project with multiple funding rounds counts once)
    - `name` string, required — Fund name
    - `tier` integer, required — Fund tier ranking (lower is better)
    - `top_projects` FundPortfolioItem[], nullable, required — Top invested projects (up to 5)
      - `invested_at` integer — Investment date (Unix seconds)
      - `is_lead` boolean, required — Whether this fund was the lead investor
      - `project_id` string, required — Surf project UUID — pass as 'id' parameter to /project/detail, /project/events, or /project/defi/metrics for exact lookup. Prefer over 'q' (fuzzy name search).
      - `project_logo` string — Project logo URL
      - `project_name` string, required — Project name
      - `project_slug` string — Project slug
      - `recent_raise` number, double — Most recent funding round amount in USD
      - `total_raise` number, double — Total amount raised by the project in USD
    - `type` string — Fund type
  - `meta` OffsetMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data array is empty, when applicable
    - `has_more` boolean — Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required — Maximum number of items returned in this response
    - `offset` integer, required — Number of items skipped (pagination offset)
    - `total` integer — Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer — Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/4153a9cb5145/schema)
