RubyGems · Schema

RubyGems Gem

A Ruby gem hosted on RubyGems.org, representing a packaged Ruby library or application distributed through the RubyGems package registry.

RubyPackage ManagerOpen-SourceDeveloper Tools

Properties

Name Type Description
name string The unique name of the gem on RubyGems.org
downloads integer Total number of downloads across all versions of this gem
version string The current (latest) version number following Ruby versioning conventions
version_created_at string ISO 8601 timestamp when the current version was published
version_downloads integer Number of downloads for the current version
platform string The platform the gem targets (e.g., ruby, java, x86_64-linux)
authors string Comma-separated list of gem authors
info string Short description of the gem
licenses array SPDX license identifiers for the gem
metadata object Additional metadata key-value pairs defined in the gemspec
yanked boolean Whether the current version has been yanked from the registry
sha string SHA-256 checksum of the gem file
project_uri string URI to the gem project page on RubyGems.org
gem_uri string URI to download the gem file
homepage_uri stringnull URI to the gem homepage
wiki_uri stringnull URI to the gem wiki
documentation_uri stringnull URI to the gem documentation
mailing_list_uri stringnull URI to the gem mailing list
source_code_uri stringnull URI to the gem source code repository
bug_tracker_uri stringnull URI to the gem bug tracker
changelog_uri stringnull URI to the gem changelog
funding_uri stringnull URI to the gem funding page
dependencies object
View JSON Schema on GitHub

JSON Schema

rubygems-gem-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rubygems.org/schemas/rubygems/gem.json",
  "title": "RubyGems Gem",
  "description": "A Ruby gem hosted on RubyGems.org, representing a packaged Ruby library or application distributed through the RubyGems package registry.",
  "type": "object",
  "required": ["name", "version"],
  "properties": {
    "name": {
      "type": "string",
      "description": "The unique name of the gem on RubyGems.org",
      "pattern": "^[a-zA-Z0-9._-]+$",
      "minLength": 1,
      "maxLength": 255
    },
    "downloads": {
      "type": "integer",
      "description": "Total number of downloads across all versions of this gem",
      "minimum": 0
    },
    "version": {
      "type": "string",
      "description": "The current (latest) version number following Ruby versioning conventions",
      "pattern": "^[0-9]+(\\.[0-9]+)*(\\.[a-zA-Z0-9]+)*$"
    },
    "version_created_at": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the current version was published"
    },
    "version_downloads": {
      "type": "integer",
      "description": "Number of downloads for the current version",
      "minimum": 0
    },
    "platform": {
      "type": "string",
      "description": "The platform the gem targets (e.g., ruby, java, x86_64-linux)",
      "default": "ruby"
    },
    "authors": {
      "type": "string",
      "description": "Comma-separated list of gem authors"
    },
    "info": {
      "type": "string",
      "description": "Short description of the gem"
    },
    "licenses": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "SPDX license identifiers for the gem"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Additional metadata key-value pairs defined in the gemspec"
    },
    "yanked": {
      "type": "boolean",
      "description": "Whether the current version has been yanked from the registry"
    },
    "sha": {
      "type": "string",
      "description": "SHA-256 checksum of the gem file",
      "pattern": "^[a-f0-9]{64}$"
    },
    "project_uri": {
      "type": "string",
      "format": "uri",
      "description": "URI to the gem project page on RubyGems.org"
    },
    "gem_uri": {
      "type": "string",
      "format": "uri",
      "description": "URI to download the gem file"
    },
    "homepage_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem homepage"
    },
    "wiki_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem wiki"
    },
    "documentation_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem documentation"
    },
    "mailing_list_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem mailing list"
    },
    "source_code_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem source code repository"
    },
    "bug_tracker_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem bug tracker"
    },
    "changelog_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem changelog"
    },
    "funding_uri": {
      "type": ["string", "null"],
      "format": "uri",
      "description": "URI to the gem funding page"
    },
    "dependencies": {
      "$ref": "#/$defs/Dependencies"
    }
  },
  "$defs": {
    "Dependencies": {
      "type": "object",
      "description": "Runtime and development dependency lists for the gem",
      "properties": {
        "development": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Dependency"
          },
          "description": "Dependencies needed only during development"
        },
        "runtime": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Dependency"
          },
          "description": "Dependencies required at runtime"
        }
      }
    },
    "Dependency": {
      "type": "object",
      "description": "A dependency on another gem with version constraints",
      "required": ["name", "requirements"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the dependency gem"
        },
        "requirements": {
          "type": "string",
          "description": "Version requirement string (e.g., '>= 1.0', '~> 2.0')"
        }
      }
    },
    "GemVersion": {
      "type": "object",
      "description": "A specific version of a Ruby gem with build and publication metadata",
      "required": ["number"],
      "properties": {
        "authors": {
          "type": "string",
          "description": "Comma-separated list of version authors"
        },
        "built_at": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the version was built"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "ISO 8601 timestamp when the version was published"
        },
        "description": {
          "type": "string",
          "description": "Full description of the gem version"
        },
        "downloads_count": {
          "type": "integer",
          "description": "Number of downloads for this version",
          "minimum": 0
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Additional metadata for this version"
        },
        "number": {
          "type": "string",
          "description": "The version number"
        },
        "summary": {
          "type": "string",
          "description": "Short summary of the gem version"
        },
        "platform": {
          "type": "string",
          "description": "The platform for this version"
        },
        "rubygems_version": {
          "type": "string",
          "description": "Minimum RubyGems version required"
        },
        "ruby_version": {
          "type": "string",
          "description": "Minimum Ruby version required"
        },
        "prerelease": {
          "type": "boolean",
          "description": "Whether this is a prerelease version"
        },
        "licenses": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "SPDX license identifiers for this version"
        },
        "requirements": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "System requirements for this version"
        },
        "sha": {
          "type": "string",
          "description": "SHA-256 checksum of the gem file",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    },
    "Owner": {
      "type": "object",
      "description": "A gem owner on RubyGems.org",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "integer",
          "description": "Unique user ID"
        },
        "handle": {
          "type": "string",
          "description": "User handle on RubyGems.org"
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "User email address"
        }
      }
    },
    "Webhook": {
      "type": "object",
      "description": "A webhook subscription on RubyGems.org",
      "required": ["url"],
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The URL that receives webhook POST notifications"
        },
        "failure_count": {
          "type": "integer",
          "description": "Number of consecutive delivery failures",
          "minimum": 0
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/rubygems-gem"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.