How to Quickly Add All Amex Offers
American Express offers tons of Amex Offers for consumer and business credit cards. You can find a list of all the available offers here. But sometimes, if you haven’t added offers to a card in a while, you might get overwhelmed when you take a look at the account. You most likely will see 100 offers available, and that means that even more could be there since it is limited to showing just 100 at a time.
If you try adding these offers manually it will take forever, especially if you want to add all of them. Thankfully, you don’t have to sit there for five minutes just clicking “Add Offer” over and over. There are a few script that will help you automate the process. There’s also MaxRewards, which can even add an offer to multiple cards, but that’s a paid option (still worth it in my opinion). Take a look at the free scripts below.
Add All Amex Offers
There are a few options to add all Amex offers to your cards. They might seem complicated, but it’s really easy and it takes just a couple of minutes.
Option 1
There’s a new bookmarklet for Chrome that makes the process of adding Amex Offers really easy (HT: JJT):
- Right click on Bookmarks Bar, select “Add Page”
- Give the bookmark a name such as “Add all Amex Offers” for example, and then copy/paste the following URL:
btns=[…document.querySelectorAll(‘.offer-cta’)].filter(b => b.textContent === ‘Add to Card’);c=()=>{ b = btns.pop(); if (!b) return console.log(‘added all!’); b.click(); setTimeout(c, Math.random() * 1500 + 300) };c();
- Go to your Amex Offers page and click on the bookmark you just created.
Option 2
- Load https://global.americanexpress.com/offers/eligible (need to log in)
- Open JS Console (Press F12 on your keyboard)
- Paste snippet below into console and hit enter
- Wait a minute or two, until all “Add Offer” buttons are clicked.
- Reload the page and redo step 3 if necessary (if more offers are available)
And here’s the snippet 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 (Nov. 12, 2021): In some accounts now the button text on the Amex Offers says “Activate Offer” instead of “Add to Card”. So the code above would have to be changed if you have that in your Amex account.
The code would look like this:
// 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));
}
It will take about a minute, more or less, depending on how many offers you have available.
Option 3
MaxRewards helps you organise all your cards and possibly add the same offer to more than one card. You would need the paid version to do this. It use to works great, but it has been glitchy over the last few months.
CardPointers also gives you a new way to view all of the offers across all of your cards, sort and filter every one of them by value, minimum spend, category, and more, and activate just the ones you want with a single click. You can get the free Chrome extension here. (HT: DoC)
Guru’s Wrap-up
This makes the process quicker and much easier. Just makes sure you first add any specific offers that you might want on specific cards. For example a Hilton Amex Offer, you might want to add it to a Hilton card. Once you add an offer to one card, it disappears from your other Amex cards.
Credit: Source link