Back to Skills

harvard-artifacts-etl-analytics

Build ETL pipelines and analytics dashboards for Harvard Art Museums API data with Python, SQL, and Streamlit

4stars1forksUpdated 7/30/2026

Security Assessment

Safe(92/100)
Security Score92/100

About harvard-artifacts-etl-analytics

harvard-artifacts-etl-analytics is a data-engineering skill that helps developers build end-to-end ETL pipelines and analytics dashboards on top of the Harvard Art Museums API using Python, SQL, and Streamlit. It solves the problem of turning a paginated, rate-limited public art API into a normalized, queryable dataset with an interactive front end, and it demonstrates real-world patterns for API integration, data transformation, relational schema design, and visualization.

The skill describes an architecture of API to ETL to SQL to Analytics to Visualization. It shows how to extract artifact data with pagination and rate limiting, transform nested JSON into three normalized tables (artifact metadata, media, and colors), load into MySQL or TiDB Cloud, run 20-plus predefined analytical SQL queries, and visualize results with interactive Plotly charts inside Streamlit. It provides concrete code patterns for the API client, the paginated extractor, and the transform functions, along with the SQL DDL for the schema and instructions for configuration via a .env file holding the Harvard API key and database credentials. Credential handling follows standard practice -- values are read from environment variables via python-dotenv rather than hardcoded.

In practice this is largely a catalogue-style entry that documents and points to an upstream reference implementation (the Harvard-Artifacts-Collection-Data-Engineering-Analytics-App repository on GitHub) and reproduces its key code patterns. It targets data engineers and Python developers learning or assembling museum-data or cultural-heritage analytics pipelines, and anyone who wants a worked example of API-to-dashboard ETL. The skill itself is authored by the ara.so Data Skills collection.

FAQ

What does this skill help me build?

An end-to-end pipeline that extracts artifact data from the Harvard Art Museums API, transforms nested JSON into normalized metadata, media, and color tables, loads it into MySQL or TiDB Cloud, runs 20-plus analytical SQL queries, and visualizes the results in a Streamlit dashboard with Plotly charts.

What are the prerequisites?

A Harvard Art Museums API key (registered at the museum's API page), a MySQL or TiDB Cloud database, and Python with streamlit, pandas, requests, mysql-connector-python, plotly, and python-dotenv installed.

How are API keys and database credentials handled?

They are stored in a .env file and read through environment variables via python-dotenv, which is standard credential setup rather than hardcoding secrets in source.

Is this original code or a pointer to an existing project?

It is largely a documented walkthrough that reproduces the key code patterns of and links to an upstream reference implementation, the Harvard-Artifacts-Collection-Data-Engineering-Analytics-App repository, rather than a self-contained new tool.

How does it avoid hitting API limits?

The extraction functions paginate through results and add a short sleep between requests for rate limiting, wrapping calls in error handling so a failed page does not abort the whole run.

Install harvard-artifacts-etl-analytics

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill