Skip to content
/api/v1/form-13f/filing-progress

Returns the current quarter's 13F filing completeness as a percentage of expected recurring filers, plus deadline information and timeline metadata.

Returns the current quarter's 13F filing completeness as a percentage of expected recurring filers, plus deadline information and timeline metadata. The recurring-filer baseline uses double-quarter CIK intersection: filers present in BOTH the previous AND two-quarters-ago periods.

Why use this

Quarter-completeness tracker for 13F filings — answers 'is the current quarter complete?' without hard-coding the SEC's 45-day deadline. Computes the recurring-filer baseline as the CIK intersection of the LAST TWO COMPLETED quarters (filers who filed in both Q-1 AND Q-2), then reports `filed_count / expected_count / completion_pct` against this baseline. Includes deadline countdown, late-notice (13F-NT) tracking, and aggregate AUM observed so far. The right endpoint for filing-season dashboards: render `completion_pct` as a progress bar, surface `days_until_deadline` for the timeline UI, and combine with the QoQ-completeness signals from `/aggregation/by-ticker` to gate downstream analytics until the quarter has matured. EXEMPT (`cost: 0`) — operational metadata, polling-friendly. Lightweight `quarter_metadata` block is also injected into 5 other endpoints (`/market/summary`, `/by-sector`, `/fund-performance`, `/market-rotation`, `/cross-filing-signals`) so consumers don't need a separate round-trip for completeness state.

Common use case

Building a filing season tracker dashboard: 'Q4 2025 filing season: 85% of expected filers have reported, 22 days until deadline'. Display pct_reported as a progress bar. Use deadline_status to show 'Filing season active' vs 'Quarter complete'. Combine with /filing-stats for backward-compatible metrics.

Quarter-completeness tracking for 13F filings — answers "is the current quarter complete?" without hard-coding the SEC deadline. Uses a recurring-filer baseline (the set of CIKs that filed in BOTH the last 4 quarters) and reports filed_count / expected_count / completion_pct. Includes deadline countdown and aggregate AUM observed so far. Cost: 0 (operational metadata, not billed).

Parameters

NameInRequiredDefaultAllowedDescriptionExample
quarterqueryoptionalQuarter-end date as ISO `YYYY-MM-DD` (must be a calendar-quarter end: 03-31, 06-30, 09-30, 12-31). Defaults to the most relevant quarter based on current date: the active filing period during filing season (within 45 days post-quarter-end), or the last completed quarter otherwise. Returns 400 for non-quarter-end dates and dates outside FinRadar's 13F coverage.2025-12-31

Response schema

FieldTypeNullableDescription
quarterstringnoQuarter label in `YYYY-Q[1-4]` format (e.g. `2025-Q4`). Use for chart headers and dashboard titles.
period_endstringnoISO `YYYY-MM-DD` quarter-end date (always 03-31 / 06-30 / 09-30 / 12-31). Echoed back from the request when `quarter` parameter was passed; otherwise reflects the auto-resolved most-relevant quarter.
filing_deadlinestringnoISO `YYYY-MM-DD` SEC filing deadline — always exactly 45 days after `period_end`. Late-filers face SEC enforcement risk; recurring-filer baseline uses the last completed quarter's deadline behavior to weight late filings.
days_until_deadlineintegernoWhole days remaining until `filing_deadline`. Positive during active filing season; zero on deadline day; negative for past deadlines (the quarter is structurally complete then). Use to drive countdown UIs.
expected_countintegernoRecurring-filer baseline — count of CIKs that filed in BOTH of the last two completed quarters. The denominator for `completion_pct`. Typical values: 4000-4500 funds (the recurring-filer universe). Smaller than the full 9,600+ 13F filer universe because not every fund files every quarter.
filed_countintegernoDistinct CIK count of recurring-filer baseline funds that have filed for THIS quarter so far. Always ≤ `expected_count`. Increments throughout the 45-day filing window as more funds file.
completion_pctnumbernoCompletion percentage `(filed_count / expected_count) × 100`, rounded to 1 decimal place (range 0.0-100.0). At end of filing window typically reaches 95-99% (a few baseline funds skip filing each quarter — mostly funds that fell below the $100M AUM threshold). Use as the canonical 'is this quarter complete?' signal.
aum_observed_usdnumbernoAggregate reported AUM across filings ingested so far for this quarter, in USD (post-thousands-correction via the holdings-quality layer). Useful for filing-season AUM tracking — for the most-recent active quarter, this number grows day-by-day as more funds file.
as_ofstringnoISO-8601 UTC timestamp the progress snapshot was generated. Computed live (no cache) — always reflects the latest filings ingested. Use to detect data freshness; values older than ~5 minutes during active filing season suggest stale-cache contention.

Sample response

·
  • "status": "success"
  • "data":
    • "period": "2025-12-31"
    • "filers": 3542
    • "pct_reported": 85.3
    • "baseline_filers": 4152
    • "baseline_period": "2025-09-30"
    • "total_filings": 3890
    • "total_aum": 42150000000
    • "late_notice_filers": 18
    • "deadline": "2026-02-17"
    • "deadline_status": "before"
    • "is_complete": false
    • "days_until_deadline": 22
    • "previous_deadline": "2025-11-14"
    • "next_deadline": "2026-05-15"
    • "days_until_next_deadline": 109
    • "next_reporting_period_start": "2026-04-01"
    • "quarter_metadata":
    }
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/form-13f/filing-progress" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).

Try it

Related endpoints