Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

The Scripted API Client


Install via RubyGems:

gem install scripted_client

Or a Gemfile:

gem 'scripted_client'

In an initializer, set up your account organization_key and access token. For example:

# config/initializers/scripted.rb
ScriptedClient.organization_key = 'orangutan'
ScriptedClient.access_token = 'make-great-pets'

In production, make sure you set the environment to :production

ScriptedClient.env = :production

Otherwise, it will be :sandbox by default. Contact us for a Sandbox Account!

Creating a Job

First, find a JobTemplate that you'd like to use:

templates = ScriptedClient::JobTemplate.all
blog_post = templates.find { |template| == 'Standard Blog Post' }

Next, assign some values for the Prompts on that JobTemplate. Prompts are question/answer pairs that help guorganization_keye your writer. They can be one of five kinds: string[255] string[1024] radio checkbox array. The data type of the value that you post will depend on the kind of the Prompt:

Kind Value Type Has value_options?
string[255] String (max. 255 characters) No
string[1024] String (max. 1024 characters) No
radio String Yes
checkbox Array Yes
array Array No

If the prompt has value_options the value you pick has to be one of them.

Here's how you might update a couple of prompt values:

sample_blog = blog_post.prompts.find { |prompt| prompt.label == 'Sample Blog' }
sample_blog.value = ''
goal = blog_post.prompts.find { |prompt| prompt.label == 'Goal' }
goal.value = ['Informed analysis']
key_points = blog_post.prompts.find { |prompt| prompt.label == 'Key Points' }
key_points.value = ['Orangutans make great pets', 'Normal pets are lame']

Next, you can find an Industry:

industries = ScriptedClient::Industry.all
lifestyle = industries.find { |industry| == 'Lifestyle & Travel' }

Now you can create the Job!

job =
  topic: 'Top 10 Reasons to Buy an Orangutan',
  job_template: blog_post,
  industries: [lifestyle]
# => true

Protip If returns false use job.errors.full_messages to see what went wrong.

Retrieving Jobs

Get all jobs using ScriptedClient::Job.all, or be a bit more specific using any of these scopes:

screening writing draft_ready revising final_ready in_progress needs_review accepted rejected finished

For example:

jobs = ScriptedClient::Job.needs_review

There are also scopes on Pitchset: open, closed and requires_action.

If the collection has a next page:

jobs = ScriptedClient::Job.all
# => true

you can retrieve that next page using next:

jobs = ScriptedClient::Job.all
page_two =

If you'd like to review the written content itself, use the html_contents method:

job = ScriptedClient::Job.first


From within this directory, bundle install and run rspec to execute the tests. If you want to use the gem against a local version of the API, set ScriptedClient.env = :development.


HTTP client for the Scripted API, built with Ruby






No releases published


No packages published