Sec 13f

live Security

SEC 13F — institutional ownership, asked security-first.

3 tools
0ms auth
free tier 50 calls/day

Tools

who_owns

Which institutional managers hold a given US-listed security, ranked by position size — the reverse of every 13F API, which requires you to name the manager first. Give a company name, ticker or CUSIP

No parameters required.

Try it
manager_portfolio

Every 13F position reported by one institutional manager, largest first — the classic manager-first view, over the same hosted table. Give the manager name ("Berkshire Hathaway", "Pershing Square"). R

No parameters required.

Try it
holdings_coverage

What this 13F dataset currently covers: the SEC release window loaded, how many filings and holdings are in it, and the reporting quarter. Use to check freshness before relying on an ownership answer.

No parameters required.

Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/sec-13f/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/sec-13f/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"who_owns","arguments":{}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("who_owns", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("sec 13f — institutional ownership, asked security-first");