Clerk logo

Clerk Docs

Ctrl + K
Go to clerk.devGet API keys

Getting started with Ruby

The source code of the Ruby SDK is hosted here: https://github.com/clerkinc/clerk-sdk-ruby

​Add this line to your application's Gemfile

gem 'clerk-sdk-ruby', require: "clerk"

And then execute:

$ bundle install

Or install it yourself as:

$ gem install clerk-sdk-ruby

Quick Start

First, you need to get an API key for a Clerk instance.

This is done on the API Keys page.

Then you can instantiate a Clerk::SDK instance and access all Backend API endpoints. Here's a quick example:

clerk = Clerk::SDK.new(api_key: "your_api_key")
# List all users
clerk.users.all
# Get your first user
user = clerk.users.all(limit: 1).first
# Extract their primary email address ID
email_id = user["primary_email_address_id"]
# Send them a welcome email
clerk.emails.create(
email_address_id: email_id,
from_email_name: "welcome",
subject: "Welcome to MyApp",
body: "Welcome to MyApp, #{user["first_name"]}",
)

Configuration

The SDK can be configured in three ways: environment variables, configuration singleton and constructor arguments. The priority goes like this:

  1. Constructor arguments
  2. Configuration object
  3. Environment variables

If an argument is not provided, the configuration object is looked up, which falls back to the associated environment variable. Here's an example with all supported configuration settings their environment variable equivalents:

Clerk.configure do |c|
c.api_key = "your_api_key" # if omitted: ENV["CLERK_API_KEY"] - API calls will fail if unset
c.base_url = "https://..." # if omitted: "https://api.clerk.dev/v1/"
c.logger = Logger.new(STDOUT) # if omitted, no logging
c.middleware_cache_store = Rails.cache # if omitted: no caching
end

You can customize each instance of the Clerk::SDK object by passing keyword arguments to the constructor:

clerk = Clerk::SDK.new(
api_key: "X",
base_url: "Y",
logger: Logger.new()
)

Refer to the Faraday documentation for details.

Environment variables

Here's a list of all environment variables the SDK uses:

Variable name Usage
CLERK_API_BASE Overrides the default API base URL: https://api.clerk.dev/v1/
CLERK_API_KEY The API key of your instance (required)
CLERK_SIGN_IN_URL Rails view helper: clerk_sign_in_url
CLERK_SIGN_IN_UP Rails view helper: clerk_sign_up_url
CLERK_USER_PROFILE_URL Rails view helper: clerk_user_profile_url

Was this helpful?

Clerk © 2022