diff options
| author | Tyler Hoang <tyler@tylerhoang.xyz> | 2026-06-14 02:38:06 -0700 |
|---|---|---|
| committer | Tyler Hoang <tyler@tylerhoang.xyz> | 2026-06-14 02:38:06 -0700 |
| commit | 13ce7b912227ea20671465d83bd6ab5eeb4fbe2b (patch) | |
| tree | e8ad001ff97dd948a53313e4e427465081c67363 | |
| parent | f8d61a20759f3833484674173ccb9264d474b6c2 (diff) | |
feat: add FilingsResponse types and api.filings() client
| -rw-r--r-- | frontend/lib/api.ts | 7 | ||||
| -rw-r--r-- | frontend/types/api.ts | 37 |
2 files changed, 43 insertions, 1 deletions
diff --git a/frontend/lib/api.ts b/frontend/lib/api.ts index 84df997..13c73bf 100644 --- a/frontend/lib/api.ts +++ b/frontend/lib/api.ts @@ -1,4 +1,4 @@ -import type { FinancialsResponse, HistoryPoint, InsidersResponse, MarketIndex, RatiosResponse, SearchResult, TickerOverview, ValuationResponse, WatchlistResponse } from "@/types/api"; +import type { FilingsResponse, FinancialsResponse, HistoryPoint, InsidersResponse, MarketIndex, RatiosResponse, SearchResult, TickerOverview, ValuationResponse, WatchlistResponse } from "@/types/api"; const API_BASE = (process.env.NEXT_PUBLIC_API_BASE_URL || "").trim().replace(/\/$/, ""); @@ -69,4 +69,9 @@ export const api = { `/api/tickers/${encodeURIComponent(symbol)}/insiders` ); }, + filings(symbol: string) { + return request<FilingsResponse>( + `/api/tickers/${encodeURIComponent(symbol)}/filings` + ); + }, }; diff --git a/frontend/types/api.ts b/frontend/types/api.ts index c65d3d2..fac9bff 100644 --- a/frontend/types/api.ts +++ b/frontend/types/api.ts @@ -192,6 +192,43 @@ export type InsidersResponse = { transactions: InsiderTransaction[]; }; +export type FilingItem = { + date: string; + form: string; + title: string; + url: string | null; +}; + +export type FilingKpis = { + total: number; + count_10k: number; + count_10q: number; + count_8k: number; + distinct_forms: number; +}; + +export type FormMixRow = { + form: string; + count: number; + pct: number | null; +}; + +export type CadencePoint = { + month: string; + count_10k: number; + count_10q: number; + count_8k: number; + count_other: number; +}; + +export type FilingsResponse = { + kpis: FilingKpis; + cadence: CadencePoint[]; + form_mix: FormMixRow[]; + readout: string; + filings: FilingItem[]; +}; + export type RatiosResponse = { pe_ttm: RatioPoint; ev_ebitda: RatioPoint; |
