summaryrefslogtreecommitdiff
path: root/frontend/types/api.ts
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-17 12:46:13 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-17 12:46:13 -0700
commit1482422f2f5b236cdcdff4429ae06bb55dca4083 (patch)
tree4653cb4986a8a138f84dbec934effb0d011751d3 /frontend/types/api.ts
Add stack start and stop scripts
Diffstat (limited to 'frontend/types/api.ts')
-rw-r--r--frontend/types/api.ts85
1 files changed, 85 insertions, 0 deletions
diff --git a/frontend/types/api.ts b/frontend/types/api.ts
new file mode 100644
index 0000000..679ada9
--- /dev/null
+++ b/frontend/types/api.ts
@@ -0,0 +1,85 @@
+export type SearchResult = {
+ symbol: string;
+ name: string;
+ exchange?: string | null;
+};
+
+export type Quote = {
+ price?: number | null;
+ prev_close?: number | null;
+ change?: number | null;
+ change_pct?: number | null;
+};
+
+export type MarketIndex = {
+ name: string;
+ price?: number | null;
+ change_pct?: number | null;
+};
+
+export type Signal = {
+ key: string;
+ state: "pos" | "warn" | "neg" | "neu";
+ value: string;
+ description: string;
+};
+
+export type TickerOverview = {
+ profile: {
+ symbol: string;
+ name: string;
+ sector?: string | null;
+ industry?: string | null;
+ exchange?: string | null;
+ website?: string | null;
+ summary?: string | null;
+ };
+ quote: Quote;
+ signals: Signal[];
+ stats: {
+ market_cap?: number | null;
+ trailing_pe?: number | null;
+ trailing_eps?: number | null;
+ volume?: number | null;
+ average_volume?: number | null;
+ beta?: number | null;
+ };
+ range_52w: {
+ low?: number | null;
+ high?: number | null;
+ price?: number | null;
+ };
+ short_interest: {
+ short_percent_of_float?: number | null;
+ short_ratio?: number | null;
+ shares_short?: number | null;
+ shares_short_prior_month?: number | null;
+ shares_short_delta_pct?: number | null;
+ };
+ meta: {
+ status: "complete" | "partial";
+ is_partial: boolean;
+ field_availability: Record<string, boolean>;
+ sources: Record<string, string>;
+ };
+};
+
+export type HistoryPoint = {
+ date: string;
+ open?: number | null;
+ high?: number | null;
+ low?: number | null;
+ close?: number | null;
+ volume?: number | null;
+};
+
+export type WatchlistItem = {
+ symbol: string;
+ created_at: string;
+ quote?: Quote | null;
+};
+
+export type WatchlistResponse = {
+ items: WatchlistItem[];
+ limit: number;
+};