<!-- Agent Datasets docs · Funds REST endpoints · canonical: https://www.agentdatasets.com/docs/rest/funds · rendered from https://www.agentdatasets.com -->

# Funds REST endpoints

SEC N-PORT fund holdings and N-PX proxy-voting records for registered investment funds.

3 endpoints. Paths are relative to `https://api.agentdatasets.com`. Every endpoint mirrors an MCP tool over the same service layer — https://www.agentdatasets.com/docs/tools.md documents the same operations for MCP clients.

## GET /v1/funds/holdings

Holdings

Return one fund's bounded, cursor-paged SEC Form N-PORT holdings.

### Parameters

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| fund | query | `string` | yes | — | min length 1 | SEC series id or fund class ticker |
| report_period | query | `string \| null` | no | — | — | Exact N-PORT period of report (YYYY-MM-DD); omit for latest |
| limit | query | `integer` | no | 50 | min 1, max 200 | Holdings rows per page |
| cursor | query | `string \| null` | no | — | — | Opaque pagination.next_cursor from the previous response |

### Example request

Required parameters only, with values taken from the schema.

```bash
curl --fail --silent --show-error \
  --header "X-API-KEY: adk_..." \
  "https://api.agentdatasets.com/v1/funds/holdings?fund=FUND"
```

### Response

`200` Successful Response — `FundsGetHoldingsResult`.

- `data` `FundsGetHoldingsData` (required) — A bounded page of positions from one pinned N-PORT accession.
  - `holdings` `array<FundHolding>` (required)
    - `issuer_name` `string | null` (required)
    - `issuer_lei` `string | null` (required)
    - `title` `string | null` (required)
    - `ticker` `string | null` (required)
    - `other_id` `string | null` (required)
    - `other_id_desc` `string | null` (required)
    - `balance` `string | null` (required)
    - `units` `string | null` (required)
    - `units_desc` `string | null` (required)
    - `currency_code` `string | null` (required)
    - `exchange_rate` `string | null` (required)
    - `value_usd` `string | null` (required)
    - `pct_value` `string | null` (required)
    - `payoff_profile` `string | null` (required)
    - `asset_category` `string | null` (required)
    - `asset_category_desc` `string | null` (required)
    - `issuer_category` `string | null` (required)
    - `issuer_category_desc` `string | null` (required)
    - `inv_country` `string | null` (required)
    - `is_restricted` `boolean | null` (required)
    - `fair_value_level` `string | null` (required)
- `meta` `FundsGetHoldingsMeta` (required) — Fund identity, filing lineage, and SEC source attribution. ``as_of`` carries the filing's report-period date — the date-grained arm of the shared ``Meta.as_of`` contract — not an ingestion timestamp.
  - `source` `string` (required)
  - `as_of` `string (date-time) | string (date) | null`
  - `series_id` `string` (required)
  - `series_name` `string | null` (required)
  - `registrant_name` `string | null` (required)
  - `cik` `integer` (required)
  - `form_type` `string` (required)
  - `accession_number` `string` (required)
  - `filed_date` `string (date)` (required)
  - `report_period` `string (date)` (required)
  - `holdings_count` `integer` (required)
  - `attribution` `string` (required)
  - `primary_document_url` `string` (required)
- `pagination` `Pagination | null`
  - `limit` `integer` (required)
  - `has_more` `boolean` (required)
  - `next_cursor` `string | null`

Fields are shown to 3 levels; the full schema is in https://www.agentdatasets.com/docs/machine/openapi.json

## GET /v1/funds/proxy-votes

Proxy Votes

Return a fund's or manager's bounded, cursor-paged Form N-PX votes.

### Parameters

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| fund | query | `string` | yes | — | min length 1 | Registrant CIK, SEC series id, or fund class ticker |
| category | query | `string \| null` | no | — | — | Standardized N-PX proposal category |
| report_period | query | `string \| null` | no | — | — | Exact N-PX period of report (YYYY-MM-DD); omit for latest |
| ticker | query | `string \| null` | no | — | — | Issuer ticker; resolved issuers only |
| limit | query | `integer` | no | 25 | min 1, max 100 | Proxy-vote rows per page |
| cursor | query | `string \| null` | no | — | — | Opaque pagination.next_cursor from the previous response |

### Example request

Required parameters only, with values taken from the schema.

```bash
curl --fail --silent --show-error \
  --header "X-API-KEY: adk_..." \
  "https://api.agentdatasets.com/v1/funds/proxy-votes?fund=FUND"
```

### Response

`200` Successful Response — `FundsGetProxyVotesResult`.

- `data` `FundsGetProxyVotesData` (required) — A bounded page of proxy-vote rows from one pinned N-PX report period.
  - `fund` `string` (required)
  - `category` `string | null` (required)
  - `ticker` `string | null` (required)
  - `votes` `array<ProxyVoteRow>` (required)
    - `accession_number` `string` (required)
    - `as_of` `string (date)` (required)
    - `record_seq` `integer` (required)
    - `issuer_name` `string` (required)
    - `ticker` `string | null` (required)
    - `meeting_date` `string (date) | null` (required)
    - `vote_description` `string` (required)
    - `categories` `array<string>` (required)
    - `vote_series` `string | null` (required)
    - `shares_on_loan` `string | null` (required)
    - `how_voted` `string | null` (required)
    - `shares_voted` `string | null` (required)
    - `management_recommendation` `string | null` (required)
- `meta` `FundsGetProxyVotesMeta` (required) — Fund identity, filing lineage, and SEC source attribution.
  - `source` `string` (required)
  - `as_of` `string (date-time) | string (date) | null`
  - `attribution` `string` (required)
  - `filer_cik` `integer` (required)
  - `filer_name` `string` (required)
  - `series_id` `string | null` (required)
  - `series_name` `string | null` (required)
  - `report_period` `string (date)` (required)
  - `report_calendar_year` `integer` (required)
  - `total_votes` `integer` (required)
  - `filings` `array<ProxyVoteFilingRef>` (required)
    - `accession_number` `string` (required)
    - `form_type` `string` (required)
    - `report_type` `string` (required)
    - `amendment_type` `string | null` (required)
    - `filed_date` `string (date)` (required)
    - `primary_document_url` `string` (required)
    - `vote_table_url` `string | null` (required)
- `pagination` `Pagination | null`
  - `limit` `integer` (required)
  - `has_more` `boolean` (required)
  - `next_cursor` `string | null`

Fields are shown to 3 levels; the full schema is in https://www.agentdatasets.com/docs/machine/openapi.json

## GET /v1/funds/search

Search

Return ranked SEC investment-company registry matches.

### Parameters

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| query | query | `string` | yes | — | min length 1 | Fund ticker, series name, or registrant name |
| limit | query | `integer` | no | 10 | min 1, max 50 | Maximum ranked fund matches |

### Example request

Required parameters only, with values taken from the schema.

```bash
curl --fail --silent --show-error \
  --header "X-API-KEY: adk_..." \
  "https://api.agentdatasets.com/v1/funds/search?query=QUERY"
```

### Response

`200` Successful Response — `FundsSearchFundsResult`.

- `data` `FundsSearchFundsData` (required) — The echoed query and its bounded, best-first fund matches.
  - `query` `string` (required)
  - `funds` `array<FundSearchMatch>` (required)
    - `cik` `integer` (required)
    - `registrant_name` `string | null` (required)
    - `series_id` `string` (required)
    - `series_name` `string | null` (required)
    - `class_id` `string` (required)
    - `class_name` `string | null` (required)
    - `ticker` `string | null` (required)
- `meta` `FundsSearchFundsMeta` (required) — SEC registry provenance for a fund-entity search.
  - `source` `string` (required)
  - `as_of` `string (date-time) | string (date) | null`
  - `attribution` `string` (required)
- `pagination` `Pagination | null`
  - `limit` `integer` (required)
  - `has_more` `boolean` (required)
  - `next_cursor` `string | null`

Fields are shown to 3 levels; the full schema is in https://www.agentdatasets.com/docs/machine/openapi.json
