Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 57,471 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 162 163 | <!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/dataverse-summary" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.0"><title data-rh=true>π Harvard Dataverse Integration - Complete! | 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/dataverse-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="π Harvard Dataverse Integration - Complete! | Open Navigator"/><meta data-rh=true name=description content="β
What Was Implemented"/><meta data-rh=true property=og:description content="β
What Was Implemented"/><link data-rh=true rel=icon href=/img/favicon.ico /><link data-rh=true rel=canonical href=https://www.communityone.com/docs/integrations/dataverse-summary /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/integrations/dataverse-summary hreflang=en /><link data-rh=true rel=alternate href=https://www.communityone.com/docs/integrations/dataverse-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/dataverse-summary","name":"π Harvard Dataverse Integration - Complete!","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 menu__link--active" aria-current=page 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 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>π Harvard Dataverse Integration - Complete!</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>π Harvard Dataverse Integration - Complete!</h1></header>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-what-was-implemented>β
What Was Implemented<a href=#-what-was-implemented class=hash-link aria-label="Direct link to β
What Was Implemented" title="Direct link to β
What Was Implemented" translate=no>β</a></h2>
<p>We've integrated <strong>production-ready Dataverse API client</strong> following all best practices from <a href=https://github.com/IQSS/dataverse target=_blank rel="noopener noreferrer" class="">IQSS/dataverse</a>.</p>
<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>
<ol>
<li class="">
<p><strong><a class="" href=/docs/discovery/dataverse_client.py><code>discovery/dataverse_client.py</code></a></strong> (600+ lines)</p>
<ul>
<li class="">Full-featured Dataverse API client</li>
<li class="">API authentication</li>
<li class="">Rate limiting with exponential backoff</li>
<li class="">Checksum verification (MD5)</li>
<li class="">Version-aware caching</li>
<li class="">Comprehensive error handling</li>
<li class="">Pagination support</li>
</ul>
</li>
<li class="">
<p><strong><a class="" href=/docs/integrations/DATAVERSE_INTEGRATION.md><code>docs/DATAVERSE_INTEGRATION.md</code></a></strong></p>
<ul>
<li class="">Complete integration guide</li>
<li class="">API usage examples</li>
<li class="">Best practices documentation</li>
<li class="">Troubleshooting guide</li>
</ul>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=updated-files>Updated Files<a href=#updated-files class=hash-link aria-label="Direct link to Updated Files" title="Direct link to Updated Files" translate=no>β</a></h3>
<ol>
<li class="">
<p><strong><a class="" href=/docs/config/settings.py><code>config/settings.py</code></a></strong></p>
<ul>
<li class="">Added <code>dataverse_api_key</code> setting</li>
<li class="">Added <code>openstates_api_key</code> setting</li>
</ul>
</li>
<li class="">
<p><strong><a class="" href=/docs/.env.example><code>.env.example</code></a></strong></p>
<ul>
<li class="">Added DATAVERSE_API_KEY</li>
<li class="">Added OPENSTATES_API_KEY</li>
<li class="">Clarified that Legistar/Municode don't need keys</li>
</ul>
</li>
<li class="">
<p><strong><a class="" href=/docs/discovery/localview_ingestion.py><code>discovery/localview_ingestion.py</code></a></strong></p>
<ul>
<li class="">Now tries API download first</li>
<li class="">Falls back to manual download</li>
<li class="">Better error messages</li>
</ul>
</li>
</ol>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-how-to-use>π How to Use<a href=#-how-to-use class=hash-link aria-label="Direct link to π How to Use" title="Direct link to π How to Use" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=quick-start-with-api-key>Quick Start (with API key)<a href=#quick-start-with-api-key class=hash-link aria-label="Direct link to Quick Start (with API key)" title="Direct link to Quick Start (with API key)" 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"># 1. Get free API key (5 min)</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">open https://dataverse.harvard.edu/loginpage.xhtml</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"># 2. Add to .env</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">echo "DATAVERSE_API_KEY=your_key" >> .env</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"># 3. Download LocalView dataset</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">python discovery/localview_ingestion.py</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=without-api-key-manual>Without API Key (manual)<a href=#without-api-key-manual class=hash-link aria-label="Direct link to Without API Key (manual)" title="Direct link to Without API Key (manual)" 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"># 1. Download files from Harvard Dataverse</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">open https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/NJTBEM</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"># 2. Save CSV files to data/cache/localview/</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"># 3. Run ingestion</span><br/></div><div class=token-line style=color:#393A34><span class="token plain">python discovery/localview_ingestion.py</span><br/></div></code></pre></div></div>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-iqss-best-practices-implemented>π IQSS Best Practices Implemented<a href=#-iqss-best-practices-implemented class=hash-link aria-label="Direct link to π IQSS Best Practices Implemented" title="Direct link to π IQSS Best Practices Implemented" translate=no>β</a></h2>
<table><thead><tr><th>Practice<th>Status<th>Implementation<tbody><tr><td><strong>API Authentication</strong><td>β
<td>X-Dataverse-key header<tr><td><strong>Rate Limiting</strong><td>β
<td>100 req/min client-side throttling<tr><td><strong>Error Handling</strong><td>β
<td>All status codes (401, 404, 429, 500+)<tr><td><strong>Retry Logic</strong><td>β
<td>Exponential backoff<tr><td><strong>Checksum Verification</strong><td>β
<td>MD5 validation<tr><td><strong>Caching</strong><td>β
<td>Version-aware metadata & file caching<tr><td><strong>Pagination</strong><td>β
<td>Handles large file lists<tr><td><strong>Timeout Handling</strong><td>β
<td>Configurable with retries</table>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-what-makes-this-production-ready>π What Makes This Production-Ready<a href=#-what-makes-this-production-ready class=hash-link aria-label="Direct link to π What Makes This Production-Ready" title="Direct link to π What Makes This Production-Ready" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=1-follows-official-iqss-standards>1. <strong>Follows Official IQSS Standards</strong><a href=#1-follows-official-iqss-standards class=hash-link aria-label="Direct link to 1-follows-official-iqss-standards" title="Direct link to 1-follows-official-iqss-standards" translate=no>β</a></h3>
<p>Based on official Dataverse API documentation and GitHub repo patterns.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=2-comprehensive-error-handling>2. <strong>Comprehensive Error Handling</strong><a href=#2-comprehensive-error-handling class=hash-link aria-label="Direct link to 2-comprehensive-error-handling" title="Direct link to 2-comprehensive-error-handling" 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 comment" style=color:#999988;font-style:italic># Handles all edge cases</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token operator" style=color:#393A34>-</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>401</span><span class="token plain"> Unauthorized β Clear message to get API key</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token operator" style=color:#393A34>-</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>404</span><span class="token plain"> Not Found β Dataset doesn't exist</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token operator" style=color:#393A34>-</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>429</span><span class="token plain"> Rate Limited β Auto</span><span class="token operator" style=color:#393A34>-</span><span class="token plain">retry </span><span class="token keyword" style=color:#00009f>with</span><span class="token plain"> backoff</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token operator" style=color:#393A34>-</span><span class="token plain"> </span><span class="token number" style=color:#36acaa>500</span><span class="token operator" style=color:#393A34>+</span><span class="token plain"> Server Error β Exponential backoff retry</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"></span><span class="token operator" style=color:#393A34>-</span><span class="token plain"> Timeout β Configurable retry logic</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=3-data-integrity>3. <strong>Data Integrity</strong><a href=#3-data-integrity class=hash-link aria-label="Direct link to 3-data-integrity" title="Direct link to 3-data-integrity" 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 comment" style=color:#999988;font-style:italic># MD5 checksum verification</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">expected </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> file_info</span><span class="token punctuation" style=color:#393A34>[</span><span class="token string" style=color:#e3116c>"dataFile"</span><span class="token punctuation" style=color:#393A34>]</span><span class="token punctuation" style=color:#393A34>[</span><span class="token string" style=color:#e3116c>"md5"</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">actual </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> hashlib</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">md5</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">content</span><span class="token punctuation" style=color:#393A34>)</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">hexdigest</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 keyword" style=color:#00009f>if</span><span class="token plain"> expected </span><span class="token operator" style=color:#393A34>!=</span><span class="token plain"> actual</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"> logger</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">error</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"Checksum mismatch - file corrupted"</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=4-performance-optimization>4. <strong>Performance Optimization</strong><a href=#4-performance-optimization class=hash-link aria-label="Direct link to 4-performance-optimization" title="Direct link to 4-performance-optimization" 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 comment" style=color:#999988;font-style:italic># Client-side rate limiting prevents 429 errors</span><span class="token plain"></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># Version-aware caching reduces API calls</span><span class="token plain"></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># Efficient async downloads</span><br/></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=5-developer-experience>5. <strong>Developer Experience</strong><a href=#5-developer-experience class=hash-link aria-label="Direct link to 5-developer-experience" title="Direct link to 5-developer-experience" 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 comment" style=color:#999988;font-style:italic># Simple async API</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">client </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> DataverseClient</span><span class="token punctuation" style=color:#393A34>(</span><span class="token plain">api_key</span><span class="token operator" style=color:#393A34>=</span><span class="token string" style=color:#e3116c>"your-key"</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">result </span><span class="token operator" style=color:#393A34>=</span><span class="token plain"> </span><span class="token keyword" style=color:#00009f>await</span><span class="token plain"> client</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">download_dataset</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"doi:10.7910/DVN/NJTBEM"</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># Clear logging</span><span class="token plain"></span><br/></div><div class=token-line style=color:#393A34><span class="token plain">logger</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">info</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"Downloading file 1/10..."</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">logger</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">success</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"β Download complete"</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">logger</span><span class="token punctuation" style=color:#393A34>.</span><span class="token plain">error</span><span class="token punctuation" style=color:#393A34>(</span><span class="token string" style=color:#e3116c>"β Checksum failed"</span><span class="token punctuation" style=color:#393A34>)</span><br/></div></code></pre></div></div>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-impact>π Impact<a href=#-impact class=hash-link aria-label="Direct link to π Impact" title="Direct link to π Impact" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=before>Before<a href=#before class=hash-link aria-label="Direct link to Before" title="Direct link to Before" translate=no>β</a></h3>
<ul>
<li class="">β Basic API calls only</li>
<li class="">β No error handling</li>
<li class="">β No rate limiting</li>
<li class="">β No checksum verification</li>
<li class="">β Manual downloads required</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=after>After<a href=#after class=hash-link aria-label="Direct link to After" title="Direct link to After" translate=no>β</a></h3>
<ul>
<li class="">β
Production-ready API client</li>
<li class="">β
Comprehensive error handling</li>
<li class="">β
Smart rate limiting</li>
<li class="">β
Checksum verification</li>
<li class="">β
Optional automatic downloads</li>
<li class="">β
Falls back to manual gracefully</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-learning-resources>π Learning Resources<a href=#-learning-resources class=hash-link aria-label="Direct link to π Learning Resources" title="Direct link to π Learning Resources" translate=no>β</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=official-iqss-documentation>Official IQSS Documentation<a href=#official-iqss-documentation class=hash-link aria-label="Direct link to Official IQSS Documentation" title="Direct link to Official IQSS Documentation" translate=no>β</a></h3>
<ul>
<li class=""><strong>Dataverse API</strong>: <a href=https://guides.dataverse.org/en/latest/api/index.html target=_blank rel="noopener noreferrer" class="">https://guides.dataverse.org/en/latest/api/index.html</a></li>
<li class=""><strong>GitHub Repo</strong>: <a href=https://github.com/IQSS/dataverse target=_blank rel="noopener noreferrer" class="">https://github.com/IQSS/dataverse</a></li>
<li class=""><strong>Community</strong>: <a href=https://groups.google.com/group/dataverse-community target=_blank rel="noopener noreferrer" class="">https://groups.google.com/group/dataverse-community</a></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=our-documentation>Our Documentation<a href=#our-documentation class=hash-link aria-label="Direct link to Our Documentation" title="Direct link to Our Documentation" translate=no>β</a></h3>
<ul>
<li class=""><strong>Integration Guide</strong>: <a class="" href=/docs/integrations/DATAVERSE_INTEGRATION.md>docs/DATAVERSE_INTEGRATION.md</a></li>
<li class=""><strong>LocalView Guide</strong>: <a class="" href=/docs/integrations/LOCALVIEW_INTEGRATION_GUIDE.md>docs/LOCALVIEW_INTEGRATION_GUIDE.md</a></li>
<li class=""><strong>API Client Code</strong>: <a class="" href=/docs/discovery/dataverse_client.py>discovery/dataverse_client.py</a></li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-next-steps>π₯ Next Steps<a href=#-next-steps class=hash-link aria-label="Direct link to π₯ Next Steps" title="Direct link to π₯ Next Steps" translate=no>β</a></h2>
<ol>
<li class="">
<p><strong>Get API Key</strong> (optional but recommended)</p>
<ul>
<li class="">Sign up at <a href=https://dataverse.harvard.edu/loginpage.xhtml target=_blank rel="noopener noreferrer" class="">https://dataverse.harvard.edu/loginpage.xhtml</a></li>
<li class="">Generate token in Account Settings</li>
<li class="">Add to <code>.env</code>: <code>DATAVERSE_API_KEY=your_key</code></li>
</ul>
</li>
<li class="">
<p><strong>Download LocalView</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">python discovery/localview_ingestion.py</span><br/></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Verify Results</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">ls -lh data/cache/localview/</span><br/></div><div class=token-line style=color:#393A34><span class="token plain"># Should show CSV/TAB files</span><br/></div></code></pre></div></div>
</li>
<li class="">
<p><strong>Process Data</strong></p>
<ul>
<li class="">Files automatically loaded into Delta Lake</li>
<li class="">Bronze layer: <code>bronze/localview/municipalities</code></li>
<li class="">Bronze layer: <code>bronze/localview/videos</code></li>
</ul>
</li>
</ol>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-summary>β¨ Summary<a href=#-summary class=hash-link aria-label="Direct link to β¨ Summary" title="Direct link to β¨ Summary" translate=no>β</a></h2>
<p>We now have:</p>
<ol>
<li class="">β
<strong>Production-ready Dataverse client</strong> following all IQSS best practices</li>
<li class="">β
<strong>Automatic downloads</strong> with API key (optional)</li>
<li class="">β
<strong>Manual download support</strong> (fallback)</li>
<li class="">β
<strong>Comprehensive error handling</strong> (all status codes)</li>
<li class="">β
<strong>Data integrity</strong> (MD5 checksums)</li>
<li class="">β
<strong>Smart caching</strong> (version-aware)</li>
<li class="">β
<strong>Rate limiting</strong> (prevents 429 errors)</li>
<li class="">β
<strong>Great documentation</strong> (guides + examples)</li>
</ol>
<p>This is the <strong>same quality</strong> you'd expect from official Harvard/IQSS integrations! π</p>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-credits>π Credits<a href=#-credits class=hash-link aria-label="Direct link to π Credits" title="Direct link to π Credits" translate=no>β</a></h2>
<ul>
<li class=""><strong>IQSS Team</strong> - Official Dataverse API and best practices</li>
<li class=""><strong>Harvard Dataverse</strong> - Hosting the LocalView dataset</li>
<li class=""><strong>Harvard Mellon Urbanism Initiative</strong> - Creating LocalView</li>
</ul>
<hr/>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=-files-summary>π Files Summary<a href=#-files-summary class=hash-link aria-label="Direct link to π Files Summary" title="Direct link to π Files Summary" translate=no>β</a></h2>
<table><thead><tr><th>File<th>Lines<th>Purpose<tbody><tr><td>discovery/dataverse_client.py<td>600+<td>Production Dataverse API client<tr><td>docs/DATAVERSE_INTEGRATION.md<td>400+<td>Integration guide & examples<tr><td>docs/DATAVERSE_INTEGRATION_SUMMARY.md<td>200+<td>Quick reference (this file)<tr><td>config/settings.py<td>Updated<td>Add dataverse_api_key setting<tr><td>.env.example<td>Updated<td>Add DATAVERSE_API_KEY example<tr><td>discovery/localview_ingestion.py<td>Updated<td>Use API client + fallback</table>
<p><strong>Total new code</strong>: ~1,200 lines of production-ready integration! π</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/dataverse-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/fec-campaign-finance><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>FEC Campaign Finance Integration</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/integrations/dataverse><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>π Dataverse API Integration</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-implemented class="table-of-contents__link toc-highlight">β
What Was Implemented</a><ul><li><a href=#new-files-created class="table-of-contents__link toc-highlight">New Files Created</a><li><a href=#updated-files class="table-of-contents__link toc-highlight">Updated Files</a></ul><li><a href=#-how-to-use class="table-of-contents__link toc-highlight">π How to Use</a><ul><li><a href=#quick-start-with-api-key class="table-of-contents__link toc-highlight">Quick Start (with API key)</a><li><a href=#without-api-key-manual class="table-of-contents__link toc-highlight">Without API Key (manual)</a></ul><li><a href=#-iqss-best-practices-implemented class="table-of-contents__link toc-highlight">π IQSS Best Practices Implemented</a><li><a href=#-what-makes-this-production-ready class="table-of-contents__link toc-highlight">π What Makes This Production-Ready</a><ul><li><a href=#1-follows-official-iqss-standards class="table-of-contents__link toc-highlight">1. <strong>Follows Official IQSS Standards</strong></a><li><a href=#2-comprehensive-error-handling class="table-of-contents__link toc-highlight">2. <strong>Comprehensive Error Handling</strong></a><li><a href=#3-data-integrity class="table-of-contents__link toc-highlight">3. <strong>Data Integrity</strong></a><li><a href=#4-performance-optimization class="table-of-contents__link toc-highlight">4. <strong>Performance Optimization</strong></a><li><a href=#5-developer-experience class="table-of-contents__link toc-highlight">5. <strong>Developer Experience</strong></a></ul><li><a href=#-impact class="table-of-contents__link toc-highlight">π Impact</a><ul><li><a href=#before class="table-of-contents__link toc-highlight">Before</a><li><a href=#after class="table-of-contents__link toc-highlight">After</a></ul><li><a href=#-learning-resources class="table-of-contents__link toc-highlight">π Learning Resources</a><ul><li><a href=#official-iqss-documentation class="table-of-contents__link toc-highlight">Official IQSS Documentation</a><li><a href=#our-documentation class="table-of-contents__link toc-highlight">Our Documentation</a></ul><li><a href=#-next-steps class="table-of-contents__link toc-highlight">π₯ Next Steps</a><li><a href=#-summary class="table-of-contents__link toc-highlight">β¨ Summary</a><li><a href=#-credits class="table-of-contents__link toc-highlight">π Credits</a><li><a href=#-files-summary class="table-of-contents__link toc-highlight">π Files Summary</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> |