@@ -49,6 +49,46 @@ def ADANOS_API_KEY(cls):
4949 from app .utils .config_loader import load_addon_config
5050 val = load_addon_config ().get ('adanos' , {}).get ('api_key' )
5151 return val if val else ''
52+
53+ @property
54+ def FRED_API_KEY (cls ):
55+ """FRED API key for US macro time series."""
56+ env_val = os .getenv ('FRED_API_KEY' , '' ).strip ()
57+ if env_val :
58+ return env_val
59+ from app .utils .config_loader import load_addon_config
60+ val = load_addon_config ().get ('fred' , {}).get ('api_key' )
61+ return val if val else ''
62+
63+ @property
64+ def BLS_API_KEY (cls ):
65+ """Optional BLS registration key for official US labor/CPI data."""
66+ env_val = os .getenv ('BLS_API_KEY' , '' ).strip ()
67+ if env_val :
68+ return env_val
69+ from app .utils .config_loader import load_addon_config
70+ val = load_addon_config ().get ('bls' , {}).get ('api_key' )
71+ return val if val else ''
72+
73+ @property
74+ def BEA_API_KEY (cls ):
75+ """BEA API key for official US national accounts data."""
76+ env_val = os .getenv ('BEA_API_KEY' , '' ).strip ()
77+ if env_val :
78+ return env_val
79+ from app .utils .config_loader import load_addon_config
80+ val = load_addon_config ().get ('bea' , {}).get ('api_key' )
81+ return val if val else ''
82+
83+ @property
84+ def ALPHA_VANTAGE_API_KEY (cls ):
85+ """Alpha Vantage key for NEWS_SENTIMENT company news data."""
86+ env_val = os .getenv ('ALPHA_VANTAGE_API_KEY' , '' ).strip ()
87+ if env_val :
88+ return env_val
89+ from app .utils .config_loader import load_addon_config
90+ val = load_addon_config ().get ('alpha_vantage' , {}).get ('api_key' )
91+ return val if val else ''
5292
5393 @property
5494 def OPENROUTER_API_KEY (cls ):
0 commit comments