Ruby Programming Language and Popular API Gems
A profile of the Ruby programming language ecosystem from an API perspective: the language and its standard library HTTP surface (Net::HTTP), the rubygems.org package registry and its public v1/v2 REST API, Bundler, RBS type signatures, popular HTTP/REST client gems (Faraday, http.rb, HTTParty, Excon, Typhoeus, REST Client, HTTPClient), and the major Ruby frameworks used to build APIs (Rails API mode, Sinatra, Grape).
15 APIs
9 Capabilities
6 Features
Programming LanguageRubyHTTPRESTAPI ClientsFrameworksLibrariesPackage Registry
Ruby Programming Language and Popular API Gems publishes 1 API on the APIs.io network: RubyGems.org Registry API v1. Tagged areas include Programming Language, Ruby, HTTP, REST, and API Clients.
The Ruby Programming Language and Popular API Gems catalog on APIs.io includes 9 machine-runnable capabilities, 1 JSON-LD context, and 1 Spectral governance ruleset.
Ruby Programming Language and Popular API Gems’ developer surface includes documentation, getting-started guide, release notes, engineering blog, and 15 more developer resources.
The HTTP client class shipped with the Ruby standard library. Provides class and instance methods for GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS, TRACE plus WebDAV methods (CO...
Public REST API for the rubygems.org package registry. Endpoints cover gems, versions, downloads, owners, profiles, web hooks, activity, API keys, and OIDC/trusted-publishing to...
Version 2 of the rubygems.org registry API. Adds gem version detail endpoints with optional platform query parameter, returning richer metadata than v1.
Dependency manager for Ruby. Reads a Gemfile, resolves and installs gems from rubygems.org or alternate sources, and writes Gemfile.lock for reproducible installs across environ...
A language for describing the structure of Ruby programs. Lets developers declare classes, modules, method signatures, instance variables and inheritance in separate .rbs files ...
Simple but flexible HTTP client library with a common interface over many adapters (Net::HTTP, Typhoeus, Patron, Excon, HTTPClient, and others) and Rack-style middleware for req...
HTTP client gem that "makes consuming RESTful web services dead easy" via a class-level DSL. Wraps Net::HTTP with parsing, query handling, and authentication helpers.
Fast Ruby HTTP client built on the llhttp parser with a chainable request-building API, streaming bodies, persistent connections, and fine-grained timeout control.
EXtended HTTP(S) CONnections library focused on performance, persistent connections, and predictable behavior. Used as an adapter under Faraday and inside Fog/cloud SDKs.
Libcurl-based HTTP client built for running HTTP requests in parallel. Pairs well with Hydra for fan-out integrations against many APIs at once.
Simple HTTP and REST client for Ruby inspired by Sinatra's microframework style. Provides class-level GET/POST/PUT/DELETE helpers.
Long-standing Ruby HTTP client providing "the functionality of libwww-perl (LWP) in Ruby". Supports keep-alive, cookies, proxies, and SSL.
Rails generated with the --api flag boots a slimmer middleware stack and an ApplicationController inheriting from ActionController::API (rather than ActionController::Base), mak...
"DSL for quickly creating web applications in Ruby with minimal effort." Widely used to stand up small HTTP APIs and microservices without the ceremony of a full-stack framework.
"Opinionated framework for creating REST-like APIs in Ruby." Provides a routing DSL with parameter validation, versioning, and content-negotiation helpers; runs standalone or mo...
Run Capabilities with Naftiko — Deploy and orchestrate these API capabilities using Naftiko Fleet.
Run with Naftiko
Activity surface — Activity. 2 operations. Lead operation: Get Latest Gem Releases. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
API Keys surface — API Keys. 1 operation. Lead operation: Get An API Key. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Downloads surface — Downloads. 2 operations. Lead operation: Get Downloads For A Gem Version. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Gems surface — Gems. 5 operations. Lead operation: Get Gem Info. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
OIDC surface — OIDC. 1 operation. Lead operation: Exchange OIDC Token For Trusted Publishing API Key. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Owners surface — Owners. 3 operations. Lead operation: List Owners Of A Gem. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Profiles surface — Profiles. 1 operation. Lead operation: Get Authenticated User Profile. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Versions surface — Versions. 3 operations. Lead operation: List All Versions Of A Gem. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Webhooks surface — Webhooks. 4 operations. Lead operation: List Web Hooks. Self-contained Naftiko capability covering one RubyGems business surface.
Run with Naftiko
Run Capabilities with Naftiko — Deploy and orchestrate these API capabilities using Naftiko Fleet.
Run with Naftiko
Dynamic, Object-Oriented Language
Ruby is a dynamic, open-source programming language with a focus on simplicity and productivity, with everything-is-an-object semantics.
Standard Library HTTP Client
Net::HTTP ships in the standard library and covers GET/POST/PUT/ DELETE/HEAD/PATCH/OPTIONS/TRACE plus WebDAV verbs and TLS.
Public Package Registry API
rubygems.org exposes versioned v1 and v2 REST APIs over HTTPS for discovering, publishing, and managing gems with JSON or YAML responses.
Trusted Publishing via OIDC
/api/v1/oidc/ endpoints let CI providers exchange OIDC tokens for short-lived RubyGems API keys instead of long-lived secrets.
Type Signatures with RBS
RBS provides a separate-file type signature language so Ruby code can carry an explicit, machine-checkable contract for IDEs and type checkers.
API-First Rails
rails new --api generates a Rails app with a JSON-oriented middleware stack and ActionController::API as the base class.
Consuming Third-Party HTTP APIs
Calling external REST APIs from Ruby scripts, jobs, and services using Net::HTTP, Faraday, http.rb, HTTParty, or Excon.
Building JSON APIs
Standing up REST/JSON APIs with Rails in --api mode, Sinatra, or Grape, optionally documented with OpenAPI tooling.
Publishing and Managing Gems
Releasing libraries to rubygems.org via the v1 publish endpoints and the gem and bundler CLIs, including trusted-publishing flows.
Mirroring or Caching a Private Gem Server
Running gemstash as a rubygems.org cache and private gem server inside an enterprise.
Static Analysis and IDE Support
Writing .rbs signatures so type checkers and IDEs can validate method shapes against the implementation.
rubygems.org Registry
The default gem source for bundler and the gem CLI, accessible over HTTPS at https://rubygems.org and https://rubygems.org/api/v1.
GitHub Actions (setup-ruby)
ruby/setup-ruby installs prebuilt Ruby versions in CI for building, testing, and publishing gems.
OIDC Trusted Publishing
/api/v1/oidc/ exchanges short-lived CI OIDC tokens for scoped rubygems.org API keys, eliminating long-lived secrets.
Fastly CDN
rubygems.org serves gem downloads and the API surface through Fastly edge caching, tracked on status.rubygems.org.
HackerOne Vulnerability Disclosure
Ruby core security issues are reported through the official HackerOne program and the [email protected] mailing list.
aid: ruby
name: Ruby Programming Language and Popular API Gems
description: >-
A profile of the Ruby programming language ecosystem from an API perspective:
the language and its standard library HTTP surface (Net::HTTP), the
rubygems.org package registry and its public v1/v2 REST API, Bundler,
RBS type signatures, popular HTTP/REST client gems (Faraday, http.rb,
HTTParty, Excon, Typhoeus, REST Client, HTTPClient), and the major
Ruby frameworks used to build APIs (Rails API mode, Sinatra, Grape).
type: Index
image: https://kinlane-productions.s3.amazonaws.com/apis-json/apis-json-logo.jpg
tags:
- Programming Language
- Ruby
- HTTP
- REST
- API Clients
- Frameworks
- Libraries
- Package Registry
url: >-
https://raw.githubusercontent.com/api-evangelist/ruby/refs/heads/main/apis.yml
created: '2026-05-23'
modified: '2026-05-23'
specificationVersion: '0.19'
apis:
- aid: ruby:net-http
name: Net::HTTP (Ruby Standard Library)
description: >-
The HTTP client class shipped with the Ruby standard library. Provides
class and instance methods for GET, POST, PUT, DELETE, HEAD, PATCH,
OPTIONS, TRACE plus WebDAV methods (COPY, LOCK, MKCOL, MOVE, PROPFIND,
PROPPATCH, UNLOCK), TLS, proxy support, and configurable timeouts.
Backs many higher-level gems such as Faraday's default adapter.
humanURL: https://docs.ruby-lang.org/en/master/Net/HTTP.html
tags:
- HTTP Client
- Standard Library
- Built-In
properties:
- type: Documentation
url: https://docs.ruby-lang.org/en/master/Net/HTTP.html
- type: GitHub
url: https://github.com/ruby/net-http
- aid: ruby:rubygems-registry-api
name: RubyGems.org Registry API v1
description: >-
Public REST API for the rubygems.org package registry. Endpoints cover
gems, versions, downloads, owners, profiles, web hooks, activity, API
keys, and OIDC/trusted-publishing token exchange. Authentication is
via an API key in the Authorization header with optional OTP header
for MFA. Responses available as JSON or YAML.
humanURL: https://guides.rubygems.org/rubygems-org-api/
baseURL: https://rubygems.org/api/v1
tags:
- Package Registry
- REST
- Public API
properties:
- type: Documentation
url: https://guides.rubygems.org/rubygems-org-api/
- type: APIReference
url: https://guides.rubygems.org/rubygems-org-api/
- type: Authentication
url: https://guides.rubygems.org/api-key-scopes/
- type: GitHub
url: https://github.com/rubygems/rubygems.org
- type: SDK
url: https://github.com/rubygems/gems
- type: OpenAPI
url: openapi/rubygems-registry-openapi.yml
- type: JSONSchema
url: json-schema/rubygems-registry-gem-schema.json
- type: JSONSchema
url: json-schema/rubygems-registry-version-schema.json
- type: JSONSchema
url: json-schema/rubygems-registry-owner-schema.json
- type: JSONSchema
url: json-schema/rubygems-registry-webhook-schema.json
- type: JSONStructure
url: json-structure/rubygems-registry-gem-structure.json
- type: JSONStructure
url: json-structure/rubygems-registry-version-structure.json
- type: Example
url: examples/rubygems-registry-get-gem-example.json
- type: Example
url: examples/rubygems-registry-list-versions-example.json
- type: Example
url: examples/rubygems-registry-list-owners-example.json
- type: Example
url: examples/rubygems-registry-search-example.json
- type: Example
url: examples/rubygems-registry-create-webhook-example.json
- type: NaftikoCapability
url: capabilities/rubygems-registry-gems.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-versions.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-downloads.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-owners.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-profiles.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-webhooks.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-activity.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-api-keys.yaml
- type: NaftikoCapability
url: capabilities/rubygems-registry-oidc.yaml
- aid: ruby:rubygems-registry-api-v2
name: RubyGems.org Registry API v2
description: >-
Version 2 of the rubygems.org registry API. Adds gem version detail
endpoints with optional platform query parameter, returning richer
metadata than v1.
humanURL: https://guides.rubygems.org/rubygems-org-api-v2/
baseURL: https://rubygems.org/api/v2
tags:
- Package Registry
- REST
- Public API
properties:
- type: Documentation
url: https://guides.rubygems.org/rubygems-org-api-v2/
- type: APIReference
url: https://guides.rubygems.org/rubygems-org-api-v2/
- aid: ruby:bundler
name: Bundler
description: >-
Dependency manager for Ruby. Reads a Gemfile, resolves and installs
gems from rubygems.org or alternate sources, and writes Gemfile.lock
for reproducible installs across environments. Ships as part of
modern Ruby distributions.
humanURL: https://bundler.io/
tags:
- Dependency Management
- CLI
- Package Manager
properties:
- type: Documentation
url: https://bundler.io/docs.html
- type: GitHub
url: https://github.com/rubygems/rubygems
- aid: ruby:rbs
name: RBS (Ruby Type Signatures)
description: >-
A language for describing the structure of Ruby programs. Lets
developers declare classes, modules, method signatures, instance
variables and inheritance in separate .rbs files so type checkers
and IDE tooling can verify code against an explicit contract.
humanURL: https://github.com/ruby/rbs
tags:
- Type System
- Schema
- Contracts
properties:
- type: GitHub
url: https://github.com/ruby/rbs
- type: Documentation
url: https://github.com/ruby/rbs#readme
- aid: ruby:faraday
name: Faraday
description: >-
Simple but flexible HTTP client library with a common interface over
many adapters (Net::HTTP, Typhoeus, Patron, Excon, HTTPClient, and
others) and Rack-style middleware for request/response processing.
humanURL: https://lostisland.github.io/faraday/
tags:
- HTTP Client
- Middleware
properties:
- type: Documentation
url: https://lostisland.github.io/faraday/
- type: GitHub
url: https://github.com/lostisland/faraday
- aid: ruby:httparty
name: HTTParty
description: >-
HTTP client gem that "makes consuming RESTful web services dead easy"
via a class-level DSL. Wraps Net::HTTP with parsing, query handling,
and authentication helpers.
humanURL: https://github.com/jnunemaker/httparty
tags:
- HTTP Client
- REST
properties:
- type: GitHub
url: https://github.com/jnunemaker/httparty
- aid: ruby:http-rb
name: http.rb
description: >-
Fast Ruby HTTP client built on the llhttp parser with a chainable
request-building API, streaming bodies, persistent connections, and
fine-grained timeout control.
humanURL: https://github.com/httprb/http
tags:
- HTTP Client
- Streaming
properties:
- type: GitHub
url: https://github.com/httprb/http
- aid: ruby:excon
name: Excon
description: >-
EXtended HTTP(S) CONnections library focused on performance,
persistent connections, and predictable behavior. Used as an
adapter under Faraday and inside Fog/cloud SDKs.
humanURL: https://github.com/excon/excon
tags:
- HTTP Client
properties:
- type: GitHub
url: https://github.com/excon/excon
- aid: ruby:typhoeus
name: Typhoeus
description: >-
Libcurl-based HTTP client built for running HTTP requests in
parallel. Pairs well with Hydra for fan-out integrations against
many APIs at once.
humanURL: https://github.com/typhoeus/typhoeus
tags:
- HTTP Client
- Parallel
properties:
- type: GitHub
url: https://github.com/typhoeus/typhoeus
- aid: ruby:rest-client
name: REST Client
description: >-
Simple HTTP and REST client for Ruby inspired by Sinatra's
microframework style. Provides class-level GET/POST/PUT/DELETE
helpers.
humanURL: https://github.com/rest-client/rest-client
tags:
- HTTP Client
- REST
properties:
- type: GitHub
url: https://github.com/rest-client/rest-client
- aid: ruby:httpclient
name: HTTPClient
description: >-
Long-standing Ruby HTTP client providing "the functionality of
libwww-perl (LWP) in Ruby". Supports keep-alive, cookies, proxies,
and SSL.
humanURL: https://github.com/nahi/httpclient
tags:
- HTTP Client
properties:
- type: GitHub
url: https://github.com/nahi/httpclient
- aid: ruby:rails-api
name: Ruby on Rails (API Mode)
description: >-
Rails generated with the --api flag boots a slimmer middleware stack
and an ApplicationController inheriting from ActionController::API
(rather than ActionController::Base), making Rails a first-class
JSON API framework while keeping Active Record, routing, and
generators.
humanURL: https://guides.rubyonrails.org/api_app.html
tags:
- Web Framework
- REST
- JSON API
properties:
- type: Documentation
url: https://guides.rubyonrails.org/api_app.html
- type: GitHub
url: https://github.com/rails/rails
- type: Website
url: https://rubyonrails.org/
- aid: ruby:sinatra
name: Sinatra
description: >-
"DSL for quickly creating web applications in Ruby with minimal
effort." Widely used to stand up small HTTP APIs and microservices
without the ceremony of a full-stack framework.
humanURL: https://sinatrarb.com/
tags:
- Web Framework
- Microframework
- DSL
properties:
- type: Documentation
url: https://sinatrarb.com/documentation.html
- type: GitHub
url: https://github.com/sinatra/sinatra
- aid: ruby:grape
name: Grape
description: >-
"Opinionated framework for creating REST-like APIs in Ruby." Provides
a routing DSL with parameter validation, versioning, and
content-negotiation helpers; runs standalone or mounted in Rails.
humanURL: https://github.com/ruby-grape/grape
tags:
- Web Framework
- REST
- DSL
properties:
- type: GitHub
url: https://github.com/ruby-grape/grape
- type: Documentation
url: https://github.com/ruby-grape/grape#readme
common:
- type: SpectralRules
url: rules/rubygems-registry-rules.yml
- type: Vocabulary
url: vocabulary/ruby-vocabulary.yml
- type: JSON-LD
url: json-ld/ruby-context.jsonld
- type: Website
url: https://www.ruby-lang.org/
- type: Documentation
url: https://docs.ruby-lang.org/en/
- type: GettingStarted
url: https://www.ruby-lang.org/en/documentation/quickstart/
- type: Downloads
url: https://www.ruby-lang.org/en/downloads/
- type: ReleaseNotes
url: https://www.ruby-lang.org/en/news/
- type: Security
url: https://www.ruby-lang.org/en/security/
- type: Community
url: https://www.ruby-lang.org/en/community/
- type: Blog
url: https://www.ruby-lang.org/en/news/
- type: GitHubOrganization
url: https://github.com/ruby
- type: GitHubOrganization
url: https://github.com/rubygems
- type: GitHubOrganization
url: https://github.com/rails
- type: SourceCode
url: https://github.com/ruby/ruby
- type: Registry
url: https://rubygems.org/
- type: StatusPage
url: https://status.rubygems.org/
- type: Blog
url: https://blog.rubygems.org/
- type: License
url: https://www.ruby-lang.org/en/about/license.txt
- type: Features
data:
- name: Dynamic, Object-Oriented Language
description: >-
Ruby is a dynamic, open-source programming language with a focus on
simplicity and productivity, with everything-is-an-object semantics.
- name: Standard Library HTTP Client
description: >-
Net::HTTP ships in the standard library and covers GET/POST/PUT/
DELETE/HEAD/PATCH/OPTIONS/TRACE plus WebDAV verbs and TLS.
- name: Public Package Registry API
description: >-
rubygems.org exposes versioned v1 and v2 REST APIs over HTTPS for
discovering, publishing, and managing gems with JSON or YAML
responses.
- name: Trusted Publishing via OIDC
description: >-
/api/v1/oidc/ endpoints let CI providers exchange OIDC tokens for
short-lived RubyGems API keys instead of long-lived secrets.
- name: Type Signatures with RBS
description: >-
RBS provides a separate-file type signature language so Ruby code
can carry an explicit, machine-checkable contract for IDEs and
type checkers.
- name: API-First Rails
description: >-
rails new --api generates a Rails app with a JSON-oriented
middleware stack and ActionController::API as the base class.
- type: UseCases
data:
- name: Consuming Third-Party HTTP APIs
description: >-
Calling external REST APIs from Ruby scripts, jobs, and services
using Net::HTTP, Faraday, http.rb, HTTParty, or Excon.
- name: Building JSON APIs
description: >-
Standing up REST/JSON APIs with Rails in --api mode, Sinatra,
or Grape, optionally documented with OpenAPI tooling.
- name: Publishing and Managing Gems
description: >-
Releasing libraries to rubygems.org via the v1 publish endpoints
and the gem and bundler CLIs, including trusted-publishing flows.
- name: Mirroring or Caching a Private Gem Server
description: >-
Running gemstash as a rubygems.org cache and private gem server
inside an enterprise.
- name: Static Analysis and IDE Support
description: >-
Writing .rbs signatures so type checkers and IDEs can validate
method shapes against the implementation.
- type: Integrations
data:
- name: rubygems.org Registry
description: >-
The default gem source for bundler and the gem CLI, accessible
over HTTPS at https://rubygems.org and https://rubygems.org/api/v1.
- name: GitHub Actions (setup-ruby)
description: >-
ruby/setup-ruby installs prebuilt Ruby versions in CI for
building, testing, and publishing gems.
- name: OIDC Trusted Publishing
description: >-
/api/v1/oidc/ exchanges short-lived CI OIDC tokens for scoped
rubygems.org API keys, eliminating long-lived secrets.
- name: Fastly CDN
description: >-
rubygems.org serves gem downloads and the API surface through
Fastly edge caching, tracked on status.rubygems.org.
- name: HackerOne Vulnerability Disclosure
description: >-
Ruby core security issues are reported through the official
HackerOne program and the [email protected] mailing list.
- type: Solutions
data:
- name: Self-Hosted RubyGems with Gemstash
description: >-
A caching proxy and private gem server for organizations that
need air-gapped or controlled gem distribution.
- name: Rails-Powered API Backends
description: >-
Production JSON API backends built on Rails --api mode with
Active Record, Active Job, and Action Cable as needed.
- name: Sinatra Microservices
description: >-
Lightweight HTTP services and API gateways built on Sinatra's
minimal DSL.
maintainers:
- FN: Kin Lane
email: [email protected]