Discover/Wellcome Collection API
live

Wellcome Collection APIwellcomecollection.org

Search and retrieve books, manuscripts, images, and archival works from the Wellcome Collection catalogue via 3 structured endpoints.

Endpoint health
monitored
get_work
search_images
search_works
Checks pendingself-healing
Endpoints
3
Updated
2h ago

What is the Wellcome Collection API?

The Wellcome Collection API exposes 3 endpoints for querying a catalogue of books, manuscripts, pictures, videos, and archival materials held by one of the world's major medical heritage libraries. search_works supports full-text queries with faceted aggregations across work type, language, and availability, while search_images allows filtering by dominant hex color. get_work returns structured metadata including subjects, contributors, production events, and IIIF-compatible item locations.

Try it
Page number for pagination (1-based).
Field to sort results by.
Search query string to match against work titles and metadata. Omitting returns all works.
Comma-separated list of additional fields to include in results: identifiers, items, holdings, subjects, genres, contributors, production, languages, notes.
Number of results per page, between 1 and 100.
Filter by work format type code. Multiple types can be comma-separated.
Sort direction.
Comma-separated list of fields to aggregate for faceted search: workType, availabilities, languages, subjects.label, genres.label, contributors.agent.label.
api.parse.bot/scraper/f2fcc70a-a850-4f84-84cf-8cecef0356fd/<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/f2fcc70a-a850-4f84-84cf-8cecef0356fd/search_works?page=1&sort=production.dates&query=medicine&include=subjects%2Ccontributors&page_size=10&work_type=a&sort_order=asc&aggregations=workType' \
  -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 wellcomecollection-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: Wellcome Collection SDK — searching works and images."""
from parse_apis.wellcomecollection_org_api import (
    WellcomeCollection, WorkType, SortField, SortOrder, WorkNotFound
)

client = WellcomeCollection()

# Search for works about medicine, filtered to Books only
for work in client.works.search(query="medicine", work_type=WorkType.BOOKS, limit=5):
    print(work.title, work.work_type.label)

# Sort results by production date ascending
for work in client.works.search(
    query="plague", sort=SortField.PRODUCTION_DATES, sort_order=SortOrder.ASC, limit=3
):
    print(work.title, work.physical_description)

# Get a specific work by ID (from a search result)
first_work = client.works.search(query="anatomy", limit=1).first()
if first_work:
    detail = client.works.get(id=first_work.id, include="subjects,contributors,languages")
    print(detail.title, detail.physical_description)
    if detail.languages:
        for lang in detail.languages:
            print(lang.id, lang.label)

# Search images by color filter
for image in client.images.search(query="skull", color="ff0000", limit=3):
    print(image.source.title, image.average_color, image.aspect_ratio)

# Typed error handling for a missing work
try:
    client.works.get(id="nonexistent_id_xyz")
except WorkNotFound as exc:
    print(f"Work not found: {exc.work_id}")

print("exercised: works.search / works.get / images.search / WorkType / SortField / SortOrder / WorkNotFound")
All endpoints · 3 totalmissing one? ·

Full-text search across the Wellcome Collection catalogue of works (books, manuscripts, pictures, videos, etc.). Supports filtering by work type, sorting by production date, and aggregations for faceted search. Results are auto-iterated across pages.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-based).
sortstringField to sort results by.
querystringSearch query string to match against work titles and metadata. Omitting returns all works.
includestringComma-separated list of additional fields to include in results: identifiers, items, holdings, subjects, genres, contributors, production, languages, notes.
page_sizeintegerNumber of results per page, between 1 and 100.
work_typestringFilter by work format type code. Multiple types can be comma-separated.
sort_orderstringSort direction.
aggregationsstringComma-separated list of fields to aggregate for faceted search: workType, availabilities, languages, subjects.label, genres.label, contributors.agent.label.
Response
{
  "type": "object",
  "fields": {
    "results": "array of work objects",
    "next_page": "string URL of next page (when available)",
    "page_size": "integer",
    "prev_page": "string URL of previous page (when available)",
    "total_pages": "integer",
    "aggregations": "object with faceted counts (present when aggregations param used)",
    "total_results": "integer"
  },
  "sample": {
    "data": {
      "results": [
        {
          "id": "a4gk7brt",
          "type": "Work",
          "title": "Medicine and architecture / Christine Stevenson.",
          "workType": {
            "id": "a",
            "type": "Format",
            "label": "Books"
          },
          "availabilities": [
            {
              "id": "closed-stores",
              "type": "Availability",
              "label": "Closed stores"
            }
          ],
          "alternativeTitles": [],
          "physicalDescription": "[volumes 2] pages 1,495-1,519"
        }
      ],
      "next_page": "https://api.wellcomecollection.org/catalogue/v2/works?page=2&pageSize=3&query=medicine",
      "page_size": 3,
      "total_pages": 37878,
      "total_results": 113634
    },
    "status": "success"
  }
}

About the Wellcome Collection API

Works Search and Retrieval

The search_works endpoint accepts a query string matched against titles and catalogue metadata. Omitting the query returns all works. Results can be filtered by work_type (comma-separated format codes), sorted by production date via sort and sort_order, and paged using page and page_size (1–100 per page). When the aggregations parameter is set to fields like workType, availabilities, languages, or subjects, the response includes facet counts alongside the results array — useful for building filter UIs. Pagination state is returned as next_page and prev_page URLs, alongside total_results and total_pages.

Single Work Detail

get_work retrieves a single catalogue record by its identifier (e.g. gbd4prdu). The base response includes id, type, title, workType, availabilities, and alternativeTitles. Optional include values expand the response: subjects adds a subject array, contributors adds contributor objects, items and holdings add location and holdings data, and production adds structured production event objects such as date and place. Multiple includes can be comma-separated.

Image Search

search_images queries the image portion of the catalogue. Each result object contains thumbnail URLs, locations with IIIF manifest references, averageColor, license information, and a source reference linking back to the parent work. A unique capability is the color parameter — a 6-character hex code (no # prefix) that filters results by dominant color, making it possible to retrieve visually similar images. Optional include values can pull in source.contributors and source.languages per result.

Reliability & maintenance

The Wellcome Collection API is a managed, monitored endpoint for wellcomecollection.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wellcomecollection.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 wellcomecollection.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.

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 faceted browser for historical medical manuscripts using aggregations on workType and languages from search_works
  • Retrieve contributor and production event metadata for citation tools using get_work with include=contributors,production
  • Filter archival images by dominant color palette using search_images with the color hex parameter
  • Cross-reference subjects across the catalogue by paginating search_works with a subject query and aggregations=subjects
  • Render IIIF-compatible image viewers using locations and thumbnail fields returned by search_images
  • Identify availability of physical and digitised items by inspecting availabilities in get_work or search_works results
  • Compile a dataset of works in a specific language by filtering search_works results using include=subjects and aggregations=languages
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 Wellcome Collection have an official developer API?+
Yes. Wellcome Collection publishes an official public API documented at https://developers.wellcomecollection.org. The Parse API surfaces the same catalogue data in a consistent, ready-to-query format.
What does the `aggregations` parameter in `search_works` actually return?+
When you pass values like workType, availabilities, languages, or subjects to the aggregations parameter, the response includes an aggregations object containing facet counts for each requested field. This lets you show, for example, how many results are books versus manuscripts, or how many are available online, without making separate count queries.
How does pagination work across the search endpoints?+
Both search_works and search_images use 1-based integer page numbering via the page parameter. Each response includes total_results, total_pages, and string URLs in next_page and prev_page when adjacent pages exist. page_size can be set between 1 and 100.
Does the API expose exhibition, event, or venue data from Wellcome Collection?+
Not currently. The API covers works in the catalogue (search_works, get_work) and the image catalogue (search_images). Exhibitions, events, and venue information are not included in these endpoints. You can fork it on Parse and revise to add an endpoint targeting that data.
Can I retrieve the full text or digitised page content of a work?+
Not directly. get_work with include=items returns item-level location metadata including IIIF manifest references, but the API does not return OCR text or page-level content. You can fork it on Parse and revise to add an endpoint that fetches content from the IIIF manifest URLs exposed in the items response.
Page content last updated . Spec covers 3 endpoints from wellcomecollection.org.
Related APIs in EducationSee all →
openalex.org API
Search and retrieve millions of academic papers, articles, and books from OpenAlex's comprehensive global research catalog to find scholarly works by topic, author, or citation. Discover detailed information about research publications including metadata, abstracts, and citation counts to stay current with academic literature in your field.
wellcome.com.hk API
Search and browse products from Wellcome Hong Kong's online grocery store, view detailed product information, explore categories, and see what other shoppers are searching for. Discover trending items and get product suggestions to streamline your grocery shopping experience.
worldcat.org API
Search millions of books and library materials worldwide, check availability at libraries near you, and discover reading lists and reviews all in one place. Find exactly what you're looking for across global library collections and get instant insights into where to access it.
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.
discovery.nationalarchives.gov.uk API
Search and browse The National Archives Discovery catalogue to find historical records, discover their creators, and explore archived collections. Get detailed information about specific records and navigate through the archive's organizational structure to uncover primary sources and historical documents.
aquinas.cc API
Search and retrieve bilingual texts from Thomas Aquinas's philosophical and theological works, with the ability to find specific articles and statements across the entire collection. Access organized works by reference or use global search to discover relevant passages on topics within Aquinas's writings.
vangoghmuseum.nl API
Explore and search Van Gogh's complete collection of paintings, drawings, and letters with detailed information and high-resolution images. Browse artworks using filters and pagination to discover pieces by specific criteria and access in-depth metadata about each work.
wikia.org API
Search and retrieve detailed information about characters, episodes, lore, and other content from Fandom wikis across thousands of fan communities. Browse wiki categories, look up specific pages, and access structured data about your favorite franchises all in one place.