us-gov-open-data-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +211 -0
  2. package/dist/client.d.ts +54 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +388 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/instructions.d.ts +8 -0
  7. package/dist/instructions.d.ts.map +1 -0
  8. package/dist/instructions.js +549 -0
  9. package/dist/instructions.js.map +1 -0
  10. package/dist/modules/bea.d.ts +28 -0
  11. package/dist/modules/bea.d.ts.map +1 -0
  12. package/dist/modules/bea.js +158 -0
  13. package/dist/modules/bea.js.map +1 -0
  14. package/dist/modules/bls.d.ts +29 -0
  15. package/dist/modules/bls.d.ts.map +1 -0
  16. package/dist/modules/bls.js +244 -0
  17. package/dist/modules/bls.js.map +1 -0
  18. package/dist/modules/bts.d.ts +26 -0
  19. package/dist/modules/bts.d.ts.map +1 -0
  20. package/dist/modules/bts.js +112 -0
  21. package/dist/modules/bts.js.map +1 -0
  22. package/dist/modules/cdc.d.ts +26 -0
  23. package/dist/modules/cdc.d.ts.map +1 -0
  24. package/dist/modules/cdc.js +310 -0
  25. package/dist/modules/cdc.js.map +1 -0
  26. package/dist/modules/census.d.ts +23 -0
  27. package/dist/modules/census.d.ts.map +1 -0
  28. package/dist/modules/census.js +141 -0
  29. package/dist/modules/census.js.map +1 -0
  30. package/dist/modules/cfpb.d.ts +20 -0
  31. package/dist/modules/cfpb.d.ts.map +1 -0
  32. package/dist/modules/cfpb.js +135 -0
  33. package/dist/modules/cfpb.js.map +1 -0
  34. package/dist/modules/clinical-trials.d.ts +22 -0
  35. package/dist/modules/clinical-trials.d.ts.map +1 -0
  36. package/dist/modules/clinical-trials.js +171 -0
  37. package/dist/modules/clinical-trials.js.map +1 -0
  38. package/dist/modules/cms.d.ts +21 -0
  39. package/dist/modules/cms.d.ts.map +1 -0
  40. package/dist/modules/cms.js +135 -0
  41. package/dist/modules/cms.js.map +1 -0
  42. package/dist/modules/college-scorecard.d.ts +39 -0
  43. package/dist/modules/college-scorecard.d.ts.map +1 -0
  44. package/dist/modules/college-scorecard.js +192 -0
  45. package/dist/modules/college-scorecard.js.map +1 -0
  46. package/dist/modules/congress.d.ts +28 -0
  47. package/dist/modules/congress.d.ts.map +1 -0
  48. package/dist/modules/congress.js +883 -0
  49. package/dist/modules/congress.js.map +1 -0
  50. package/dist/modules/dol.d.ts +27 -0
  51. package/dist/modules/dol.d.ts.map +1 -0
  52. package/dist/modules/dol.js +209 -0
  53. package/dist/modules/dol.js.map +1 -0
  54. package/dist/modules/eia.d.ts +33 -0
  55. package/dist/modules/eia.d.ts.map +1 -0
  56. package/dist/modules/eia.js +227 -0
  57. package/dist/modules/eia.js.map +1 -0
  58. package/dist/modules/epa.d.ts +21 -0
  59. package/dist/modules/epa.d.ts.map +1 -0
  60. package/dist/modules/epa.js +91 -0
  61. package/dist/modules/epa.js.map +1 -0
  62. package/dist/modules/fbi.d.ts +28 -0
  63. package/dist/modules/fbi.d.ts.map +1 -0
  64. package/dist/modules/fbi.js +143 -0
  65. package/dist/modules/fbi.js.map +1 -0
  66. package/dist/modules/fda.d.ts +35 -0
  67. package/dist/modules/fda.d.ts.map +1 -0
  68. package/dist/modules/fda.js +262 -0
  69. package/dist/modules/fda.js.map +1 -0
  70. package/dist/modules/fdic.d.ts +21 -0
  71. package/dist/modules/fdic.d.ts.map +1 -0
  72. package/dist/modules/fdic.js +186 -0
  73. package/dist/modules/fdic.js.map +1 -0
  74. package/dist/modules/fec.d.ts +29 -0
  75. package/dist/modules/fec.d.ts.map +1 -0
  76. package/dist/modules/fec.js +282 -0
  77. package/dist/modules/fec.js.map +1 -0
  78. package/dist/modules/federal-register.d.ts +24 -0
  79. package/dist/modules/federal-register.d.ts.map +1 -0
  80. package/dist/modules/federal-register.js +184 -0
  81. package/dist/modules/federal-register.js.map +1 -0
  82. package/dist/modules/fema.d.ts +20 -0
  83. package/dist/modules/fema.d.ts.map +1 -0
  84. package/dist/modules/fema.js +156 -0
  85. package/dist/modules/fema.js.map +1 -0
  86. package/dist/modules/fred.d.ts +40 -0
  87. package/dist/modules/fred.d.ts.map +1 -0
  88. package/dist/modules/fred.js +143 -0
  89. package/dist/modules/fred.js.map +1 -0
  90. package/dist/modules/govinfo.d.ts +24 -0
  91. package/dist/modules/govinfo.d.ts.map +1 -0
  92. package/dist/modules/govinfo.js +147 -0
  93. package/dist/modules/govinfo.js.map +1 -0
  94. package/dist/modules/hud.d.ts +17 -0
  95. package/dist/modules/hud.d.ts.map +1 -0
  96. package/dist/modules/hud.js +170 -0
  97. package/dist/modules/hud.js.map +1 -0
  98. package/dist/modules/naep.d.ts +27 -0
  99. package/dist/modules/naep.d.ts.map +1 -0
  100. package/dist/modules/naep.js +210 -0
  101. package/dist/modules/naep.js.map +1 -0
  102. package/dist/modules/nhtsa.d.ts +13 -0
  103. package/dist/modules/nhtsa.d.ts.map +1 -0
  104. package/dist/modules/nhtsa.js +196 -0
  105. package/dist/modules/nhtsa.js.map +1 -0
  106. package/dist/modules/noaa.d.ts +41 -0
  107. package/dist/modules/noaa.d.ts.map +1 -0
  108. package/dist/modules/noaa.js +135 -0
  109. package/dist/modules/noaa.js.map +1 -0
  110. package/dist/modules/nrel.d.ts +25 -0
  111. package/dist/modules/nrel.d.ts.map +1 -0
  112. package/dist/modules/nrel.js +87 -0
  113. package/dist/modules/nrel.js.map +1 -0
  114. package/dist/modules/regulations.d.ts +24 -0
  115. package/dist/modules/regulations.d.ts.map +1 -0
  116. package/dist/modules/regulations.js +173 -0
  117. package/dist/modules/regulations.js.map +1 -0
  118. package/dist/modules/sec.d.ts +25 -0
  119. package/dist/modules/sec.d.ts.map +1 -0
  120. package/dist/modules/sec.js +192 -0
  121. package/dist/modules/sec.js.map +1 -0
  122. package/dist/modules/senate-lobbying.d.ts +21 -0
  123. package/dist/modules/senate-lobbying.d.ts.map +1 -0
  124. package/dist/modules/senate-lobbying.js +189 -0
  125. package/dist/modules/senate-lobbying.js.map +1 -0
  126. package/dist/modules/treasury.d.ts +23 -0
  127. package/dist/modules/treasury.d.ts.map +1 -0
  128. package/dist/modules/treasury.js +234 -0
  129. package/dist/modules/treasury.js.map +1 -0
  130. package/dist/modules/usaspending.d.ts +19 -0
  131. package/dist/modules/usaspending.d.ts.map +1 -0
  132. package/dist/modules/usaspending.js +204 -0
  133. package/dist/modules/usaspending.js.map +1 -0
  134. package/dist/modules/usda-fooddata.d.ts +24 -0
  135. package/dist/modules/usda-fooddata.d.ts.map +1 -0
  136. package/dist/modules/usda-fooddata.js +118 -0
  137. package/dist/modules/usda-fooddata.js.map +1 -0
  138. package/dist/modules/usda-nass.d.ts +46 -0
  139. package/dist/modules/usda-nass.d.ts.map +1 -0
  140. package/dist/modules/usda-nass.js +151 -0
  141. package/dist/modules/usda-nass.js.map +1 -0
  142. package/dist/modules/usgs.d.ts +21 -0
  143. package/dist/modules/usgs.d.ts.map +1 -0
  144. package/dist/modules/usgs.js +203 -0
  145. package/dist/modules/usgs.js.map +1 -0
  146. package/dist/modules/uspto.d.ts +13 -0
  147. package/dist/modules/uspto.d.ts.map +1 -0
  148. package/dist/modules/uspto.js +157 -0
  149. package/dist/modules/uspto.js.map +1 -0
  150. package/dist/modules/world-bank.d.ts +21 -0
  151. package/dist/modules/world-bank.d.ts.map +1 -0
  152. package/dist/modules/world-bank.js +130 -0
  153. package/dist/modules/world-bank.js.map +1 -0
  154. package/dist/prompts.d.ts +12 -0
  155. package/dist/prompts.d.ts.map +1 -0
  156. package/dist/prompts.js +858 -0
  157. package/dist/prompts.js.map +1 -0
  158. package/dist/sdk/bea.d.ts +111 -0
  159. package/dist/sdk/bea.d.ts.map +1 -0
  160. package/dist/sdk/bea.js +242 -0
  161. package/dist/sdk/bea.js.map +1 -0
  162. package/dist/sdk/bls.d.ts +65 -0
  163. package/dist/sdk/bls.d.ts.map +1 -0
  164. package/dist/sdk/bls.js +203 -0
  165. package/dist/sdk/bls.js.map +1 -0
  166. package/dist/sdk/bts.d.ts +108 -0
  167. package/dist/sdk/bts.d.ts.map +1 -0
  168. package/dist/sdk/bts.js +121 -0
  169. package/dist/sdk/bts.js.map +1 -0
  170. package/dist/sdk/cdc.d.ts +105 -0
  171. package/dist/sdk/cdc.d.ts.map +1 -0
  172. package/dist/sdk/cdc.js +222 -0
  173. package/dist/sdk/cdc.js.map +1 -0
  174. package/dist/sdk/census.d.ts +47 -0
  175. package/dist/sdk/census.d.ts.map +1 -0
  176. package/dist/sdk/census.js +99 -0
  177. package/dist/sdk/census.js.map +1 -0
  178. package/dist/sdk/cfpb.d.ts +148 -0
  179. package/dist/sdk/cfpb.d.ts.map +1 -0
  180. package/dist/sdk/cfpb.js +153 -0
  181. package/dist/sdk/cfpb.js.map +1 -0
  182. package/dist/sdk/clinical-trials.d.ts +214 -0
  183. package/dist/sdk/clinical-trials.d.ts.map +1 -0
  184. package/dist/sdk/clinical-trials.js +134 -0
  185. package/dist/sdk/clinical-trials.js.map +1 -0
  186. package/dist/sdk/cms.d.ts +81 -0
  187. package/dist/sdk/cms.d.ts.map +1 -0
  188. package/dist/sdk/cms.js +227 -0
  189. package/dist/sdk/cms.js.map +1 -0
  190. package/dist/sdk/college-scorecard.d.ts +63 -0
  191. package/dist/sdk/college-scorecard.d.ts.map +1 -0
  192. package/dist/sdk/college-scorecard.js +131 -0
  193. package/dist/sdk/college-scorecard.js.map +1 -0
  194. package/dist/sdk/congress.d.ts +575 -0
  195. package/dist/sdk/congress.d.ts.map +1 -0
  196. package/dist/sdk/congress.js +659 -0
  197. package/dist/sdk/congress.js.map +1 -0
  198. package/dist/sdk/dol.d.ts +299 -0
  199. package/dist/sdk/dol.d.ts.map +1 -0
  200. package/dist/sdk/dol.js +252 -0
  201. package/dist/sdk/dol.js.map +1 -0
  202. package/dist/sdk/eia.d.ts +91 -0
  203. package/dist/sdk/eia.d.ts.map +1 -0
  204. package/dist/sdk/eia.js +156 -0
  205. package/dist/sdk/eia.js.map +1 -0
  206. package/dist/sdk/epa.d.ts +128 -0
  207. package/dist/sdk/epa.d.ts.map +1 -0
  208. package/dist/sdk/epa.js +120 -0
  209. package/dist/sdk/epa.js.map +1 -0
  210. package/dist/sdk/fbi.d.ts +48 -0
  211. package/dist/sdk/fbi.d.ts.map +1 -0
  212. package/dist/sdk/fbi.js +69 -0
  213. package/dist/sdk/fbi.js.map +1 -0
  214. package/dist/sdk/fda.d.ts +356 -0
  215. package/dist/sdk/fda.d.ts.map +1 -0
  216. package/dist/sdk/fda.js +162 -0
  217. package/dist/sdk/fda.js.map +1 -0
  218. package/dist/sdk/fdic.d.ts +227 -0
  219. package/dist/sdk/fdic.d.ts.map +1 -0
  220. package/dist/sdk/fdic.js +172 -0
  221. package/dist/sdk/fdic.js.map +1 -0
  222. package/dist/sdk/fec.d.ts +142 -0
  223. package/dist/sdk/fec.d.ts.map +1 -0
  224. package/dist/sdk/fec.js +92 -0
  225. package/dist/sdk/fec.js.map +1 -0
  226. package/dist/sdk/federal-register.d.ts +88 -0
  227. package/dist/sdk/federal-register.d.ts.map +1 -0
  228. package/dist/sdk/federal-register.js +100 -0
  229. package/dist/sdk/federal-register.js.map +1 -0
  230. package/dist/sdk/fema.d.ts +137 -0
  231. package/dist/sdk/fema.d.ts.map +1 -0
  232. package/dist/sdk/fema.js +197 -0
  233. package/dist/sdk/fema.js.map +1 -0
  234. package/dist/sdk/fred.d.ts +72 -0
  235. package/dist/sdk/fred.d.ts.map +1 -0
  236. package/dist/sdk/fred.js +59 -0
  237. package/dist/sdk/fred.js.map +1 -0
  238. package/dist/sdk/govinfo.d.ts +64 -0
  239. package/dist/sdk/govinfo.d.ts.map +1 -0
  240. package/dist/sdk/govinfo.js +187 -0
  241. package/dist/sdk/govinfo.js.map +1 -0
  242. package/dist/sdk/hud.d.ts +87 -0
  243. package/dist/sdk/hud.d.ts.map +1 -0
  244. package/dist/sdk/hud.js +91 -0
  245. package/dist/sdk/hud.js.map +1 -0
  246. package/dist/sdk/index.d.ts +51 -0
  247. package/dist/sdk/index.d.ts.map +1 -0
  248. package/dist/sdk/index.js +51 -0
  249. package/dist/sdk/index.js.map +1 -0
  250. package/dist/sdk/naep.d.ts +93 -0
  251. package/dist/sdk/naep.d.ts.map +1 -0
  252. package/dist/sdk/naep.js +163 -0
  253. package/dist/sdk/naep.js.map +1 -0
  254. package/dist/sdk/nhtsa.d.ts +169 -0
  255. package/dist/sdk/nhtsa.d.ts.map +1 -0
  256. package/dist/sdk/nhtsa.js +102 -0
  257. package/dist/sdk/nhtsa.js.map +1 -0
  258. package/dist/sdk/noaa.d.ts +72 -0
  259. package/dist/sdk/noaa.d.ts.map +1 -0
  260. package/dist/sdk/noaa.js +64 -0
  261. package/dist/sdk/noaa.js.map +1 -0
  262. package/dist/sdk/nrel.d.ts +145 -0
  263. package/dist/sdk/nrel.d.ts.map +1 -0
  264. package/dist/sdk/nrel.js +93 -0
  265. package/dist/sdk/nrel.js.map +1 -0
  266. package/dist/sdk/regulations.d.ts +146 -0
  267. package/dist/sdk/regulations.d.ts.map +1 -0
  268. package/dist/sdk/regulations.js +103 -0
  269. package/dist/sdk/regulations.js.map +1 -0
  270. package/dist/sdk/sec.d.ts +114 -0
  271. package/dist/sdk/sec.d.ts.map +1 -0
  272. package/dist/sdk/sec.js +151 -0
  273. package/dist/sdk/sec.js.map +1 -0
  274. package/dist/sdk/senate-lobbying.d.ts +147 -0
  275. package/dist/sdk/senate-lobbying.d.ts.map +1 -0
  276. package/dist/sdk/senate-lobbying.js +125 -0
  277. package/dist/sdk/senate-lobbying.js.map +1 -0
  278. package/dist/sdk/treasury.d.ts +59 -0
  279. package/dist/sdk/treasury.d.ts.map +1 -0
  280. package/dist/sdk/treasury.js +1397 -0
  281. package/dist/sdk/treasury.js.map +1 -0
  282. package/dist/sdk/usaspending.d.ts +126 -0
  283. package/dist/sdk/usaspending.d.ts.map +1 -0
  284. package/dist/sdk/usaspending.js +270 -0
  285. package/dist/sdk/usaspending.js.map +1 -0
  286. package/dist/sdk/usda-fooddata.d.ts +112 -0
  287. package/dist/sdk/usda-fooddata.d.ts.map +1 -0
  288. package/dist/sdk/usda-fooddata.js +80 -0
  289. package/dist/sdk/usda-fooddata.js.map +1 -0
  290. package/dist/sdk/usda-nass.d.ts +75 -0
  291. package/dist/sdk/usda-nass.d.ts.map +1 -0
  292. package/dist/sdk/usda-nass.js +83 -0
  293. package/dist/sdk/usda-nass.js.map +1 -0
  294. package/dist/sdk/usgs.d.ts +221 -0
  295. package/dist/sdk/usgs.d.ts.map +1 -0
  296. package/dist/sdk/usgs.js +182 -0
  297. package/dist/sdk/usgs.js.map +1 -0
  298. package/dist/sdk/uspto.d.ts +109 -0
  299. package/dist/sdk/uspto.d.ts.map +1 -0
  300. package/dist/sdk/uspto.js +286 -0
  301. package/dist/sdk/uspto.js.map +1 -0
  302. package/dist/sdk/world-bank.d.ts +78 -0
  303. package/dist/sdk/world-bank.d.ts.map +1 -0
  304. package/dist/sdk/world-bank.js +72 -0
  305. package/dist/sdk/world-bank.js.map +1 -0
  306. package/dist/server.d.ts +22 -0
  307. package/dist/server.d.ts.map +1 -0
  308. package/dist/server.js +196 -0
  309. package/dist/server.js.map +1 -0
  310. package/package.json +113 -0
@@ -0,0 +1,227 @@
1
+ /**
2
+ * FDIC SDK — typed API client for the Federal Deposit Insurance Corporation
3
+ * BankFind Suite API.
4
+ *
5
+ * Standalone — no MCP server required. Usage:
6
+ *
7
+ * import { searchInstitutions, getBankFailures, getFinancials } from "us-gov-open-data/sdk/fdic";
8
+ *
9
+ * const banks = await searchInstitutions({ filters: "STNAME:\"California\"", limit: 10 });
10
+ * const failures = await getBankFailures({ limit: 25 });
11
+ *
12
+ * No API key required.
13
+ * Docs: https://banks.data.fdic.gov/docs/
14
+ */
15
+ export interface FdicApiResponse<T = Record<string, unknown>> {
16
+ meta: {
17
+ total: number;
18
+ parameters: Record<string, unknown>;
19
+ index?: string;
20
+ [key: string]: unknown;
21
+ };
22
+ data: Array<{
23
+ data: T;
24
+ score?: number;
25
+ }>;
26
+ totals?: Record<string, unknown>;
27
+ [key: string]: unknown;
28
+ }
29
+ export interface Institution {
30
+ CERT?: number;
31
+ REPDTE?: string;
32
+ INSTNAME?: string;
33
+ CITY?: string;
34
+ STNAME?: string;
35
+ STALP?: string;
36
+ ZIP?: string;
37
+ WEBADDR?: string;
38
+ INSTCAT?: number;
39
+ SPECGRP?: number;
40
+ ASSET?: number;
41
+ DEP?: number;
42
+ DEPDOM?: number;
43
+ NETINC?: number;
44
+ ROA?: number;
45
+ ROE?: number;
46
+ RISESSION?: number;
47
+ CHARTER_CLASS?: string;
48
+ FED_RSSD?: number;
49
+ ACTIVE?: number;
50
+ REGAGENT?: string;
51
+ FDICREGION?: string;
52
+ HCTMULT?: string;
53
+ OFFDOM?: number;
54
+ [key: string]: unknown;
55
+ }
56
+ export interface BankFailure {
57
+ CERT?: number;
58
+ INSTNAME?: string;
59
+ CITY?: string;
60
+ ST?: string;
61
+ FAILDATE?: string;
62
+ SAVR?: string;
63
+ COST?: number;
64
+ RESTYPE?: string;
65
+ RESTYPE1?: string;
66
+ QBFASSET?: number;
67
+ QBFDEP?: number;
68
+ PSTALP?: string;
69
+ [key: string]: unknown;
70
+ }
71
+ export interface FinancialRecord {
72
+ CERT?: number;
73
+ REPDTE?: string;
74
+ INSTNAME?: string;
75
+ ASSET?: number;
76
+ DEP?: number;
77
+ DEPDOM?: number;
78
+ NETINC?: number;
79
+ INTINC?: number;
80
+ EINTEXP?: number;
81
+ ELNATR?: number;
82
+ NITEFDS?: number;
83
+ NONII?: number;
84
+ ROA?: number;
85
+ ROE?: number;
86
+ LNLSGR?: number;
87
+ LNLSNET?: number;
88
+ [key: string]: unknown;
89
+ }
90
+ export interface SodRecord {
91
+ CERT?: number;
92
+ REPDTE?: string;
93
+ INSTNAME?: string;
94
+ BRNUM?: number;
95
+ BRSERTYP?: number;
96
+ STNAME?: string;
97
+ STALP?: string;
98
+ CITY?: string;
99
+ COUNTY?: string;
100
+ ZIPBR?: string;
101
+ DEPSUMBR?: number;
102
+ BKMO?: number;
103
+ [key: string]: unknown;
104
+ }
105
+ export interface HistoryEvent {
106
+ CERT?: number;
107
+ INSTNAME?: string;
108
+ PCITY?: string;
109
+ PSTALP?: string;
110
+ EFFDATE?: string;
111
+ ACESSION?: string;
112
+ ACT_NAME?: string;
113
+ CHARTEFDS?: string;
114
+ [key: string]: unknown;
115
+ }
116
+ export interface DemographicRecord {
117
+ CERT?: number;
118
+ REPDTE?: string;
119
+ INSTNAME?: string;
120
+ STALP?: string;
121
+ STNAME?: string;
122
+ MSA_NO?: string;
123
+ TRACT?: string;
124
+ INCOME_LVL?: string;
125
+ [key: string]: unknown;
126
+ }
127
+ /** Available FDIC API datasets/endpoints. */
128
+ export declare const DATASETS: Record<string, string>;
129
+ /** Common filter field names for the institutions endpoint. */
130
+ export declare const INSTITUTION_FIELDS: Record<string, string>;
131
+ /** Filter syntax examples. */
132
+ export declare const FILTER_EXAMPLES: Record<string, string>;
133
+ /**
134
+ * Search FDIC-insured institutions (banks, savings & loans).
135
+ *
136
+ * Example:
137
+ * const banks = await searchInstitutions({ filters: 'STALP:"CA" AND ACTIVE:1', limit: 25 });
138
+ * const large = await searchInstitutions({ filters: 'ASSET:[1000000 TO *]', sort_by: 'ASSET', sort_order: 'DESC' });
139
+ */
140
+ export declare function searchInstitutions(opts?: {
141
+ filters?: string;
142
+ fields?: string;
143
+ search?: string;
144
+ sort_by?: string;
145
+ sort_order?: string;
146
+ limit?: number;
147
+ offset?: number;
148
+ }): Promise<FdicApiResponse<Institution>>;
149
+ /**
150
+ * Get FDIC-insured bank failures since 1934.
151
+ *
152
+ * Example:
153
+ * const recent = await getBankFailures({ limit: 20, sort_by: "FAILDATE", sort_order: "DESC" });
154
+ * const byState = await getBankFailures({ filters: 'PSTALP:"GA"' });
155
+ */
156
+ export declare function getBankFailures(opts?: {
157
+ filters?: string;
158
+ fields?: string;
159
+ sort_by?: string;
160
+ sort_order?: string;
161
+ limit?: number;
162
+ offset?: number;
163
+ }): Promise<FdicApiResponse<BankFailure>>;
164
+ /**
165
+ * Get quarterly financial reports (Call Report data) for banks.
166
+ *
167
+ * Example:
168
+ * const financials = await getFinancials({ filters: 'CERT:3511', limit: 10 });
169
+ * const stateFinancials = await getFinancials({ filters: 'STALP:"CA" AND REPDTE:20240331', limit: 50 });
170
+ */
171
+ export declare function getFinancials(opts?: {
172
+ filters?: string;
173
+ fields?: string;
174
+ sort_by?: string;
175
+ sort_order?: string;
176
+ limit?: number;
177
+ offset?: number;
178
+ }): Promise<FdicApiResponse<FinancialRecord>>;
179
+ /**
180
+ * Get aggregate banking statistics (industry totals by state, charter type, etc.).
181
+ *
182
+ * Example:
183
+ * const summary = await getSummary({ filters: 'STALP:"TX"', limit: 10 });
184
+ */
185
+ export declare function getSummary(opts?: {
186
+ filters?: string;
187
+ fields?: string;
188
+ sort_by?: string;
189
+ sort_order?: string;
190
+ limit?: number;
191
+ offset?: number;
192
+ agg_by?: string;
193
+ agg_term_fields?: string;
194
+ agg_sum_fields?: string;
195
+ agg_limit?: number;
196
+ }): Promise<FdicApiResponse>;
197
+ /**
198
+ * Get Summary of Deposits — branch-level deposit data (annual, as of June 30).
199
+ *
200
+ * Example:
201
+ * const deposits = await getDeposits({ filters: 'STALP:"NY"', sort_by: 'DEPSUMBR', sort_order: 'DESC', limit: 20 });
202
+ */
203
+ export declare function getDeposits(opts?: {
204
+ filters?: string;
205
+ fields?: string;
206
+ sort_by?: string;
207
+ sort_order?: string;
208
+ limit?: number;
209
+ offset?: number;
210
+ }): Promise<FdicApiResponse<SodRecord>>;
211
+ /**
212
+ * Get institution event history (mergers, name changes, charter changes).
213
+ *
214
+ * Example:
215
+ * const history = await getHistory({ filters: 'CERT:3511', limit: 50 });
216
+ */
217
+ export declare function getHistory(opts?: {
218
+ filters?: string;
219
+ fields?: string;
220
+ sort_by?: string;
221
+ sort_order?: string;
222
+ limit?: number;
223
+ offset?: number;
224
+ }): Promise<FdicApiResponse<HistoryEvent>>;
225
+ /** Clear cached responses. */
226
+ export declare function clearCache(): void;
227
+ //# sourceMappingURL=fdic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fdic.d.ts","sourceRoot":"","sources":["../../src/sdk/fdic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * FDIC SDK — typed API client for the Federal Deposit Insurance Corporation
3
+ * BankFind Suite API.
4
+ *
5
+ * Standalone — no MCP server required. Usage:
6
+ *
7
+ * import { searchInstitutions, getBankFailures, getFinancials } from "us-gov-open-data/sdk/fdic";
8
+ *
9
+ * const banks = await searchInstitutions({ filters: "STNAME:\"California\"", limit: 10 });
10
+ * const failures = await getBankFailures({ limit: 25 });
11
+ *
12
+ * No API key required.
13
+ * Docs: https://banks.data.fdic.gov/docs/
14
+ */
15
+ import { createClient } from "../client.js";
16
+ // ─── Client ──────────────────────────────────────────────────────────
17
+ const client = createClient({
18
+ baseUrl: "https://banks.data.fdic.gov/api",
19
+ name: "fdic",
20
+ rateLimit: { perSecond: 5, burst: 10 },
21
+ cacheTtlMs: 60 * 60 * 1000, // 1 hour
22
+ });
23
+ // ─── Reference Data ──────────────────────────────────────────────────
24
+ /** Available FDIC API datasets/endpoints. */
25
+ export const DATASETS = {
26
+ institutions: "Currently open and insured depository institutions — filterable by state, assets, charter type",
27
+ failures: "All FDIC-insured bank failures since 1934",
28
+ financials: "Call report financial data (assets, deposits, income, ratios) by quarter",
29
+ summary: "Aggregate banking statistics by state or charter type across time",
30
+ sod: "Summary of Deposits — branch-level deposit data, annual (June 30)",
31
+ history: "Institution event history — mergers, name changes, charter changes",
32
+ locations: "Physical branch and office locations",
33
+ demographics: "Community Reinvestment Act assessment area demographics",
34
+ };
35
+ /** Common filter field names for the institutions endpoint. */
36
+ export const INSTITUTION_FIELDS = {
37
+ STALP: "State abbreviation (CA, TX, NY)",
38
+ STNAME: "State full name",
39
+ INSTNAME: "Institution name",
40
+ ACTIVE: "Active status (1=active)",
41
+ INSTCAT: "Institution category (1=commercial bank, 2=savings, 5=state charter, 9=national bank)",
42
+ ASSET: "Total assets (in thousands)",
43
+ DEP: "Total deposits (in thousands)",
44
+ NETINC: "Net income (in thousands)",
45
+ CHARTER_CLASS: "Charter class (N=national, SM=state member, NM=state non-member, SB=savings bank, SL=savings & loan)",
46
+ CITY: "City name",
47
+ ZIP: "ZIP code",
48
+ };
49
+ /** Filter syntax examples. */
50
+ export const FILTER_EXAMPLES = {
51
+ "State filter": 'STALP:"CA"',
52
+ "Active only": "ACTIVE:1",
53
+ "Large banks": "ASSET:[1000000 TO *]",
54
+ "Multiple": 'STALP:"TX" AND ACTIVE:1',
55
+ "Name search": 'INSTNAME:"Wells Fargo"',
56
+ "Charter type": 'CHARTER_CLASS:"N"',
57
+ "Asset range": "ASSET:[100000 TO 500000]",
58
+ };
59
+ // ─── Helpers ─────────────────────────────────────────────────────────
60
+ async function queryEndpoint(endpoint, opts = {}) {
61
+ const params = {};
62
+ if (opts.filters)
63
+ params.filters = opts.filters;
64
+ if (opts.fields)
65
+ params.fields = opts.fields;
66
+ if (opts.sort_by)
67
+ params.sort_by = opts.sort_by;
68
+ if (opts.sort_order)
69
+ params.sort_order = opts.sort_order;
70
+ if (opts.limit !== undefined)
71
+ params.limit = opts.limit;
72
+ if (opts.offset !== undefined)
73
+ params.offset = opts.offset;
74
+ if (opts.search)
75
+ params.search = opts.search;
76
+ if (opts.agg_by)
77
+ params.agg_by = opts.agg_by;
78
+ if (opts.agg_term_fields)
79
+ params.agg_term_fields = opts.agg_term_fields;
80
+ if (opts.agg_sum_fields)
81
+ params.agg_sum_fields = opts.agg_sum_fields;
82
+ if (opts.agg_limit !== undefined)
83
+ params.agg_limit = opts.agg_limit;
84
+ return client.get(`/${endpoint}`, params);
85
+ }
86
+ // ─── Public API ──────────────────────────────────────────────────────
87
+ /**
88
+ * Search FDIC-insured institutions (banks, savings & loans).
89
+ *
90
+ * Example:
91
+ * const banks = await searchInstitutions({ filters: 'STALP:"CA" AND ACTIVE:1', limit: 25 });
92
+ * const large = await searchInstitutions({ filters: 'ASSET:[1000000 TO *]', sort_by: 'ASSET', sort_order: 'DESC' });
93
+ */
94
+ export async function searchInstitutions(opts = {}) {
95
+ return queryEndpoint("institutions", {
96
+ ...opts,
97
+ limit: opts.limit ?? 25,
98
+ sort_order: opts.sort_order ?? "DESC",
99
+ });
100
+ }
101
+ /**
102
+ * Get FDIC-insured bank failures since 1934.
103
+ *
104
+ * Example:
105
+ * const recent = await getBankFailures({ limit: 20, sort_by: "FAILDATE", sort_order: "DESC" });
106
+ * const byState = await getBankFailures({ filters: 'PSTALP:"GA"' });
107
+ */
108
+ export async function getBankFailures(opts = {}) {
109
+ return queryEndpoint("failures", {
110
+ ...opts,
111
+ limit: opts.limit ?? 25,
112
+ sort_by: opts.sort_by ?? "FAILDATE",
113
+ sort_order: opts.sort_order ?? "DESC",
114
+ });
115
+ }
116
+ /**
117
+ * Get quarterly financial reports (Call Report data) for banks.
118
+ *
119
+ * Example:
120
+ * const financials = await getFinancials({ filters: 'CERT:3511', limit: 10 });
121
+ * const stateFinancials = await getFinancials({ filters: 'STALP:"CA" AND REPDTE:20240331', limit: 50 });
122
+ */
123
+ export async function getFinancials(opts = {}) {
124
+ return queryEndpoint("financials", {
125
+ ...opts,
126
+ limit: opts.limit ?? 25,
127
+ sort_by: opts.sort_by ?? "REPDTE",
128
+ sort_order: opts.sort_order ?? "DESC",
129
+ });
130
+ }
131
+ /**
132
+ * Get aggregate banking statistics (industry totals by state, charter type, etc.).
133
+ *
134
+ * Example:
135
+ * const summary = await getSummary({ filters: 'STALP:"TX"', limit: 10 });
136
+ */
137
+ export async function getSummary(opts = {}) {
138
+ return queryEndpoint("summary", {
139
+ ...opts,
140
+ limit: opts.limit ?? 25,
141
+ });
142
+ }
143
+ /**
144
+ * Get Summary of Deposits — branch-level deposit data (annual, as of June 30).
145
+ *
146
+ * Example:
147
+ * const deposits = await getDeposits({ filters: 'STALP:"NY"', sort_by: 'DEPSUMBR', sort_order: 'DESC', limit: 20 });
148
+ */
149
+ export async function getDeposits(opts = {}) {
150
+ return queryEndpoint("sod", {
151
+ ...opts,
152
+ limit: opts.limit ?? 25,
153
+ sort_order: opts.sort_order ?? "DESC",
154
+ });
155
+ }
156
+ /**
157
+ * Get institution event history (mergers, name changes, charter changes).
158
+ *
159
+ * Example:
160
+ * const history = await getHistory({ filters: 'CERT:3511', limit: 50 });
161
+ */
162
+ export async function getHistory(opts = {}) {
163
+ return queryEndpoint("history", {
164
+ ...opts,
165
+ limit: opts.limit ?? 25,
166
+ });
167
+ }
168
+ /** Clear cached responses. */
169
+ export function clearCache() {
170
+ client.clearCache();
171
+ }
172
+ //# sourceMappingURL=fdic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fdic.js","sourceRoot":"","sources":["../../src/sdk/fdic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * FEC SDK — typed API client for OpenFEC (Federal Election Commission).
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { searchCandidates, getCandidateFinancials } from "us-gov-open-data/sdk/fec";
7
+ *
8
+ * Requires DATA_GOV_API_KEY env var. Get one at https://api.data.gov/signup/
9
+ * Docs: https://api.open.fec.gov/developers/
10
+ */
11
+ export interface FecPagination {
12
+ page: number;
13
+ per_page: number;
14
+ count: number;
15
+ pages: number;
16
+ }
17
+ export interface FecCandidate {
18
+ candidate_id: string;
19
+ name: string;
20
+ party: string;
21
+ party_full?: string;
22
+ office: string;
23
+ office_full?: string;
24
+ state?: string;
25
+ district?: string;
26
+ election_years?: number[];
27
+ candidate_status?: string;
28
+ incumbent_challenge?: string;
29
+ incumbent_challenge_full?: string;
30
+ has_raised_funds?: boolean;
31
+ [key: string]: unknown;
32
+ }
33
+ export interface FecCommittee {
34
+ committee_id: string;
35
+ name: string;
36
+ committee_type: string;
37
+ committee_type_full?: string;
38
+ party?: string;
39
+ party_full?: string;
40
+ state?: string;
41
+ designation?: string;
42
+ designation_full?: string;
43
+ filing_frequency?: string;
44
+ [key: string]: unknown;
45
+ }
46
+ export interface FecFinancialTotals {
47
+ cycle: number;
48
+ receipts: number;
49
+ disbursements: number;
50
+ cash_on_hand_end_period?: number;
51
+ last_cash_on_hand_end_period?: number;
52
+ debts_owed_by_committee?: number;
53
+ last_debts_owed_by_committee?: number;
54
+ individual_contributions?: number;
55
+ other_political_committee_contributions?: number;
56
+ political_party_committee_contributions?: number;
57
+ independent_expenditures?: number;
58
+ coverage_start_date?: string;
59
+ coverage_end_date?: string;
60
+ committee_type?: string;
61
+ committee_type_full?: string;
62
+ [key: string]: unknown;
63
+ }
64
+ export interface FecCandidateTotals {
65
+ name: string;
66
+ candidate_id?: string;
67
+ party?: string;
68
+ party_full?: string;
69
+ state?: string;
70
+ receipts: number;
71
+ disbursements: number;
72
+ cash_on_hand_end_period?: number;
73
+ [key: string]: unknown;
74
+ }
75
+ export interface FecSearchResult<T> {
76
+ pagination: FecPagination;
77
+ results: T[];
78
+ }
79
+ export interface FecDisbursement {
80
+ committee_id: string;
81
+ committee: {
82
+ name: string;
83
+ committee_id: string;
84
+ party?: string;
85
+ } | null;
86
+ recipient_name: string;
87
+ recipient_committee_id: string | null;
88
+ recipient_committee: {
89
+ name: string;
90
+ committee_id: string;
91
+ party?: string;
92
+ committee_type_full?: string;
93
+ } | null;
94
+ disbursement_amount: number;
95
+ disbursement_date: string;
96
+ disbursement_description: string;
97
+ recipient_state: string | null;
98
+ line_number_label: string | null;
99
+ memo_text: string | null;
100
+ [key: string]: unknown;
101
+ }
102
+ /** Search for federal election candidates by name, state, party, office, or election year. */
103
+ export declare function searchCandidates(opts?: {
104
+ name?: string;
105
+ state?: string;
106
+ party?: string;
107
+ office?: string;
108
+ election_year?: number;
109
+ page?: number;
110
+ per_page?: number;
111
+ }): Promise<FecSearchResult<FecCandidate>>;
112
+ /** Search for political committees (PACs, campaign committees, party committees). */
113
+ export declare function searchCommittees(opts?: {
114
+ name?: string;
115
+ state?: string;
116
+ committee_type?: string;
117
+ cycle?: number;
118
+ page?: number;
119
+ per_page?: number;
120
+ }): Promise<FecSearchResult<FecCommittee>>;
121
+ /** Get financial summary for a candidate. */
122
+ export declare function getCandidateFinancials(candidateId: string, cycle?: number): Promise<FecFinancialTotals[]>;
123
+ /** Get financial totals for a committee (PAC, campaign, party). */
124
+ export declare function getCommitteeFinancials(committeeId: string, cycle?: number): Promise<FecFinancialTotals[]>;
125
+ /** Get top candidates ranked by total money raised for a given office and cycle. */
126
+ export declare function getTopCandidates(opts: {
127
+ office: string;
128
+ election_year: number;
129
+ state?: string;
130
+ per_page?: number;
131
+ }): Promise<FecSearchResult<FecCandidateTotals>>;
132
+ /** Get itemized disbursements (Schedule B) for a committee — shows exactly who received money. */
133
+ export declare function getCommitteeDisbursements(opts: {
134
+ committee_id: string;
135
+ cycle?: number;
136
+ recipient_name?: string;
137
+ per_page?: number;
138
+ sort?: string;
139
+ }): Promise<FecSearchResult<FecDisbursement>>;
140
+ /** Clear cached responses. */
141
+ export declare function clearCache(): void;
142
+ //# sourceMappingURL=fec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fec.d.ts","sourceRoot":"","sources":["../../src/sdk/fec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,8FAA8F;AAC9F,wBAAsB,gBAAgB,CAAC,IAAI,GAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAW9C;AAED,qFAAqF;AACrF,wBAAsB,gBAAgB,CAAC,IAAI,GAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAS9C;AAED,6CAA6C;AAC7C,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAO/B;AAED,mEAAmE;AACnE,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAO/B;AAED,oFAAoF;AACpF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAW/C;AAED,kGAAkG;AAClG,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAW5C;AAED,8BAA8B;AAC9B,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * FEC SDK — typed API client for OpenFEC (Federal Election Commission).
3
+ *
4
+ * Standalone — no MCP server required. Usage:
5
+ *
6
+ * import { searchCandidates, getCandidateFinancials } from "us-gov-open-data/sdk/fec";
7
+ *
8
+ * Requires DATA_GOV_API_KEY env var. Get one at https://api.data.gov/signup/
9
+ * Docs: https://api.open.fec.gov/developers/
10
+ */
11
+ import { createClient } from "../client.js";
12
+ // ─── Client ──────────────────────────────────────────────────────────
13
+ const api = createClient({
14
+ baseUrl: "https://api.open.fec.gov/v1",
15
+ name: "fec",
16
+ auth: { type: "query", key: "api_key", envVar: "DATA_GOV_API_KEY" },
17
+ rateLimit: { perSecond: 3, burst: 10 }, // 1000 req/hour ≈ ~0.28/s, burst for interactive use
18
+ cacheTtlMs: 30 * 60 * 1000, // 30 min
19
+ });
20
+ // ─── Public API ──────────────────────────────────────────────────────
21
+ /** Search for federal election candidates by name, state, party, office, or election year. */
22
+ export async function searchCandidates(opts = {}) {
23
+ return api.get("/candidates/search/", {
24
+ q: opts.name,
25
+ state: opts.state,
26
+ party: opts.party,
27
+ office: opts.office,
28
+ election_year: opts.election_year,
29
+ page: opts.page ?? 1,
30
+ per_page: opts.per_page ?? 20,
31
+ sort: "-first_file_date",
32
+ });
33
+ }
34
+ /** Search for political committees (PACs, campaign committees, party committees). */
35
+ export async function searchCommittees(opts = {}) {
36
+ return api.get("/committees/", {
37
+ q: opts.name,
38
+ state: opts.state,
39
+ committee_type: opts.committee_type,
40
+ cycle: opts.cycle,
41
+ page: opts.page ?? 1,
42
+ per_page: opts.per_page ?? 20,
43
+ });
44
+ }
45
+ /** Get financial summary for a candidate. */
46
+ export async function getCandidateFinancials(candidateId, cycle) {
47
+ const params = {};
48
+ if (cycle)
49
+ params.cycle = cycle;
50
+ const res = await api.get(`/candidate/${candidateId}/totals/`, params);
51
+ return res.results ?? [];
52
+ }
53
+ /** Get financial totals for a committee (PAC, campaign, party). */
54
+ export async function getCommitteeFinancials(committeeId, cycle) {
55
+ const params = {};
56
+ if (cycle)
57
+ params.cycle = cycle;
58
+ const res = await api.get(`/committee/${committeeId}/totals/`, params);
59
+ return res.results ?? [];
60
+ }
61
+ /** Get top candidates ranked by total money raised for a given office and cycle. */
62
+ export async function getTopCandidates(opts) {
63
+ return api.get("/candidates/totals/", {
64
+ office: opts.office,
65
+ election_year: opts.election_year,
66
+ state: opts.state,
67
+ sort: "-receipts",
68
+ sort_null_only: "false",
69
+ per_page: opts.per_page ?? 20,
70
+ page: 1,
71
+ is_active_candidate: "true",
72
+ });
73
+ }
74
+ /** Get itemized disbursements (Schedule B) for a committee — shows exactly who received money. */
75
+ export async function getCommitteeDisbursements(opts) {
76
+ const params = {
77
+ committee_id: opts.committee_id,
78
+ per_page: opts.per_page ?? 20,
79
+ sort: opts.sort ?? "-disbursement_date",
80
+ sort_null_only: "false",
81
+ };
82
+ if (opts.cycle)
83
+ params.two_year_transaction_period = opts.cycle;
84
+ if (opts.recipient_name)
85
+ params.recipient_name = opts.recipient_name;
86
+ return api.get("/schedules/schedule_b/", params);
87
+ }
88
+ /** Clear cached responses. */
89
+ export function clearCache() {
90
+ api.clearCache();
91
+ }
92
+ //# sourceMappingURL=fec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fec.js","sourceRoot":"","sources":["../../src/sdk/fec.ts"],"names":[],"mappings":"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"}