{"description":"Searches RubyGems.org, the Ruby package host, for gems by name or keyword: name, latest version, summary, total downloads, project page and homepage. First page of results (up to 30, most downloaded first). Returns an empty list when nothing matches.","effect":"read","id":"rubygems.org/search-packages","keywords":["rubygems","gems","gem","ruby","rubygems.org","rails","ruby on rails","packages","library","libraries","bundler","rspec","nokogiri"],"output":{"schema":{"properties":{"gems":{"items":{"properties":{"downloads":{"description":"Total downloads of the gem","type":"integer"},"homepage":{"type":["string","null"]},"name":{"type":"string"},"summary":{"type":["string","null"]},"url":{"description":"RubyGems project page","type":"string"},"version":{"type":["string","null"]}},"required":["name","url"],"type":"object"},"type":"array"},"query":{"type":"string"}},"required":["query","gems"],"type":"object"},"value":"{query: params.query, gems: steps.search.gems[].{name: name, version: version || `null`, summary: info || `null`, downloads: downloads || `0`, homepage: homepage_uri || `null`, url: (project_uri || join('', ['https://rubygems.org/gems/', name])) }}"},"params":{"additionalProperties":false,"properties":{"query":{"description":"Gem name or keyword, e.g. 'rails', 'rspec', 'pdf'","maxLength":100,"minLength":2,"type":"string"}},"required":["query"],"type":"object"},"provenance":{"method":"har","notes":"The search page /search?query= renders gem cards in HTML, each linking to /gems/<name>. RubyGems' public search API /api/v1/search.json?query= answers a plain GET with no key and returns the same gems with name, version, info, downloads, project_uri and homepage_uri. The recipe calls that API.","recorded_at":"2026-11-08T16:02:00.000Z","recorded_by":"wield-forge (claude-haiku agent)"},"requires_login":false,"schema":"https://wield.run/schema/recipe/v1.json","site":{"country":"US","id":"rubygems.org","language":"en","name":"RubyGems","origin":"https://rubygems.org","origins":["https://rubygems.org"]},"steps":[{"description":"RubyGems' public gem search API /api/v1/search.json?query=, a plain read-only GET with no key. Returns an array of gems, most downloaded first, with name, version, info (summary), downloads and project_uri.","expect":{"content_type":"json","status":[200]},"extract":{"json":{"gems":"[?name]"}},"id":"search","request":{"headers":{"Accept":"application/json"},"method":"GET","query":{"query":"{{params.query}}"},"url":"/api/v1/search.json"}}],"task":"Search Ruby gems","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.gems) > `0`","length(output.gems[?starts_with(url, 'https://rubygems.org/gems/')]) == length(output.gems)","length(output.gems[?name != `null`]) == length(output.gems)","length(output.gems[?downloads > `0`]) > `0`"],"example_params":{"query":"rails"},"max_ms":5000},"version":1}