Back to Skills

harvard-art-museums-etl-pipeline

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

5stars1forksUpdated 8/3/2026

Security Assessment

Safe(92/100)
Security Score92/100

About harvard-art-museums-etl-pipeline

This skill is a guided reference for building an end-to-end ETL pipeline and analytics dashboard on top of the Harvard Art Museums API using Python, SQL, and Streamlit. It solves the practical data-engineering problem of pulling nested cultural-heritage data from a public API, normalizing it into relational tables, and turning it into interactive analytics. It largely documents and points to an upstream reference implementation repository, so it functions partly as a catalogue entry that walks through that project's patterns rather than shipping the full application itself.

The skill covers the full pipeline: extracting artifact data from the Harvard Art Museums API with pagination and rate limiting, transforming nested JSON into normalized tables for metadata, media, and colors, loading into MySQL or TiDB Cloud with foreign-key relationships, running predefined SQL analytics queries, and visualizing results through interactive Plotly charts in a Streamlit dashboard. It includes installation steps, a documented API-key and database-credential setup via a .env file and environment variables, a database connection helper, and SQL schema definitions for the artifact tables. Credentials are read from environment variables rather than hardcoded.

Target users are data engineers, analysts, and learners who want a realistic example of API-to-warehouse ETL and dashboarding. Typical use cases include extracting museum collection data with pagination, designing a relational schema for artifact metadata, building analytics queries over cultural data, and standing up a Streamlit visualization dashboard.

FAQ

What stack does this pipeline use?

Python for extraction and transformation, MySQL or TiDB Cloud for storage, SQL for analytics queries, and Streamlit with Plotly for the dashboard.

What do I need to run it?

A Harvard Art Museums API key and database credentials (host, user, password, database name), plus Python packages like streamlit, pandas, requests, mysql-connector-python, plotly, and python-dotenv.

How are credentials configured?

Through a .env file and environment variables loaded with python-dotenv; the API key and database credentials are read from the environment rather than hardcoded in source.

Is this the full application or a guide?

It is largely a reference/catalogue-style skill that documents the ETL patterns and points to an upstream implementation repository to clone, rather than bundling the complete app.

What can I analyze with it?

Artifact metadata, media, and color data normalized into relational tables, queried with predefined SQL and visualized as interactive Plotly charts for cultural insights.

Install harvard-art-museums-etl-pipeline

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