Search icons on The Noun Project.
Searches The Noun Project icon library like its icon search page: icon title, link, preview image, creator name and license. First page of results (about 140 icons). Returns an empty list when nothing matches.
- Site
- The Noun Project, United States
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 7a036bdd8bb5…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search icons on The Noun Project.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "thenounproject.com/search-icons", "params": { "query": "coffee" } } }
Requests
sent from your browser, in order- 1GET/search/icons/?qServer-rendered icon search page /search/icons/?q=...; read-only GET. The results are in script#__NEXT_DATA__ under props.pageProps.initialState.browse.allIconsData[].results[].
Parameters
from your agentquerystringrequiredIcon term, e.g. 'coffee', 'bicycle', 'leaf'
Returns
to your agenticonsobject[]creator, license, thumbnail_url, title, url
querystring
Where it can send
- thenounproject.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.icons) > `0`
- length(output.icons[?starts_with(url, 'https://thenounproject.com/icon/')]) == length(output.icons)
- length(output.icons[?title != `null`]) == length(output.icons)
Raw recipe
Served as canonical JSON from /api/v1/recipes/thenounproject.com/search-icons, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/thenounproject.com/search-icons | shasum -a 256 # 7a036bdd8bb570cb5f3355ca0096a1a691f32bada81258498094d7f51370706d
thenounproject.com/search-icons.json, v1
{ "description": "Searches The Noun Project icon library like its icon search page: icon title, link, preview image, creator name and license. First page of results (about 140 icons). Returns an empty list when nothing matches.", "effect": "read", "id": "thenounproject.com/search-icons", "keywords": [ "noun project", "thenounproject", "icons", "icon", "symbols", "pictograms", "svg", "vector", "glyph", "graphics", "design", "clipart" ], "output": { "schema": { "properties": { "icons": { "items": { "properties": { "creator": { "type": [ "string", "null" ] }, "license": { "type": [ "string", "null" ] }, "thumbnail_url": { "type": [ "string", "null" ] }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "title", "url" ], "type": "object" }, "type": "array" }, "query": { "type": "string" } }, "required": [ "query", "icons" ], "type": "object" }, "value": "{query: params.query, icons: steps.search.icons[?title != `null` && url != `null`].{title: title, url: join('', ['https://thenounproject.com', url]), thumbnail_url: thumbnails.thumbnail200 || `null`, creator: creator.name || `null`, license: (license && replace(license, 'License.', '')) || `null`}}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Icon term, e.g. 'coffee', 'bicycle', 'leaf'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "GET /search/icons/?q=<query> returns server-rendered HTML with a __NEXT_DATA__ script holding the first page of icon results (id, url, title, thumbnails, tags, creator, license). Values are read from the embedded JSON; no hashed CSS classes are used. The recipe does not call other hosts.", "recorded_at": "2026-11-08T16:38:16.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "US", "id": "thenounproject.com", "language": "en", "name": "The Noun Project", "origin": "https://thenounproject.com", "origins": [ "https://thenounproject.com" ] }, "steps": [ { "description": "Server-rendered icon search page /search/icons/?q=...; read-only GET. The results are in script#__NEXT_DATA__ under props.pageProps.initialState.browse.allIconsData[].results[].", "expect": { "content_type": "html", "status": [ 200 ] }, "extract": { "embedded_json": { "required": true, "selector": "script#__NEXT_DATA__", "vars": { "icons": "props.pageProps.initialState.browse.allIconsData[].results[]" } } }, "id": "search", "request": { "headers": { "Accept": "text/html" }, "method": "GET", "query": { "q": "{{params.query}}" }, "url": "/search/icons/" } } ], "task": "Search icons on The Noun Project", "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.icons) > `0`", "length(output.icons[?starts_with(url, 'https://thenounproject.com/icon/')]) == length(output.icons)", "length(output.icons[?title != `null`]) == length(output.icons)" ], "example_params": { "query": "coffee" }, "max_ms": 5000 }, "version": 1 }