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


Yet another Ruby interface to Prowl with command line utility


gem install prowly

Usage as a Gem

Sending a notification via prowly gem

Prowly.notify do |n| # :notify is an alias of :add n.apikey = “apikey” or n.apikeys = [“apikey_1”, “apikey_2”, “apikey_n”] n.priority = Prowly::Notification::Priority::MODERATE n.application = “Prowly” n.event = “Notification” n.description = “Your server is under attack!!!” n.url = “” end notification = => “apikey”, :application => “Prowly”, :description => “Testing…”) notification = => [“apikey_1”, “apikey_2”, “apikey_n”], :application => “Prowly”, :description => “Testing…”) result = Prowly.notify(notification)

Obtaining a user’s API key with the prowly gem is a three step process:

  • provider gets a token with their provider key via the retrieve_token call

  • user approves the request at a special web URL (in their browser)

  • provider gets user’s API key with their provider key and the token via retrieve_apikey

This is somewhat similar to the OAuth scheme.

# obtain a token first with your provider key first
provider_key = "2b33d3f3f8522aaed4b2fc44382f1519791db6a2"
token_result = Prowly.retrieve_token(provider_key)
if token_result.succeeded?
  # if the call succeeded, the user will need to approve the request in their browser
  puts "go to this #{token_result.url} to approve this request"
  puts "then press <ENTER> to continue "
  dummy = STDIN.gets

  apikey_result = Prowly.retrieve_apikey(options[:provider], token_result.token)

  if apikey_result.succeeded?
    puts "The user apikey is #{apikey_result.apikey}"

Usage in the command line

$prowly -h # help $prowly -k one_apikey -a “the application” -e “the event” -d “the description” -p NORMAL $prowly -k key_1,key_2,key_n -a “the application” -e “the event” Options: -k, –api-key APIKEY Prowl API Key -d, –description DESCRIPTION Description -e, –event EVENT Event -p, –priority PRIORITY VERY_LOW, MODERATE, NORMAL (default), HIGH, EMERGENCY -u, –url URL for redirect (v1.2 feature) -v, –version Print the version number and exit

If you only specify the apikey prowly will use the defaults:

:description => “I am testing Prowly, and it works!” :event => “Prowly notification” :application => “Prowly” :priority => NORMAL :url => nil

Handling the Prowl API response

ON SUCCESS result.status # => “success” result.code # => “200”

if result.succeeded? result.remaining # => “977” result.resetdate # => “1266272588” else result.message # => end ON ERROR result.status # => “error” result.code # => “401” <= This depends on the error code sent by the prowl API

if result.succeeded? result.remaining # => result.resetdate # => else result.message # => “Invalid API Key(s)” <= This depends on the message sent by the prowl API end

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

See LICENSE for details


Yet another Ruby interface to Prowl







No packages published

Contributors 4