Getty Museum Artworks Scraper avatar

Getty Museum Artworks Scraper

Pricing

from $1.15 / 1,000 artwork extracteds

Go to Apify Store
Getty Museum Artworks Scraper

Getty Museum Artworks Scraper

Export supplied Getty Museum artwork URLs or IDs as structured creator, date, material, dimensions, rights, image, credit, and provenance records.

Pricing

from $1.15 / 1,000 artwork extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Export supplied Getty Museum artworks URLs or object IDs as structured, source-attributed catalog records. The Actor resolves Getty's public identifier, reads the official Museum Collection Linked Open Data record, and returns creator, date, material, dimensions, rights, credit, image, IIIF, and provenance fields.

It is designed for known-item enrichment and recurring cultural-heritage datasets. It does not search Getty or crawl the entire collection.

What this Actor does

  1. Accepts public object IDs such as 103RDF, canonical artwork URLs, or collection UUIDs.
  2. Resolves public IDs through Getty's own server-rendered identifier mapping.
  3. Fetches the official Linked.Art JSON record from data.getty.edu.
  4. Normalizes deeply nested museum data into one integration-friendly row per artwork.
  5. Deduplicates entries that resolve to the same UUID.

No Getty login, API key, browser, or paid proxy is required. The Actor does not download image binaries; it exports Getty's public IIIF references.

Who is it for?

  • Digital humanities researchers create reproducible, source-linked corpora.
  • Art historians compare makers, dates, media, measurements, and provenance.
  • Collection-data engineers normalize Getty records alongside other museum datasets.
  • Educators and curators prepare attributed object lists and teaching resources.
  • Rights reviewers shortlist records while retaining the per-record rights statement.

Data you can extract

GroupFields
IdentityobjectId, uuid, title, alternateTitle, accessionNumber
Creator and datecreator, creatorDetails, date, dateEarliest, dateLatest
Physical descriptionmaterials, medium, dimensions, measurements, classifications
Collection contextdepartment, culture, creditLine, description
Rights and mediarights, metadataLicense, imageUrl, thumbnailUrl, iiifManifestUrl
Research linksprovenance, sourceUrl, apiUrl, scrapedAt

Fields are null or empty when Getty does not publish that value. The Actor never fabricates missing catalog data.

Getting started

  1. Open the Actor input.
  2. Add at least one Getty collection URL, object ID, or UUID to Artwork URLs or IDs.
  3. Set Maximum artworks if you want to process only the start of a list.
  4. Click Start.
  5. Open the default dataset and use the Overview view or export JSON, CSV, Excel, XML, or RSS.

A minimal input is:

{
"artworks": ["103RDF"],
"maxItems": 1
}

Input reference

artworks

Required array with 1–500 strings. Supported forms:

[
"103RDF",
"https://www.getty.edu/art/collection/object/103QZ9",
"00c4d446-cfc0-4893-b13d-5de0a8878fdd"
]

Only getty.edu URLs in the public /art/collection/object/ route are accepted. Inputs are deduplicated after UUID resolution.

maxItems

Optional integer from 1 to 500; default 100. This caps supplied entries processed and does not trigger discovery.

Output example

A current record has this shape (values shortened for readability):

{
"objectId": "103RDF",
"uuid": "00c4d446-cfc0-4893-b13d-5de0a8878fdd",
"title": "The Triumph of Venus",
"accessionNumber": "78.PA.2",
"creator": "Alessandro Magnasco",
"creatorDetails": "Alessandro Magnasco (Italian, 1667 - 1749)",
"date": "about 1720–1730",
"materials": ["Oil Paint (Paint)", "Canvas (Textile Material)"],
"medium": "Oil on canvas",
"dimensions": ["Unframed: 118.1 × 148.6 cm (46 1/2 × 58 1/2 in.)"],
"department": "Paintings (Curatorial Department)",
"rights": "No Copyright",
"imageUrl": "https://media.getty.edu/iiif/image/.../full/full/0/default.jpg",
"provenance": ["sold to the J. Paul Getty Museum, 1978."],
"sourceUrl": "https://www.getty.edu/art/collection/object/103RDF",
"apiUrl": "https://data.getty.edu/museum/collection/object/00c4d446-cfc0-4893-b13d-5de0a8878fdd"
}

How much does it cost to extract Getty Museum artworks?

Pay per event consists of a $0.005 start fee plus a per-artwork event. The initial BRONZE rate is $0.001912 per exported artwork, with lower rates on larger Apify plans. For example, excluding platform usage paid separately by the user:

  • 1 artwork: about $0.006912
  • 25 artworks: about $0.0528
  • 100 artworks: about $0.1962

Only useful records pushed to the dataset incur the item event. Invalid identifiers, failed records, and duplicates are not charged as items. Check the Actor pricing tab for the applicable plan tier.

Build recurring cultural-heritage datasets

Use a stable list of Getty IDs as Task input, schedule it weekly or monthly, and export each run to your data warehouse. Keep uuid as the durable join key and scrapedAt as the extraction timestamp. Compare normalized fields between runs to detect source changes in attribution, descriptions, rights, or provenance.

This Actor performs extraction only. Scheduling, notifications, history comparison, and downstream storage are configured through Apify Tasks, schedules, integrations, or your own pipeline.

Legality and responsible use

Getty exposes collection metadata and record-specific rights information, but metadata and images can have different terms. Review rights, metadataLicense, and the canonical sourceUrl before publication or commercial reuse. A public image URL is not by itself a blanket rights grant.

Descriptions may contain authored text with separate terms. Respect Getty's terms, applicable copyright, attribution expectations, rate limits, and laws. Do not use this Actor to misrepresent ownership or rights clearance.

Limits and failure behavior

  • The Actor resolves supplied records only; it does not implement keyword search or whole-catalog crawling.
  • Getty may omit values, and output preserves that uncertainty.
  • Public object URLs require one mapping request before the JSON request; UUIDs need only the JSON request.
  • Transient HTTP statuses are retried up to three times with bounded backoff.
  • One invalid item is logged and does not discard valid records in the same batch.
  • If no supplied item resolves, the run fails instead of silently returning a misleading success.
  • Image binaries are not downloaded or stored.

Integrations and exports

From the default dataset you can:

  • export JSON, JSONL, CSV, Excel, XML, or RSS;
  • send records to Google Sheets through an Apify integration;
  • trigger a webhook after a scheduled refresh;
  • read dataset items from Python, JavaScript, notebooks, or ETL tools;
  • join records across runs by uuid or accessionNumber.

Nested measurements and provenance are richest in JSON exports. Flatten those arrays explicitly when loading CSV into a relational table.

Run through the Apify API

Replace YOUR_TOKEN with an Apify API token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~getty-museum-open-content-scraper/runs?token=YOUR_TOKEN&waitForFinish=120" \
-H "Content-Type: application/json" \
-d '{"artworks":["103RDF"],"maxItems":1}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/getty-museum-open-content-scraper').call({
artworks: ['103RDF'],
maxItems: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient(token="YOUR_TOKEN")
run = client.actor("automation-lab/getty-museum-open-content-scraper").call(
run_input={"artworks": ["103RDF"], "maxItems": 1}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with MCP and AI assistants

Add the Apify MCP server to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/getty-museum-open-content-scraper"

Claude Desktop, Cursor, and VS Code setup

Desktop/editor configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/getty-museum-open-content-scraper"
}
}
}

Example prompts:

  • “Export the Getty record for object 103RDF and summarize its rights and provenance.”
  • “Normalize these Getty collection URLs, then list accession numbers, creators, dates, and IIIF manifests.”

Troubleshooting

Why did my run fail with no records? Verify that each value is a current Getty Museum collection ID, supported collection URL, or 36-character collection UUID. The per-item log names unresolved values.

Why is a field empty? Getty's Linked Open Data record may not publish it. Use apiUrl and sourceUrl to inspect the source record.

Why is an image absent? Not every catalog record exposes a representation. The Actor does not substitute unrelated media.

Why did two inputs produce one row? They resolved to the same collection UUID and were intentionally deduplicated.

FAQ

Does this scrape Getty Images? No. This Actor targets the J. Paul Getty Museum collection on getty.edu, not the Getty Images commercial service.

Can it search for an artist? No. Supply known artwork URLs or IDs. This narrow contract keeps runs deterministic and suitable for recurring enrichment.

Does it download high-resolution images? No. It exports public Getty IIIF image and manifest references without paying transfer cost for unwanted files.

Do I need a proxy? No. The current official public routes work through direct HTTP.

Can I process the same list repeatedly? Yes. Stable identifiers and source URLs make the output suitable for scheduled refreshes and change detection downstream.

This Actor is intentionally standalone within the current automation-lab portfolio: no existing Actor targets another museum collection with an equivalent identity-and-provenance contract. Use Apify dataset exports and integrations to combine its results with your other cultural-heritage sources.

Support

When reporting a problem, include the run link and a non-sensitive example identifier. Do not include API tokens. Getty can change its public data model; a concrete failed record helps distinguish a source omission from a parser regression.