Amex (view on

Welcome to the last continuation of my Ruby-based assault on various online banking systems, much like my Lloyds TSB screen scraper.

However, this one doesn't rely on nasty screen-scraping. Instead, it uses the previous unknown internal API used by American Express for their "Amex UK" iPhone app. I suspect it works elsewhere, but I haven't tested.

This allows you to fetch the details of all the cards on your American Express login, as well as transactions on each card.

See for a changelog.


The file example.rb provides a very simple example of how the code works, but here's a step by step:

  1. Ensure the gem is installed, and then include it in your Ruby file, or in your Gemfile where appropriate:
$ gem install amex
require 'rubygems'
require 'amex'
  1. You'll just need two variables, @username and @password, each unsurprisingly corresponding to different authentication details used
@username = "chuck_norris"
@password = "roundhousekick123"
  1. Instantiate a new instance of the Amex::Client object, passing in the username and password - this is used to perform the authentication required.

client =, @password)

  1. Call the account method of the object you just made - it'll take a few seconds, and will return an Amex::CardAccount object. There'll only be one, since this only supports one card at a time right now.
accounts = client.accounts
 = accounts.first
puts .product
puts .type
puts .transactions.inspect


You can view the full YARD documentation here.


  • amex_alerts, a script designed to be run as a cron which tracks and alerts you on your rewards balances


Use this for what you will, as long as it isn't evil. If you make any changes or cool improvements, please let me know at [email protected].