RubyGems API: Get a Ruby gem's details
Looks up a Ruby gem on RubyGems by name or gem page link and returns its latest version, release date, description, downloads, authors, license, links and runtime dependencies.
Unofficial. Not affiliated with or endorsed by RubyGems.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Gem, required
gem Gem name or RubyGems gem page link, such as rails or https://rubygems.org/gems/rails.
rails
Input as JSON
{ "gem": "rails"}Output
{ "name": "rails", "authors": [ "David Heinemeier Hansson" ], "license": "MIT", "description": "Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.", "release_date": "2026-09-24", "homepage_link": "https://rubyonrails.org" , "rubygems_link": "https://rubygems.org/gems/rails" , "latest_version": "8.1.4", "total_downloads": 805383766, "source_code_link": "https://github.com/rails/rails/tree/v8.1.4" , "runtime_dependencies": [ { "name": "actioncable", "version_requirement": "= 8.1.4" }, { "name": "actionmailbox", "version_requirement": "= 8.1.4" }, { "name": "actionmailer", "version_requirement": "= 8.1.4" } ], "latest_version_downloads": 2547555}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"rubygems.org/get_gem","input":{"gem":"rails"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "rubygems.org/get_gem" , "input": { "gem": "rails" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "rubygems.org/get_gem" , "input": { "gem": "rails" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run rubygems.org/get_gem# with {"gem":"rails"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "gem" ], "properties": { "gem": { "type": "string", "description": "Gem name or RubyGems gem page link, such as rails or https://rubygems.org/gems/rails." } }}Output schema
{ "type": "object", "required": [ "name", "latest_version", "release_date", "description", "total_downloads", "latest_version_downloads", "authors", "license", "homepage_link", "source_code_link", "runtime_dependencies", "rubygems_link" ], "properties": { "name": { "type": "string", "description": "Gem name." }, "authors": { "type": "array", "items": { "type": "string" }, "description": "Gem authors." }, "license": { "type": [ "string", "null" ], "description": "Declared license or licenses." }, "description": { "type": [ "string", "null" ], "description": "Gem summary." }, "release_date": { "type": [ "string", "null" ], "format": "date", "description": "Release date of the latest version, YYYY-MM-DD." }, "homepage_link": { "type": [ "string", "null" ], "description": "Project homepage link." }, "rubygems_link": { "type": "string", "description": "RubyGems gem page link." }, "latest_version": { "type": "string", "description": "Latest version." }, "total_downloads": { "type": "integer", "description": "Downloads across all versions." }, "source_code_link": { "type": [ "string", "null" ], "description": "Source code link." }, "runtime_dependencies": { "type": "array", "items": { "type": "object", "required": [ "name", "version_requirement" ], "properties": { "name": { "type": "string" }, "version_requirement": { "type": "string" } } }, "description": "Runtime dependencies and version requirements." }, "latest_version_downloads": { "type": "integer", "description": "Downloads for the latest version." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
rubygems.org/get_gem- Returns
- name, latest version, release date, description, downloads, authors, license, links, runtime dependencies
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method rubygems.org/get_gem with the inputs above.
Ask your agent
- What's the latest version of the rails gem and when was it released?
- Show me the license, authors and runtime dependencies for nokogiri
- Look up the devise gem on RubyGems and give me its description and download count
- I need details on the sidekiq gem, including its links and dependencies
- Check the https://rubygems.org/gems/puma page and tell me its latest version and total downloads
See more
Finds the best-matching WordPress.org plugin by name or plugin page link and returns its details, including the changelog for the latest version when one is available.
wordpress.org/get_pluginLooks up a public npm package by name or npm link. Returns its latest version, weekly downloads, maintainers, links, dates and version count.
npmjs.com/get_packageGets a PyPI package's current version, release date, metadata, project links and its 10 most recently published versions from a package name or PyPI link.
pypi.org/get_packageLooks up a NuGet package by name or nuget.org link. Inexact names match the top search result. Returns the latest stable release's details and the 10 most recent versions, including prereleases.
nuget.org/get_packageLooks up a Rust crate by name or crates.io link and returns its latest version, downloads, links, dates, license and 10 most recent releases.
crates.io/get_crateGets public Docker Hub image details and the newest tags from an image name or Docker Hub page link. Signature and metadata artifact tags are omitted; size is the reported compressed tag size.
hub.docker.com/get_container_imageGets one Goodreads book's details, reader ratings and edition information. The book can be a title, an ISBN or a book link; a title uses the best search match.
goodreads.com/get_bookFinds a Discogs release by title, artist or release link and returns its edition details, tracks, community counts, current price and sold price statistics.
discogs.com/get_release