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.

RELATED: Duh, Why Didn’t I Think Of This Amex Offers Search Trick Sooner?

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 https://global.americanexpress.com/offers/eligible (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");
offerButtons[index].click();
// Wait 2seconds to be nice to AMEX servers
await new Promise(r => setTimeout(r, 2000));
}

Update: Some accounts have Amex Offers that have “Activate Offer” buttons instead of “Add to Card”. For those account you need to change up the code bit. It would be:

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

Conclusion

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.

DDGhttp://dannydealguru.com
Based in NYC. Points/miles enthusiast for years and actively writing about it for the last 6+ 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

22 COMMENTS

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.

22 COMMENTS

  1. Is there a way to get to offers without creating a online account with American Express? Are events only posted online now?

  2. Where do you paste the information? I can’t see a place where I can paste the text. In case it’s not obvious, I’m not a programmer. I assumed this was easy since the article says it is but maybe those of us who aren’t techies shouldn’t mess with it?

    • Oh, I see what the issue might be. Some accounts now show “Activate Offer” buttons instead of “Add to Card”.

      So in the third line you would need to replace “Add to Card” with “Activate Offer”, to match whatever the text on the buttons is.

      Hopefully that helps.

      • Thanks, I’ll give it a try next time. Oops, I don’t know why I thought Ryan posted this one when you post like 50% of the content here. I’m looking at you Shawn ……

          • Update: I edited the script as suggested and it worked. So, thanks!

            I might update the post, though. I’m not super-tech savvy, but comfortable at this level. However, if P2 was trying to do this she’d just give up after one try.

            You could try to get that FM job and then ask Shawn for a counter offer 🙂

  3. The list is available whenever I log onto my my Amex account. Too many offers are items and services I find not useful. Currently, there are 3 clicks on my list.

  4. 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.

  5. 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.

  6. 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

  7. 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));
    }

LEAVE A REPLY

Please enter your comment!
Please enter your name here

7,703FansLike
15,951FollowersFollow
24,100SubscribersSubscribe

RebatesMe - $40 Bonus!

Super easy bonus! Sign-up and they'll pay you $40 after your earn $10 cashback. That's it!
Grab Your RebatesMe Bonus!

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!
BoardingArea

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!