Sign inTry it

Search museum artworks on Google Arts & Culture.

Searches Google Arts & Culture like its search page and returns the artworks it lists: title and link to each artwork page. Only the artwork tiles are read, not the topic, artist, exhibition or street view cards. Returns the first results page only.

No reports yetRead-only, no login
Site
Google Arts & Culture, United States
Version
v1
Runs, last 7 days
No reports yet
sha256
6e3a8ccee514…

Run it with your agent

after installing Wield

Ask in plain words. Your agent finds this recipe and calls it:

“Search museum artworks on Google Arts & Culture.”

Read-only: it changes nothing on the site. No login needed.

{
  "tool": "run",
  "arguments": {
    "recipe_id": "artsandculture.google.com/search-titles",
    "params": {
      "query": "Frida Kahlo"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/search?qServer-rendered search page /search?q=...; read-only GET. Artwork tiles are links to /asset/<slug>/<id> with the artwork title in the title attribute.

Parameters

from your agent
querystringrequiredArtist, artwork, movement or museum, e.g. 'Frida Kahlo', 'Dutch still life', 'Mughal miniature'

Returns

to your agent
artworksobject[]name, url
querystring

Where it can send

  • artsandculture.google.com

Anything else is blocked by the extension.

Reads from your session

Nothing. Your browser attaches the site's cookies by itself.

Used only in requests to the addresses on the left. Never sent to wield.run or your agent.

Checks

a run passes when
  • length(output.artworks) > `0`
  • length(output.artworks[?starts_with(url, 'https://artsandculture.google.com/asset/')]) == length(output.artworks)
  • length(output.artworks[?name != `null`]) == length(output.artworks)

Raw recipe

Served as canonical JSON from /api/v1/recipes/artsandculture.google.com/search-titles, so its sha256 matches the ETag and the index.

Check it yourself
curl -s https://wield.run/api/v1/recipes/artsandculture.google.com/search-titles | shasum -a 256
# 6e3a8ccee5141ef4d682ab34a9339ea09c19d8279f1d70f8b08fb08957c89b03
artsandculture.google.com/search-titles.json, v1
{
  "description": "Searches Google Arts & Culture like its search page and returns the artworks it lists: title and link to each artwork page. Only the artwork tiles are read, not the topic, artist, exhibition or street view cards. Returns the first results page only.",
  "effect": "read",
  "id": "artsandculture.google.com/search-titles",
  "keywords": [
    "google arts",
    "arts and culture",
    "artsandculture",
    "museum",
    "museums",
    "artwork",
    "artworks",
    "paintings",
    "kunst",
    "art",
    "gemälde",
    "museum collection",
    "art history",
    "culture",
    "artsandculture.google.com"
  ],
  "output": {
    "schema": {
      "properties": {
        "artworks": {
          "items": {
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "query": {
          "type": "string"
        }
      },
      "required": [
        "query",
        "artworks"
      ],
      "type": "object"
    },
    "value": "{query: params.query, artworks: steps.search.artworks[?name != `null` && href != `null`].{name: name, url: join('', ['https://artsandculture.google.com', href])}}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "query": {
        "description": "Artist, artwork, movement or museum, e.g. 'Frida Kahlo', 'Dutch still life', 'Mughal miniature'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "har",
    "notes": "GET /search?q=<query> returns server-rendered HTML with artwork tiles as links to /asset/<slug>/<id>; the artwork title is the link's title attribute. Topic, artist, exhibition and street view cards use other link paths and are not read. Artwork dates, artists and museums are not in the tile markup, so they are not returned.",
    "recorded_at": "2026-11-08T16:40:00.000Z",
    "recorded_by": "wield-forge (claude-haiku agent)"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "US",
    "id": "artsandculture.google.com",
    "language": "en",
    "name": "Google Arts & Culture",
    "origin": "https://artsandculture.google.com",
    "origins": [
      "https://artsandculture.google.com"
    ]
  },
  "steps": [
    {
      "description": "Server-rendered search page /search?q=...; read-only GET. Artwork tiles are links to /asset/<slug>/<id> with the artwork title in the title attribute.",
      "expect": {
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "html_items": {
          "artworks": {
            "fields": {
              "href": {
                "attr": "href",
                "selector": ":scope"
              },
              "name": {
                "attr": "title",
                "selector": ":scope"
              }
            },
            "max": 60,
            "selector": "a[href^='/asset/'][title]"
          }
        }
      },
      "id": "search",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "query": {
          "q": "{{params.query}}"
        },
        "url": "/search"
      }
    }
  ],
  "task": "Search museum artworks on Google Arts & Culture",
  "tos": {
    "notes": "Not reviewed. One search page per call, the same page a visitor loads. The site's terms on automated access were not checked.",
    "reviewed": false
  },
  "verify": {
    "checks": [
      "length(output.artworks) > `0`",
      "length(output.artworks[?starts_with(url, 'https://artsandculture.google.com/asset/')]) == length(output.artworks)",
      "length(output.artworks[?name != `null`]) == length(output.artworks)"
    ],
    "example_params": {
      "query": "Frida Kahlo"
    },
    "max_ms": 5000
  },
  "version": 1
}