This Cool Trick Lets You Add All Amex Offers at Once

This post may contain affiliate links; please read our advertiser disclosure for more information.

Add All Amex Offers

This Cool Trick Lets You Add All Amex Offers at Once

Amex Offers are a great perk for American Express cardholders. They have lost some value since limitations were placed but you can still use the points version and statement credit version of the same offer.

We see new Amex Offers almost everyday, and we often write about some of the most popular ones here on the site. With all those offers it’s not rare to sometimes have more than 100 offers available on a specific card. That makes it difficult to see what new offers come out. I usually get around that by adding every useless offer I see to a card that I never use. However, offers still accumulate if I don’t check my account for a few days.

Adding multiple Amex Offers to a card is not an easy feat. You can to manually click “Add to Card” for every offer, and it takes a few seconds for every signal offer. So if you want to add all the offers to your card is a painfully long process. I guess American Express could just add an “Add All Offers” button, but that would be way to easy.

Add All Amex Offers

Thankfully there’s a way to automate this process with a short script that redditor  blamsonyo has created. This is how it works:

  1. Load (log in)
  2. Open JS Console (Press F12 on your keyboard)
  3. Paste code below into console and hit enter
  4. Wait a few minutes, until all “Add Offer” buttons are clicked.
  5. Reload the page and redo step 3 if necessary (if more offers are available)

This is the code:

// Find all the "Add to Card" buttons on the page
var offerButtons = Array.from(document.getElementsByClassName("btn btn-sm btn-fluid offer-cta btn-secondary")).filter(btn => btn.title == "Add to Card");
var index;
for (index = 0; index < offerButtons.length; ++index) {
console.log("Clicking offer button");
// Wait 2seconds to be nice to AMEX servers
await new Promise(r => setTimeout(r, 2000));


This process is quick and easy. You can run the script in seconds, and then you just wait until all the offers are added. if you have more than 100 offers, not all of them will show up in the list, so you will need to run the script a second time.

Just makes sure to first add any specific offers that you might want on specific cards. For example a Delta Amex Offer, you might want to add it to a Delta card. Once you add an offer to one card, it usually disappears from your other Amex cards.

Based in NYC. Points/miles enthusiast for years and actively writing about it for the last two years at Danny the Deal Guru. I'm always looking out for deals. Making a few bucks is always nice, but the traveling is by far the best part of this business.

More Like This


Responses are not provided or commissioned by the bank advertiser. Responses have not been reviewed, approved or otherwise endorsed by the bank advertiser. It is not the bank advertiser's responsibility to ensure all posts and/or questions are answered.


  1. The downside of this cool trick is that it wrecks Amex Offers for everyone else. A finite number of people can enrolling for any given Amex Offer. Say you enroll for all the Amex Offers, but only ever use a few. You’ve used up entitlement that someone else might have wanted to use. Gotten in the way of a customer that the company making the offer wanted to reach.

  2. Doesn’t this just move the problem to your other pocket? I can see looking at a short list for good new offers but isn’t scrolling through all the added ones to remember the ones you wanted to use a pain? Or did I miss something? Making the ones you could care less about disappear forever would be great.

  3. good stuff ! would be nice to do the same to see all offers added to account. and also scan offer for specific text
    but that’s just academic, if all added you dont have to worry about missing anything

  4. This code is little broken as written, as is, the browser will think the await is part of the comment.

    // Find all the “Add to Card” buttons on the page
    var offerButtons = Array.from(document.getElementsByClassName(“btn btn-sm btn-fluid offer-cta btn-secondary”)).filter(btn => btn.title == “Add to Card”);
    var index;
    for (index = 0; index setTimeout(r, 2000));


Please enter your comment!
Please enter your name here


SoFi Money $50 Bonus!

Super easy bonus! Sign-up and deposit $500 or more and they'll pay you $50! That's it!
Grab Your $50 SoFi Bonus Now!

Webull - 2 Free Stocks!

Brokerage app Webull is offering 2 Free Stocks! Just open an account and fund with $100 to get your stocks valued up to $1600! Super easy!
Grab your 2 free stocks now!

Subscribe To Our Newsletter

Join thousands of MtM readers who are subscribed to receive a once daily email with all of our posts. Never miss out!

You have Successfully Subscribed!