RubyGems Versions API

Endpoints for querying detailed version information for specific gem versions, including metadata, dependencies, checksums, and platform-specific builds.

OpenAPI Specification

rubygems-versions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RubyGems Activity Versions API
  description: The RubyGems Activity API provides endpoints that return the most recently added and most recently updated gems on RubyGems.org. The latest endpoint returns the 50 gems most recently published to the registry, while the just-updated endpoint returns the 50 most recently modified gems. These endpoints are useful for building activity feeds, monitoring new releases, and tracking changes across the Ruby ecosystem.
  version: '1.0'
  contact:
    name: RubyGems.org Support
    url: https://help.rubygems.org
  termsOfService: https://rubygems.org/pages/about
servers:
- url: https://rubygems.org/api/v1
  description: Production Server
tags:
- name: Versions
  description: Endpoints for querying detailed version information for specific gem versions, including metadata, dependencies, checksums, and platform-specific builds.
paths:
  /rubygems/{gemName}/versions/{versionNumber}.json:
    get:
      operationId: getGemVersionDetails
      summary: Get Gem Version Details
      description: Returns detailed information about a specific gem version, including name, version number, download counts, platform, authors, description, dependencies, URIs, timestamps, checksums, and metadata. Optionally filter by platform using the platform query parameter.
      tags:
      - Versions
      security: []
      parameters:
      - name: gemName
        in: path
        description: The name of the gem
        required: true
        schema:
          type: string
        example: coulda
      - name: versionNumber
        in: path
        description: The version number of the gem
        required: true
        schema:
          type: string
        example: 0.7.1
      - name: platform
        in: query
        description: Filter by platform. Common values include ruby, java, and x86_64-linux. If not specified, defaults to the ruby platform.
        required: false
        schema:
          type: string
        example: ruby
      responses:
        '200':
          description: Successful response with version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GemVersionDetail'
        '404':
          description: Gem or version not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /versions/{gemName}.json:
    get:
      operationId: getGemVersions
      summary: List Gem Versions
      description: Returns an array of version objects for a specific gem, including version numbers, platforms, authors, descriptions, checksums, and metadata for each published version.
      tags:
      - Versions
      security: []
      parameters:
      - $ref: '#/components/parameters/gemName'
      responses:
        '200':
          description: Successful response with array of version objects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GemVersion'
        '404':
          description: Gem not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /versions/{gemName}/latest.json:
    get:
      operationId: getLatestGemVersion
      summary: Get Latest Gem Version
      description: Returns an object containing the latest version number for the specified gem.
      tags:
      - Versions
      security: []
      parameters:
      - $ref: '#/components/parameters/gemName'
      responses:
        '200':
          description: Successful response with latest version
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: string
                    description: The latest version number
                    example: 3.5.0
        '404':
          description: Gem not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /timeframe_versions.json:
    get:
      operationId: getTimeframeVersions
      summary: Get Versions Within A Timeframe
      description: Returns an array of gem versions created within a specified timeframe. The from parameter is required and must be an ISO 8601 timestamp. The time span cannot exceed 7 days. Results are paginated with 30 versions per page.
      tags:
      - Versions
      security: []
      parameters:
      - name: from
        in: query
        description: Start of the timeframe in ISO 8601 format (e.g., 2024-01-01T00:00:00Z). Required.
        required: true
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        description: End of the timeframe in ISO 8601 format. Defaults to current time if not specified.
        required: false
        schema:
          type: string
          format: date-time
      - name: page
        in: query
        description: Page number for paginated results
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        '200':
          description: Successful response with array of gem versions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GemVersion'
components:
  schemas:
    GemVersionDetail:
      type: object
      description: Detailed information about a specific gem version
      properties:
        name:
          type: string
          description: The name of the gem
        downloads:
          type: integer
          description: Total downloads across all versions
        version:
          type: string
          description: The version number
        version_created_at:
          type: string
          format: date-time
          description: Timestamp when this version was created
        version_downloads:
          type: integer
          description: Download count for this specific version
        platform:
          type: string
          description: The platform for this version
        authors:
          type: string
          description: Comma-separated list of authors
        info:
          type: string
          description: Short description of the gem
        licenses:
          type: array
          items:
            type: string
          description: List of licenses
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Additional metadata key-value pairs
        yanked:
          type: boolean
          description: Whether this version has been yanked
        sha:
          type: string
          description: SHA-256 checksum of the gem file
        spec_sha:
          type: string
          description: SHA-256 checksum of the gemspec
        project_uri:
          type: string
          format: uri
          description: URI to the gem project page
        gem_uri:
          type: string
          format: uri
          description: URI to download the gem file
        homepage_uri:
          type: string
          format: uri
          description: URI to the gem homepage
        wiki_uri:
          type: string
          format: uri
          description: URI to the gem wiki
        documentation_uri:
          type: string
          format: uri
          description: URI to the gem documentation
        mailing_list_uri:
          type: string
          format: uri
          description: URI to the gem mailing list
        source_code_uri:
          type: string
          format: uri
          description: URI to the gem source code
        bug_tracker_uri:
          type: string
          format: uri
          description: URI to the gem bug tracker
        changelog_uri:
          type: string
          format: uri
          description: URI to the gem changelog
        funding_uri:
          type: string
          format: uri
          description: URI to the gem funding page
        dependencies:
          type: object
          properties:
            development:
              type: array
              items:
                $ref: '#/components/schemas/Dependency'
              description: Development dependencies
            runtime:
              type: array
              items:
                $ref: '#/components/schemas/Dependency'
              description: Runtime dependencies
          description: Gem dependency information
        built_at:
          type: string
          format: date-time
          description: Timestamp when the gem was built
        created_at:
          type: string
          format: date-time
          description: Timestamp when the version was published
        description:
          type: string
          description: Full description of the gem
        downloads_count:
          type: integer
          description: Download count for this version
        number:
          type: string
          description: The version number
        summary:
          type: string
          description: Short summary of the gem
        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
        requirements:
          type: array
          items:
            type: string
          description: Requirements for this version
    Dependency:
      type: object
      description: A gem dependency
      properties:
        name:
          type: string
          description: Name of the dependency gem
        requirements:
          type: string
          description: Version requirements string
    GemVersion:
      type: object
      description: A specific version of a Ruby gem
      properties:
        authors:
          type: string
          description: Comma-separated list of version authors
        built_at:
          type: string
          format: date-time
          description: Timestamp when the version was built
        created_at:
          type: string
          format: date-time
          description: 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
        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: The minimum RubyGems version required
        ruby_version:
          type: string
          description: The minimum Ruby version required
        prerelease:
          type: boolean
          description: Whether this is a prerelease version
        licenses:
          type: array
          items:
            type: string
          description: Licenses for this version
        requirements:
          type: array
          items:
            type: string
          description: Requirements for this version
        sha:
          type: string
          description: SHA-256 checksum of the gem file
    Error:
      type: object
      description: Error response from the RubyGems.org API
      properties:
        error:
          type: string
          description: Error message
  parameters:
    gemName:
      name: gemName
      in: path
      description: The name of the gem
      required: true
      schema:
        type: string
      example: rails
externalDocs:
  description: RubyGems.org API Documentation
  url: https://guides.rubygems.org/rubygems-org-api/