Discover/Huntington API
live

Huntington APIhuntington.org

Search 1M+ items from The Huntington Library, Art Museum, and Botanical Gardens. Access rare books, manuscripts, paintings, plants, and more via 2 endpoints.

Endpoint health
verified 4d ago
search_collections
get_facets
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the Huntington API?

The Huntington Collections API provides access to over 1 million items across the library, museum, and botanical divisions of The Huntington Library, Art Museum, and Botanical Gardens. The search_collections endpoint returns paginated item records including name, description, division, type, identifier, and image URL. A companion get_facets endpoint exposes filterable taxonomy counts for authors, genera, families, constituents, and more.

Try it
Page number (0-indexed)
Filter by item type (e.g., 'Paintings', 'Rare Books', 'Manuscripts', 'Plants', 'Drawings', 'Sculpture', 'Prints', 'Visual Materials', 'Decorative arts', 'Photographs')
Results per page, clamped to 1-100
Search keywords (e.g., 'William Blake', 'rose', 'painting')
Filter by division: 'library', 'museum', or 'botanical'
Set to 'true' to only return items with images
api.parse.bot/scraper/5bf6c2e6-f896-43aa-ae73-5bd3b3998a4f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/5bf6c2e6-f896-43aa-ae73-5bd3b3998a4f/search_collections?page=0&type=Paintings&limit=5&query=rose&division=library&has_image=true' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace huntington-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Huntington Collections — search items and discover facets."""
from parse_apis.the_huntington_collections_search_api import (
    Huntington, Division, ItemType, CollectionItemNotFound,
)

client = Huntington()

# Search for botanical paintings with images, capped to 5 items total.
for item in client.collectionitems.search(
    query="landscape", division=Division.MUSEUM, type=ItemType.PAINTINGS, limit=5
):
    print(item.name, item.identifier, item.image_url)

# Drill into a single item from a broader search.
item = client.collectionitems.search(query="William Blake", limit=1).first()
if item:
    print(item.id, item.name, item.division, item.type)

# Discover what facet values are available for the botanical division.
facets = client.facetresults.get(query="rose", division=Division.BOTANICAL)
print(facets.total_hits, facets.facets)

# Typed error handling around a facet lookup.
try:
    result = client.facetresults.get(query="xyznonexistent123", division=Division.LIBRARY)
    print(result.total_hits)
except CollectionItemNotFound as exc:
    print(f"Not found: {exc.query}")

print("exercised: collectionitems.search / facetresults.get / Division / ItemType / CollectionItemNotFound")
All endpoints · 2 totalmissing one? ·

Search The Huntington's collections by keyword with optional filters for division, item type, and image availability. Returns paginated results with item details including name, description, division, type, identifier, and image URL. Each page returns up to `limit` items; advance `page` (0-indexed) to paginate. An empty query returns all items in the matching scope.

Input
ParamTypeDescription
pageintegerPage number (0-indexed)
typestringFilter by item type (e.g., 'Paintings', 'Rare Books', 'Manuscripts', 'Plants', 'Drawings', 'Sculpture', 'Prints', 'Visual Materials', 'Decorative arts', 'Photographs')
limitintegerResults per page, clamped to 1-100
querystringSearch keywords (e.g., 'William Blake', 'rose', 'painting')
divisionstringFilter by division: 'library', 'museum', or 'botanical'
has_imagestringSet to 'true' to only return items with images
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page number",
    "items": "array of CollectionItem objects with id, name, description, division, type, identifier, image_url",
    "query": "string, the search query used",
    "total_hits": "integer, total matching items",
    "total_pages": "integer, total pages available",
    "hits_per_page": "integer, results per page"
  },
  "sample": {
    "data": {
      "page": 0,
      "items": [
        {
          "id": "lib-403805",
          "name": "The rose of roses",
          "type": "Rare Books",
          "division": "library",
          "image_url": null,
          "identifier": "403805",
          "description": null
        },
        {
          "id": "lib-p16003coll12-369",
          "name": "Rose Wong",
          "type": "Manuscripts",
          "division": "library",
          "image_url": "https://rail.huntington.org/IIIF3/Image/22APN41AKRYZ",
          "identifier": "mssChangpapers",
          "description": "Studio portrait of Rose Wong flanked by two women."
        }
      ],
      "query": "rose",
      "total_hits": 62278,
      "total_pages": 12456,
      "hits_per_page": 5
    },
    "status": "success"
  }
}

About the Huntington API

What the API Covers

The API surfaces collections data across three divisions: library (rare books, manuscripts, printed materials), museum (paintings, drawings, sculpture, prints), and botanical (plants indexed by genus, family, and scientific name). Each item record returned by search_collections includes an id, human-readable name, description, division, type, identifier, and an image_url where available. The endpoint is 0-indexed for pagination and accepts a limit between 1 and 100 results per page.

Filtering and Search

search_collections accepts a free-text query parameter (e.g., 'William Blake', 'rose', 'watercolor') alongside structured filters: division restricts results to library, museum, or botanical; type narrows by item category such as 'Paintings', 'Rare Books', 'Manuscripts', 'Plants', or 'Drawings'; and setting has_image to 'true' limits results to records that carry an image URL. The response includes total_hits and total_pages for accurate pagination handling.

Facets Endpoint

get_facets returns counts for each filterable dimension scoped to an optional query and division. The facets object contains keys for division, type, genus, family, family_common_name, scientific_name, author, constituent, and has_image. This is useful for building filter UIs, understanding collection composition, or discovering what authors or plant genera are represented before issuing a full search. Counts reflect only items matching the supplied query and division filters.

Coverage Notes

The botanical division includes structured botanical taxonomy fields (genus, family, scientific_name) that are absent from library and museum records. Library items carry author facets; museum items use constituent (typically artist or maker name). Not all items have images; use the has_image filter or facet to scope to records with visual assets.

Reliability & maintenanceVerified

The Huntington API is a managed, monitored endpoint for huntington.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when huntington.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official huntington.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a searchable front-end for rare books and manuscripts using the query and type filters in search_collections
  • Aggregate botanical plant records by genus or family using the get_facets endpoint scoped to the botanical division
  • Identify all paintings or drawings by a specific artist via the constituent facet and a targeted keyword query
  • Generate image galleries of Huntington artworks by filtering search_collections with has_image=true and division=museum
  • Compile author-level bibliographies from the library division using the author facet values returned by get_facets
  • Analyze collection composition by division and item type using facet counts without running full paginated searches
  • Cross-reference plant scientific names against external botanical databases using scientific_name values from search results
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does The Huntington have an official developer API for its collections?+
The Huntington does not publish a documented public developer API for its collections search. This Parse API provides structured programmatic access to that collection data.
What does the `get_facets` endpoint return and how is it different from `search_collections`?+
get_facets returns aggregated counts for each filterable dimension — division, type, genus, family, scientific_name, author, constituent, and has_image — without returning individual item records. It accepts an optional query and division to scope counts. Use it to discover available filter values or measure collection size before paginating through full results with search_collections.
Are botanical taxonomy fields like genus and family available on all item types?+
No. The genus, family, family_common_name, and scientific_name facets are specific to botanical division records. Library records expose author facets and museum records use constituent. Filtering get_facets or search_collections by division=botanical is required to retrieve meaningful botanical taxonomy data.
Does the API return full item detail pages — transcriptions, provenance, exhibition history, or high-resolution image downloads?+
Not currently. The API covers search result records with name, description, division, type, identifier, and a single image URL per item. Extended catalog records such as transcriptions, provenance notes, condition reports, or exhibition histories are not included. You can fork this API on Parse and revise it to add a dedicated item-detail endpoint targeting those fields.
How does pagination work in `search_collections`?+
Pagination is 0-indexed via the page parameter. The response includes total_hits, total_pages, and hits_per_page so you can calculate traversal. The limit parameter controls page size and is clamped to a maximum of 100. Set page=0 to start from the first result set.
Page content last updated . Spec covers 2 endpoints from huntington.org.
Related APIs in EducationSee all →
lacma.org API
Search LACMA's art collection, discover current and upcoming exhibitions, browse events and programs, and view detailed artwork information all from one place. Plan your museum visit with access to exhibition details, visitor information, and the complete catalog of artworks on display.
hudexchange.info API
Search and browse over 5,288 HUD resources including FAQs, training materials, reports, and general documents across 95+ housing and urban development programs. Filter results by program, topic, and content type to quickly find the information you need.
webcat.hkpl.gov.hk API
Search and discover books across Hong Kong's public library system while checking real-time availability, and retrieve detailed book metadata including titles, authors, descriptions, and current stock status. Find exactly what you're looking for and know instantly whether your local library has it in stock.
quod.lib.umich.edu API
Search and browse millions of digitized items from the University of Michigan Library, including books, manuscripts, photographs, and more, while retrieving detailed metadata, full-text content, and image information for each collection and item. Access organized collections, view item details, and discover historical and scholarly materials across the library's comprehensive digital repository.
opensea.io API
Search NFT collections and discover detailed stats, browse individual items, and track collection activity all in one place. Get real-time insights into collection performance and find the NFTs you're looking for on OpenSea.
dpm.org.cn API
Search and explore the Palace Museum's vast collection of artifacts organized by category and dynasty, then view detailed information about specific items. Discover historical objects spanning different periods and classifications to learn about the museum's treasures.
bonhams.com API
Search and browse fine art, collectibles, cars, and more across Bonhams auctions—find upcoming sales, view detailed lot listings, check past auction results, and filter by department. Instantly discover specific items and auction details with powerful search and filtering capabilities.
hpoi.net API
Search and browse the Hpoi collectible anime figure database. Retrieve paginated item listings with full filtering support, access detailed product information including specifications, release dates, images, and manufacturer details, and fetch user comments and official gallery images for any item.
Huntington Collections API | huntington · Parse