# 13F Live Stream — Finradar API > Version: 3.61.0 | Generated: 2026-06-20 | Content Hash: 30d7d859 > Fetch this file at: https://uat.finradarapi.com/llms/13f-live-stream.txt ## Authentication All endpoints require an API key. Pass it via query parameter `?apiKey=YOUR_KEY` or header `X-API-Key: YOUR_KEY`. WebSocket endpoints accept the key in the `token` auth payload or query parameter. --- ## 13F Live Stream Real-time enriched 13F institutional holdings feed. Receive parsed, CUSIP-enriched filings as they are processed, with subscription filters for CIK, ticker, AUM threshold, and filing type. Supports catch-up on connect and subscription persistence across reconnects. ### WS WebSocket (Namespace: /13f) Stream of enriched 13F institutional filings with real-time position change analysis. Subscribe to summary (compact ~1KB) or full (complete holdings ~50-500KB) channels. Filters by CIK, ticker held, minimum AUM, and filing type. Catch-up delivery on connect sends recent filings matching your filters. Subscriptions persist across reconnects (7-day TTL). **Token cost:** 100 tokens per connection-day (flat rate; reconnects on the same UTC day are free) **Response fields:** - `event` (string): Event name — `13f_summary` for compact channel, `13f_holdings` for full channel, `13f_heartbeat` for keep-alive (every 30 seconds), `subscribed` / `subscription_restored` / `unsubscribed` for subscription-state events. Use to dispatch handlers. - `accession_number` (string): SEC accession in canonical `XXXXXXXXXX-YY-NNNNNN` format. NOTE: the per-event payload uses `accession_no` (underscore form) NOT `accession_number` — see notes block. Use as deduplication key. - `cik` (string): Filer CIK in 10-character zero-padded form (server-side normalized regardless of input form). Use for client-side per-fund routing. - `filer_name` (string): Filer name as filed (typically all-caps EDGAR convention). For aliasing to user-friendly names (Buffett vs Berkshire) use `/api/v1/form-13f/filers` with the alias lookup. - `period_of_report` (string): ISO `YYYY-MM-DD` quarter end (always 03-31 / 06-30 / 09-30 / 12-31). The reporting period the 13F covers. - `filed_date` (string): ISO `YYYY-MM-DD` filing acceptance date. Compared against `period_of_report` reveals filing-cadence patterns — late-quarter filers hit closer to the 45-day deadline. - `total_value_usd` (number (nullable)): Reported aggregate portfolio value. IMPORTANT: emitted in SEC's 'thousands' convention — multiply by 1000 for actual USD. Example: `267890123` means $267.9 billion. Null when value not yet computable. - `holdings_count` (integer (nullable)): Number of position rows in the filing's information table. Null on 13F-NT filings (notice-of-no-table — these always have 0 holdings). Berkshire-shaped books: ~50; index-fund books (Vanguard, BlackRock): 3000-9000+. **Since:** v1.0.0 **Utility:** Real-time push stream of 13F institutional-holdings filings — receive each filing within ~60 seconds of EDGAR acceptance, FULLY ENRICHED with position-change analysis (categorized into `new`/`closed`/`increased`/`decreased`/`unchanged` with top-20 items per category). Two-channel subscription: `summary` (compact ~1KB with top-10 holdings + statistics — drives dashboard tickers) or `full` (complete ~50-500KB position list with voting authority + investment discretion — drives heavy-analytics consumers). Server-side filtering on CIK whitelist, ticker-held whitelist, minimum AUM, and form type — eliminates client-side firehose handling. Catch-up delivery on connect replays the most-recent 50 filings matching your filters; subscriptions persist across reconnects with 7-day TTL so deploys/network blips don't lose state. The right choice for hedge-fund-tracker dashboards (StockCircle/WhaleWisdom-style) and institutional-flow trading desks. 100-token flat per-UTC-day connection fee. **Use case:** Monitor when Berkshire Hathaway files a new 13F, track any fund buying NVDA, or alert when a $1B+ fund makes portfolio changes. **Parameters:** - `api_key` (auth, required): API key. Three methods (first match): Socket.IO `auth.api_key` payload (recommended), HTTP header `X-API-Key` or `Authorization: Bearer`, or `?api_key=` query. 100-token/day fee on first connect of the UTC day. Free-tier OK. `?token=` removed v3.20.2. - `path` (config, required, default: /socket.io): Socket.IO HTTP path. Default `/socket.io` — same as the Main API stream (`/sec` namespace) and DIFFERENT from the Insider stream which uses a custom path. Pass to your client as `io(url, { path: '/socket.io' })`. - `namespace` (config, required, default: /13f): Socket.IO namespace. Connect via `io('/13f', {...})`. The connection multiplexes onto the same HTTP path as the `/sec` stream — only one TCP socket needed even if you subscribe to both namespaces. **Events (server → client):** - `13f_summary`: Compact filing summary (~1KB) with fund metadata, top 10 holdings, and position change statistics. Catch-up events include is_catchup: true. ```json { "event": "13f_summary", "fund": { "cik": "0001067983", "name": "BERKSHIRE HATHAWAY INC" }, "period_of_report": "2024-09-30", "filed_at": "2024-11-14T16:04:32", "table_value_total": 267890123, "accession_no": "0001067983-24-000123", "form_type": "13F-HR", "is_amendment": false, "holdings_count": 42, "holdings": [ { "cusip": "037833100", "ticker": "AAPL", "name": "APPLE INC", "value": 91900000, "shares": 400000000, "rank": 1, "percent_portfolio": 34.32, "change_shares": -25000000, "change_percent": -5.88, "title_of_class": "COM", "share_type": "SH", "put_call": null, "figi": "BBG000B9XRY4" } ], "statistics": { "new_positions": 3, "increased_positions": 8, "decreased_positions": 12, "closed_positions": 2, "unchanged_positions": 17, "prior_quarter_available": true }, "timestamps": { "rss_ingested_at": "2024-11-14T16:05:00Z", "parsed_at": "2024-11-14T16:05:15Z", "enriched_at": "2024-11-14T16:05:20Z", "emitted_at": "2024-11-14T16:05:21Z" }, "is_catchup": false } ``` - `13f_holdings`: Full holdings payload (~50-500KB) with ALL positions and categorized position change analysis. Requires 'full' channel subscription. ```json { "event": "13f_holdings", "fund": { "cik": "0001067983", "name": "BERKSHIRE HATHAWAY INC" }, "period_of_report": "2024-09-30", "filed_at": "2024-11-14T16:04:32", "table_value_total": 267890123, "accession_no": "0001067983-24-000123", "form_type": "13F-HR", "is_amendment": false, "holdings": [ { "cusip": "037833100", "ticker": "AAPL", "name": "APPLE INC", "value": 91900000, "shares": 400000000, "rank": 1, "percent_portfolio": 34.32, "change_shares": -25000000, "change_percent": -5.88, "title_of_class": "COM", "share_type": "SH", "put_call": null, "investment_discretion": "SOLE", "other_managers": null, "voting_authority": { "sole": 400000000, "shared": 0, "none": 0 }, "figi": "BBG000B9XRY4", "composite_figi": "BBG000B9XRY4" } ], "analysis": { "new": { "total": 3, "items": [ "... top 20 new positions ..." ] }, "closed": { "total": 2, "items": [ "... top 20 with value_sold ..." ] }, "increased": { "total": 8, "items": [ "... top 20 ..." ] }, "decreased": { "total": 12, "items": [ "... top 20 ..." ] }, "unchanged": { "total": 17, "items": [ "... top 20 ..." ] } }, "timestamps": { "rss_ingested_at": "2024-11-14T16:05:00Z", "parsed_at": "2024-11-14T16:05:15Z", "enriched_at": "2024-11-14T16:05:20Z", "emitted_at": "2024-11-14T16:05:21Z" } } ``` - `13f_heartbeat`: Server heartbeat every 30 seconds. Use to detect stale connections. ```json { "status": "alive", "timestamp": "2024-11-14T16:05:30Z", "connected_clients": 5 } ``` - `subscribed`: Acknowledgment after subscribe. Triggers catch-up delivery of recent matching filings. ```json { "status": "success", "channels": [ "summary" ], "ciks": [ "1067983" ], "form_types": [ "13F-HR" ], "tickers": [ "AAPL", "NVDA" ], "min_value": 1000000 } ``` - `subscription_restored`: Sent on reconnect when prior subscription is auto-restored (7-day TTL). Same shape as 'subscribed'. Sync your UI filter state to this. ```json { "status": "success", "channels": [ "summary" ], "ciks": [ "1067983" ], "form_types": [ "13F-HR" ], "tickers": [ "AAPL", "NVDA" ], "min_value": 1000000 } ``` - `unsubscribed`: Acknowledgment after unsubscribe. Subscription reset to defaults (summary channel, no filters). ```json { "status": "success" } ``` **Actions (client → server):** - `subscribe`: Set subscription filters. All fields optional — omit or pass empty arrays for 'all'. Triggers catch-up delivery of recent filings matching the new filters. Subscriptions persist across reconnects for 7 days. ```json { "channels": [ "summary", "full" ], "ciks": [ "1067983", "1318605" ], "form_types": [ "13F-HR" ], "tickers": [ "AAPL", "NVDA", "TSLA" ], "min_value": 1000000000 } ``` - `unsubscribe`: Reset subscription to defaults (summary channel, no filters). Client remains connected and receives all filings on the summary channel. **Notes:** - IMPORTANT: table_value_total is in SEC 'thousands' convention. Multiply by 1000 to get actual USD. Example: table_value_total=267890123 means $267.9 billion. - min_value filter also uses SEC thousands: to filter for funds with $1B+ AUM, send min_value: 1000000 (i.e. $1B / 1000). - CIKs accept both zero-padded (0001067983) and unpadded (1067983) formats. - Ticker filter matches any filing whose holdings contain that ticker — independent of CIK filter. - Catch-up events have is_catchup: true in the payload. Most recent 50 matching filings are replayed on subscribe. - The accession_no field uses underscores (not accession_number) — this is the dedup key. **Sample response:** ```json { "event": "new_13f_filing", "accession_number": "0000950123-26-001234", "cik": "0001067983", "filer_name": "BERKSHIRE HATHAWAY INC", "period_of_report": "2025-12-31", "filed_date": "2026-02-14", "total_value_usd": 308000000000, "holdings_count": 47 } ```