File size: 62,615 Bytes
3d16fe6
896453f
 
1f7780e
896453f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fcf298e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-integrations/fec-integration-summary" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.0"><title data-rh=true>FEC Campaign Finance Integration - Implementation Summary | Open Navigator</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true property=og:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true name=twitter:image content=https://www.communityone.com/img/docusaurus-social-card.jpg /><meta data-rh=true property=og:url content=https://www.communityone.com/docs/integrations/fec-integration-summary /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=keywords content="civic engagement, policy tracking, meeting minutes, nonprofit tracking, municipal government, advocacy, open data, local government"/><meta data-rh=true property=og:type content=website /><meta data-rh=true property=og:site_name content="Open Navigator"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true name=docusaurus_version content=current /><meta data-rh=true name=docusaurus_tag content=docs-default-current /><meta data-rh=true name=docsearch:version content=current /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current /><meta data-rh=true property=og:title content="FEC Campaign Finance Integration - Implementation Summary | Open Navigator"/><meta data-rh=true name=description content="βœ… What Was Added"/><meta data-rh=true property=og:description content="βœ… What Was Added"/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://www.communityone.com/docs/integrations/fec-integration-summary /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/integrations/fec-integration-summary hreflang=en /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/integrations/fec-integration-summary hreflang=x-default /><script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://www.communityone.com/docs/for-developers","name":"Developers & Technical Users","position":1},{"@type":"ListItem","item":"https://www.communityone.com/docs/integrations/fec-integration-summary","name":"FEC Campaign Finance Integration - Implementation Summary","position":2}]}</script><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="Open Navigator RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="Open Navigator Atom Feed"><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-5EQV815915"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-5EQV815915",{anonymize_ip:!0})</script><link rel=stylesheet href=/assets/css/styles.c89d6b2d.css /><script src=/assets/js/runtime~main.c8fa085e.js defer></script><script src=/assets/js/main.6e24e536.js defer></script></head><body><svg style="display: none;"><defs>
<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme-7e9")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/img/communityone_logo.svg /><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","address":{"@type":"PostalAddress","addressCountry":"US","addressLocality":"Tuscaloosa","addressRegion":"AL","postalCode":"35406","streetAddress":"5617 Lakeridge Court"},"contactPoint":{"@type":"ContactPoint","availableLanguage":["English"],"contactType":"Customer Service","email":"johnbowyer@communityone.com"},"description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI. The open path to everything local.","email":"johnbowyer@communityone.com","legalName":"CommunityOne","logo":"https://www.communityone.com/img/communityone_logo.svg","name":"CommunityOne","sameAs":["https://www.facebook.com/communityone","https://www.instagram.com/communityone","https://twitter.com/communityone","https://www.linkedin.com/company/communityone","https://www.youtube.com/@communityone","https://discord.gg/communityone","https://github.com/getcommunityone/open-navigator"],"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"WebSite","alternateName":"CommunityOne Open Navigator","description":"AI-powered civic engagement platform tracking jurisdictions, nonprofits, and government meetings","name":"Open Navigator","potentialAction":{"@type":"SearchAction","query-input":"required name=search_term_string","target":{"@type":"EntryPoint","urlTemplate":"https://www.communityone.com/search?q={search_term_string}"}},"url":"https://www.communityone.com"}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"SoftwareApplication","aggregateRating":{"@type":"AggregateRating","ratingCount":"1","ratingValue":"5"},"applicationCategory":"BusinessApplication","description":"Track 90,000+ jurisdictions, 1.8M nonprofits, and analyze meeting minutes with AI","featureList":["Track 90,000+ jurisdictions","Monitor 1.8M nonprofits","Analyze meeting minutes","Legislative bill tracking","Campaign finance data"],"name":"Open Navigator","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"operatingSystem":"Web","screenshot":"https://www.communityone.com/img/docusaurus-social-card.jpg","softwareVersion":"1.0.0"}</script><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a href=https://www.communityone.com target=_self rel="noopener noreferrer" class=navbar__brand><div class=navbar__logo><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/communityone_logo.svg alt="CommunityOne Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate">Open Navigator Home</b></a><a class="navbar__item navbar__link" href=/docs/intro>Getting Started</a><a class="navbar__item navbar__link" href=/docs/for-families>Families & Individuals</a><a class="navbar__item navbar__link" href=/docs/for-advocates>Policy Makers</a><a class="navbar__item navbar__link" href=/docs/for-developers>Developers</a><a class="navbar__item navbar__link" href=/docs/data-sources/citations>Data and Terms</a><a class="navbar__item navbar__link" href=/blog>Blog</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/docs/intro><span title="Getting Started" class=categoryLinkLabel_W154>Getting Started</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/intro><span title=Introduction class=linkLabel_WmDU>Introduction</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/open-navigator><span title="Open Navigator" class=linkLabel_WmDU>Open Navigator</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" href=/docs/for-families><span title="Families & Individuals" class=categoryLinkLabel_W154>Families & Individuals</span></a><button aria-label="Collapse sidebar category 'Families & Individuals'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/families/community-events><span title="Resources for Families" class=categoryLinkLabel_W154>Resources for Families</span></a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/open-navigator><span title="Getting Started with Open Navigator" class=linkLabel_WmDU>Getting Started with Open Navigator</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/data-sources/citations><span title="Data and Citations" class=linkLabel_WmDU>Data and Citations</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist" href=/docs/for-advocates><span title="Policy Makers & Advocates" class=categoryLinkLabel_W154>Policy Makers & Advocates</span></a><button aria-label="Collapse sidebar category 'Policy Makers & Advocates'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/data-sources/overview><span title="Understanding the Data" class=categoryLinkLabel_W154>Understanding the Data</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/guides/political-economy><span title="Analysis & Strategy" class=categoryLinkLabel_W154>Analysis & Strategy</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/case-studies/tuscaloosa-complete><span title="Real-World Examples" class=categoryLinkLabel_W154>Real-World Examples</span></a></div></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href=/docs/for-developers><span title="Developers & Technical Users" class=categoryLinkLabel_W154>Developers & Technical Users</span></a><button aria-label="Collapse sidebar category 'Developers & Technical Users'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul class=menu__list><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/quickstart><span title="Setup & Installation" class=categoryLinkLabel_W154>Setup & Installation</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/data-sources/citations><span title="Data Sources (Technical)" class=categoryLinkLabel_W154>Data Sources (Technical)</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/guides/jurisdiction-setup><span title="How-To Guides" class=categoryLinkLabel_W154>How-To Guides</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true tabindex=0 href=/docs/integrations/mcp-server><span title=Integrations class=categoryLinkLabel_W154>Integrations</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/mcp-server><span title="Model Context Protocol (MCP) Server" class=linkLabel_WmDU>Model Context Protocol (MCP) Server</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/grants-gov-api><span title="Grants.gov API Integration" class=linkLabel_WmDU>Grants.gov API Integration</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/fec-political-contributions><span title="FEC Political Contributions" class=linkLabel_WmDU>FEC Political Contributions</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/fec-campaign-finance><span title="FEC Campaign Finance Integration" class=linkLabel_WmDU>FEC Campaign Finance Integration</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/dataverse-summary><span title="πŸŽ‰ Harvard Dataverse Integration - Complete!" class=linkLabel_WmDU>πŸŽ‰ Harvard Dataverse Integration - Complete!</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/dataverse><span title="πŸ“š Dataverse API Integration" class=linkLabel_WmDU>πŸ“š Dataverse API Integration</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/eboard-automated><span title="Automated eBoard Scraping Solutions" class=linkLabel_WmDU>Automated eBoard Scraping Solutions</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/eboard-cookies><span title="eBoard Cookie Extraction Guide" class=linkLabel_WmDU>eBoard Cookie Extraction Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/eboard-manual><span title="eBoard Platform Manual Download Guide" class=linkLabel_WmDU>eBoard Platform Manual Download Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/integrations/fec-integration-summary><span title="FEC Campaign Finance Integration - Implementation Summary" class=linkLabel_WmDU>FEC Campaign Finance Integration - Implementation Summary</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/frontend><span title="Frontend Integration Guide" class=linkLabel_WmDU>Frontend Integration Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/localview><span title="πŸ“š LocalView Integration Guide" class=linkLabel_WmDU>πŸ“š LocalView Integration Guide</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integrations/overview><span title="Integration Guide: Reusing Open-Source Municipal Scraping Logic" class=linkLabel_WmDU>Integration Guide: Reusing Open-Source Municipal Scraping Logic</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/deployment/databricks-apps><span title=Deployment class=categoryLinkLabel_W154>Deployment</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false tabindex=0 href=/docs/development/database-setup><span title=Development class=categoryLinkLabel_W154>Development</span></a></div></ul></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><a class=breadcrumbs__link href=/docs/for-developers><span>Developers & Technical Users</span></a><li class=breadcrumbs__item><span class=breadcrumbs__link>Integrations</span><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>FEC Campaign Finance Integration - Implementation Summary</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>FEC Campaign Finance Integration - Implementation Summary</h1></header>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-what-was-added>βœ… What Was Added<a href=#-what-was-added class=hash-link aria-label="Direct link to βœ… What Was Added" title="Direct link to βœ… What Was Added" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-pipeline-module>1. Pipeline Module<a href=#1-pipeline-module class=hash-link aria-label="Direct link to 1. Pipeline Module" title="Direct link to 1. Pipeline Module" translate=no>​</a></h3>
<p><strong>File:</strong> <a class="" href=/docs/pipeline/create_campaigns_gold_tables.py><code>pipeline/create_campaigns_gold_tables.py</code></a></p>
<p>Creates 4 campaign finance gold tables per state:</p>
<ul>
<li class=""><code>campaigns_candidates.parquet</code> - Federal candidates (House, Senate, President)</li>
<li class=""><code>campaigns_committees.parquet</code> - PACs and campaign committees</li>
<li class=""><code>campaigns_contributions.parquet</code> - Individual contributions $200+</li>
<li class=""><code>campaigns_nonprofit_donors.parquet</code> - Nonprofit leadership political giving analysis</li>
</ul>
<p><strong>Key Features:</strong></p>
<ul>
<li class="">State-specific data extraction</li>
<li class="">Links to nonprofits via employer matching</li>
<li class="">Links to nonprofit officers via name matching</li>
<li class="">Configurable contribution limits and cycle years</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-example-demo-script>2. Example Demo Script<a href=#2-example-demo-script class=hash-link aria-label="Direct link to 2. Example Demo Script" title="Direct link to 2. Example Demo Script" translate=no>​</a></h3>
<p><strong>File:</strong> <a class="" href=/docs/examples/demo_fec_integration.py><code>examples/demo_fec_integration.py</code></a></p>
<p>Interactive demonstration of FEC API capabilities:</p>
<ul>
<li class="">Search for candidates in a state</li>
<li class="">Find contributions from specific employers</li>
<li class="">Track nonprofit leadership donations</li>
<li class="">Create gold tables for integration</li>
</ul>
<p><strong>Usage:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Basic demo</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python examples/demo_fec_integration.py --state MA</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Search specific employer</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python examples/demo_fec_integration.py --state MA --employer "Community Health"</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Create gold tables</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python examples/demo_fec_integration.py --state MA --create-gold-tables</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-comprehensive-documentation>3. Comprehensive Documentation<a href=#3-comprehensive-documentation class=hash-link aria-label="Direct link to 3. Comprehensive Documentation" title="Direct link to 3. Comprehensive Documentation" translate=no>​</a></h3>
<p><strong>File:</strong> <a class="" href=/docs/website/docs/integrations/fec-campaign-finance.md><code>website/docs/integrations/fec-campaign-finance.md</code></a></p>
<p>Complete integration guide including:</p>
<ul>
<li class="">API access setup (get free key from api.data.gov)</li>
<li class="">Gold table schemas</li>
<li class="">Use case examples</li>
<li class="">Data model integration</li>
<li class="">Advanced usage patterns</li>
<li class="">Best practices</li>
</ul>
<p><strong>Complements existing file:</strong> <a class="" href=/docs/website/docs/integrations/fec-political-contributions.md><code>website/docs/integrations/fec-political-contributions.md</code></a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-integration-with-existing-data-model>πŸ”„ Integration with Existing Data Model<a href=#-integration-with-existing-data-model class=hash-link aria-label="Direct link to πŸ”„ Integration with Existing Data Model" title="Direct link to πŸ”„ Integration with Existing Data Model" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=data-linkages>Data Linkages<a href=#data-linkages class=hash-link aria-label="Direct link to Data Linkages" title="Direct link to Data Linkages" translate=no>​</a></h3>
<p>The FEC integration connects to existing gold tables:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">campaigns_contributions.parquet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    β”œβ”€β–Ί contributor_employer  ───────► nonprofits_organizations.organization_name</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    └─► contributor_name      ───────► contacts_nonprofit_officers.officer_name</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">campaigns_nonprofit_donors.parquet (Analysis Table)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    β”œβ”€β–Ί ein                   ───────► nonprofits_organizations.ein</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    β”œβ”€β–Ί organization_name     ───────► nonprofits_organizations.organization_name</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    └─► contributor_name      ───────► contacts_nonprofit_officers.officer_name</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">campaigns_candidates.parquet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    └─► state                 ───────► State-partitioned data structure</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">campaigns_committees.parquet</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    └─► state                 ───────► State-partitioned data structure</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=use-cases-enabled>Use Cases Enabled<a href=#use-cases-enabled class=hash-link aria-label="Direct link to Use Cases Enabled" title="Direct link to Use Cases Enabled" translate=no>​</a></h3>
<ol>
<li class="">
<p><strong>Track Political Influence on Grant Awards</strong></p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># Load data</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">contributions </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> pd</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">read_parquet</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'data/gold/states/MA/campaigns_contributions.parquet'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">grants </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> pd</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">read_parquet</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'data/gold/states/MA/grants_revenue_sources.parquet'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Analyze correlation between political giving and grant receipt</span><br/></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Identify Politically Active Nonprofit Leaders</strong></p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># Load nonprofit donor analysis</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">donors </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> pd</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">read_parquet</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'data/gold/states/MA/campaigns_nonprofit_donors.parquet'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># See which nonprofit officers donate politically</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">donors</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">groupby</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'organization_name'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>[</span><span class="token string" style=color:#e3116c>'contribution_amount'</span><span class="token punctuation" style=color:#393A34>]</span><span class="token punctuation" style=color:#393A34>.</span><span class="token builtin">sum</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Map Donor Networks in Healthcare Policy</strong></p>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token comment" style=color:#999988;font-style:italic># Find health sector political contributions</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">health_contribs </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> contributions</span><span class="token punctuation" style=color:#393A34>[</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    contributions</span><span class="token punctuation" style=color:#393A34>[</span><span class="token string" style=color:#e3116c>'contributor_employer'</span><span class="token punctuation" style=color:#393A34>]</span><span class="token punctuation" style=color:#393A34>.</span><span class="token builtin">str</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">contains</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'Health'</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>case</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>False</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> na</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>False</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>]</span><br/></div></code></pre></div></div>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-directory-structure>πŸ“Š Directory Structure<a href=#-directory-structure class=hash-link aria-label="Direct link to πŸ“Š Directory Structure" title="Direct link to πŸ“Š Directory Structure" translate=no>​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-text codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">data/gold/states/{STATE}/</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€ campaigns_candidates.parquet          ← NEW</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€ campaigns_committees.parquet          ← NEW  </span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€ campaigns_contributions.parquet       ← NEW</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€ campaigns_nonprofit_donors.parquet    ← NEW (Analysis)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€ nonprofits_organizations.parquet      (Links via employer)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">β”œβ”€β”€ contacts_nonprofit_officers.parquet   (Links via name)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">└── grants_revenue_sources.parquet        (Cross-reference)</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-quick-start>πŸš€ Quick Start<a href=#-quick-start class=hash-link aria-label="Direct link to πŸš€ Quick Start" title="Direct link to πŸš€ Quick Start" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-get-fec-api-key>1. Get FEC API Key<a href=#1-get-fec-api-key class=hash-link aria-label="Direct link to 1. Get FEC API Key" title="Direct link to 1. Get FEC API Key" translate=no>​</a></h3>
<p>Visit: <a href=https://api.data.gov/signup/ target=_blank rel="noopener noreferrer" class="">https://api.data.gov/signup/</a></p>
<ul>
<li class="">Free tier: 1,000 requests/hour</li>
<li class="">Instant activation</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-set-environment-variable>2. Set Environment Variable<a href=#2-set-environment-variable class=hash-link aria-label="Direct link to 2. Set Environment Variable" title="Direct link to 2. Set Environment Variable" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain">echo 'FEC_API_KEY="your_key_here"' >> .env</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-create-gold-tables>3. Create Gold Tables<a href=#3-create-gold-tables class=hash-link aria-label="Direct link to 3. Create Gold Tables" title="Direct link to 3. Create Gold Tables" translate=no>​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token plain"># Activate environment</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">source .venv/bin/activate</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Create campaign finance tables for Massachusetts</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python pipeline/create_campaigns_gold_tables.py \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  --state MA \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  --cycle 2024 \</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">  --max-contributions 10000</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=4-analyze-data>4. Analyze Data<a href=#4-analyze-data class=hash-link aria-label="Direct link to 4. Analyze Data" title="Direct link to 4. Analyze Data" translate=no>​</a></h3>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#393A34;--prism-background-color:#f6f8fa><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-python codeBlock_bY9V thin-scrollbar" style=color:#393A34;background-color:#f6f8fa><code class=codeBlockLines_e6Vv><div class=token-line style=color:#393A34><span class="token keyword" style=color:#00009f>import</span><span class="token plain"> pandas </span><span class="token keyword" style=color:#00009f>as</span><span class="token plain"> pd</span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Load nonprofit donor analysis</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">donors </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> pd</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">read_parquet</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'data/gold/states/MA/campaigns_nonprofit_donors.parquet'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain" style=display:inline-block></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token comment" style=color:#999988;font-style:italic># Top nonprofit organizations by political giving</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token keyword" style=color:#00009f>print</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">donors</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">groupby</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'organization_name'</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">agg</span><span class="token punctuation" style=color:#393A34>(</span><span class="token punctuation" style=color:#393A34>{</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    </span><span class="token string" style=color:#e3116c>'contribution_amount'</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>'sum'</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">    </span><span class="token string" style=color:#e3116c>'contributor_name'</span><span class="token punctuation" style=color:#393A34>:</span><span class="token plain"> </span><span class="token string" style=color:#e3116c>'count'</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token punctuation" style=color:#393A34>}</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">sort_values</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>'contribution_amount'</span><span class="token punctuation" style=color:#393A34>,</span><span class="token plain"> ascending</span><span class="token operator" style=color:#393A34>=</span><span class="token boolean" style=color:#36acaa>False</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">head</span><span class="token punctuation" style=color:#393A34>(</span><span class="token number" style=color:#36acaa>10</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-api-reference>πŸ“– API Reference<a href=#-api-reference class=hash-link aria-label="Direct link to πŸ“– API Reference" title="Direct link to πŸ“– API Reference" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=main-classes>Main Classes<a href=#main-classes class=hash-link aria-label="Direct link to Main Classes" title="Direct link to Main Classes" translate=no>​</a></h3>
<p><strong><code>CampaignsGoldTableCreator</code></strong> - Pipeline for creating gold tables</p>
<ul>
<li class=""><code>create_campaigns_candidates(cycle)</code> - Extract candidate data</li>
<li class=""><code>create_campaigns_committees(cycle)</code> - Extract committee data</li>
<li class=""><code>create_campaigns_contributions(min_amount, max_records, cycle)</code> - Extract contributions</li>
<li class=""><code>create_campaigns_nonprofit_donors(contributions_df)</code> - Analyze nonprofit leadership donations</li>
<li class=""><code>create_all_campaigns_tables(cycle, min_contribution_amount, max_contributions)</code> - Run full pipeline</li>
</ul>
<p><strong><code>OpenFECAPI</code></strong> (from <code>discovery/fec_integration.py</code>) - API client</p>
<ul>
<li class=""><code>search_individual_contributions(...)</code> - Search contributions</li>
<li class=""><code>search_candidates(...)</code> - Find candidates</li>
<li class=""><code>search_committees(...)</code> - Find PACs/committees</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-related-files>πŸ”— Related Files<a href=#-related-files class=hash-link aria-label="Direct link to πŸ”— Related Files" title="Direct link to πŸ”— Related Files" translate=no>​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=existing-files-enhanced>Existing Files (Enhanced)<a href=#existing-files-enhanced class=hash-link aria-label="Direct link to Existing Files (Enhanced)" title="Direct link to Existing Files (Enhanced)" translate=no>​</a></h3>
<ul>
<li class=""><a class="" href=/docs/discovery/fec_integration.py><code>discovery/fec_integration.py</code></a> - FEC API client (already existed)</li>
<li class=""><a class="" href=/docs/website/docs/integrations/fec-political-contributions.md><code>website/docs/integrations/fec-political-contributions.md</code></a> - General integration guide (already existed)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=new-files-created>New Files (Created)<a href=#new-files-created class=hash-link aria-label="Direct link to New Files (Created)" title="Direct link to New Files (Created)" translate=no>​</a></h3>
<ul>
<li class=""><a class="" href=/docs/pipeline/create_campaigns_gold_tables.py><code>pipeline/create_campaigns_gold_tables.py</code></a> - <strong>NEW</strong> - Gold table pipeline</li>
<li class=""><a class="" href=/docs/examples/demo_fec_integration.py><code>examples/demo_fec_integration.py</code></a> - <strong>NEW</strong> - Demo script</li>
<li class=""><a class="" href=/docs/website/docs/integrations/fec-campaign-finance.md><code>website/docs/integrations/fec-campaign-finance.md</code></a> - <strong>NEW</strong> - Technical guide</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-future-enhancements>🎯 Future Enhancements<a href=#-future-enhancements class=hash-link aria-label="Direct link to 🎯 Future Enhancements" title="Direct link to 🎯 Future Enhancements" translate=no>​</a></h2>
<p>Potential additions to consider:</p>
<ol>
<li class="">
<p><strong>Add to main orchestration script</strong></p>
<ul>
<li class="">Update <code>scripts/create_all_gold_tables.py</code> to include campaigns pipeline</li>
</ul>
</li>
<li class="">
<p><strong>Dashboard integration</strong></p>
<ul>
<li class="">Add FEC visualizations to React app</li>
<li class="">Display political connections on nonprofit profiles</li>
<li class="">Show donor network graphs</li>
</ul>
</li>
<li class="">
<p><strong>Automated analysis</strong></p>
<ul>
<li class="">Scheduled updates (campaigns data updated daily by FEC)</li>
<li class="">Alerts for new major contributions</li>
<li class="">Influence score calculations</li>
</ul>
</li>
<li class="">
<p><strong>Extended matching</strong></p>
<ul>
<li class="">Fuzzy name matching for officers</li>
<li class="">Organization name normalization</li>
<li class="">Cross-reference with local officials data</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-documentation-links>πŸ“ Documentation Links<a href=#-documentation-links class=hash-link aria-label="Direct link to πŸ“ Documentation Links" title="Direct link to πŸ“ Documentation Links" translate=no>​</a></h2>
<ul>
<li class=""><strong>Technical Guide:</strong> <a class="" href=/docs/website/docs/integrations/fec-campaign-finance.md>FEC Campaign Finance</a></li>
<li class=""><strong>General Guide:</strong> <a class="" href=/docs/website/docs/integrations/fec-political-contributions.md>FEC Political Contributions</a></li>
<li class=""><strong>Demo Script:</strong> <a class="" href=/docs/examples/demo_fec_integration.py>examples/demo_fec_integration.py</a></li>
<li class=""><strong>API Client:</strong> <a class="" href=/docs/discovery/fec_integration.py>discovery/fec_integration.py</a></li>
<li class=""><strong>Pipeline Module:</strong> <a class="" href=/docs/pipeline/create_campaigns_gold_tables.py>pipeline/create_campaigns_gold_tables.py</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-checklist-for-integration>βœ… Checklist for Integration<a href=#-checklist-for-integration class=hash-link aria-label="Direct link to βœ… Checklist for Integration" title="Direct link to βœ… Checklist for Integration" translate=no>​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Create pipeline module for gold table generation</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Add example demo script</li>
<li class=task-list-item><input type=checkbox disabled checked/> <!-- -->Write comprehensive documentation</li>
<li class=task-list-item><input type=checkbox disabled/> <!-- -->Add to main orchestration script (optional)</li>
<li class=task-list-item><input type=checkbox disabled/> <!-- -->Create React dashboard components (optional)</li>
<li class=task-list-item><input type=checkbox disabled/> <!-- -->Set up automated updates (optional)</li>
</ul>
<hr/>
<p><strong>Implementation Date:</strong> April 28, 2026
<strong>Author:</strong> GitHub Copilot
<strong>License:</strong> MIT (consistent with project)</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href=https://github.com/getcommunityone/open-navigator-for-engagement/tree/main/website/docs/integrations/fec-integration-summary.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_Z9Sw aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/docs/integrations/eboard-manual><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>eBoard Platform Manual Download Guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/integrations/frontend><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Frontend Integration Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#-what-was-added class="table-of-contents__link toc-highlight">βœ… What Was Added</a><ul><li><a href=#1-pipeline-module class="table-of-contents__link toc-highlight">1. Pipeline Module</a><li><a href=#2-example-demo-script class="table-of-contents__link toc-highlight">2. Example Demo Script</a><li><a href=#3-comprehensive-documentation class="table-of-contents__link toc-highlight">3. Comprehensive Documentation</a></ul><li><a href=#-integration-with-existing-data-model class="table-of-contents__link toc-highlight">πŸ”„ Integration with Existing Data Model</a><ul><li><a href=#data-linkages class="table-of-contents__link toc-highlight">Data Linkages</a><li><a href=#use-cases-enabled class="table-of-contents__link toc-highlight">Use Cases Enabled</a></ul><li><a href=#-directory-structure class="table-of-contents__link toc-highlight">πŸ“Š Directory Structure</a><li><a href=#-quick-start class="table-of-contents__link toc-highlight">πŸš€ Quick Start</a><ul><li><a href=#1-get-fec-api-key class="table-of-contents__link toc-highlight">1. Get FEC API Key</a><li><a href=#2-set-environment-variable class="table-of-contents__link toc-highlight">2. Set Environment Variable</a><li><a href=#3-create-gold-tables class="table-of-contents__link toc-highlight">3. Create Gold Tables</a><li><a href=#4-analyze-data class="table-of-contents__link toc-highlight">4. Analyze Data</a></ul><li><a href=#-api-reference class="table-of-contents__link toc-highlight">πŸ“– API Reference</a><ul><li><a href=#main-classes class="table-of-contents__link toc-highlight">Main Classes</a></ul><li><a href=#-related-files class="table-of-contents__link toc-highlight">πŸ”— Related Files</a><ul><li><a href=#existing-files-enhanced class="table-of-contents__link toc-highlight">Existing Files (Enhanced)</a><li><a href=#new-files-created class="table-of-contents__link toc-highlight">New Files (Created)</a></ul><li><a href=#-future-enhancements class="table-of-contents__link toc-highlight">🎯 Future Enhancements</a><li><a href=#-documentation-links class="table-of-contents__link toc-highlight">πŸ“ Documentation Links</a><li><a href=#-checklist-for-integration class="table-of-contents__link toc-highlight">βœ… Checklist for Integration</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Documentation</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/intro>Getting Started</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/citations>Citations & Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/data-sources/overview>Data Sources</a><li class=footer__item><a class=footer__link-item href=/docs/for-developers>For Developers</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Resources</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.communityone.com target=_blank rel="noopener noreferrer" class=footer__link-item>Launch Open Navigator<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.groundvue.org/ target=_blank rel="noopener noreferrer" class=footer__link-item>GroundVue (Partner)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.instagram.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>Instagram<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.facebook.com/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>Facebook<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://x.com/getcommunityone/ target=_blank rel="noopener noreferrer" class=footer__link-item>X (Twitter)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.linkedin.com/company/getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.youtube.com/@getcommunityone target=_blank rel="noopener noreferrer" class=footer__link-item>YouTube<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://discord.gg/uH6Dytek target=_blank rel="noopener noreferrer" class=footer__link-item>Discord<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Legal</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/legal/privacy-policy>Privacy Policy</a><li class=footer__item><a class=footer__link-item href=/docs/legal/terms-of-service>Terms of Service</a><li class=footer__item><a class=footer__link-item href=/docs/legal/data-provider-terms>Data Provider Terms</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/blog>Blog</a><li class=footer__item><a href=https://github.com/getcommunityone/open-navigator-for-engagement/blob/main/LICENSE target=_blank rel="noopener noreferrer" class=footer__link-item>License (MIT)<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright Β© 2026 Community One. Built with Docusaurus.</div></div></div></footer></div></body>