Go Back  FlyerTalk Forums > Miles&Points > Airlines and Mileage Programs > Air Canada | Aeroplan
Reload this Page >

Unofficial Advanced AC Reward Search Tool with Calendar (aka cowtool)

Old Jul 19, 21, 10:34 pm
FlyerTalk Forums Expert How-Tos and Guides
Last edit by: Adam Smith
https://acrewardsearcher.cowtool.com/

Due to abuse, you must now first register (see link at top the rest of this wiki) and sign in to use it. All access is logged (not what you're searching, but the complexity of the searches, and the number of searches). Abusers will be throttled or terminated. Continued abuse will lead to a more involved registration process, up to and including personal vetting by canadiancow.

Access to this cowtool for new users is temporarily disabled due to anticipated ("I'm going to make a big blog post") publicity and actual increases in usage. This is not free for me, and I am concerned what will happen if all the US major blogs pick it up.

If anyone "new" needs an account here, as long as you have 25 posts and your account is at least 3 months old, please register for a cowtool account, and then PM me (please include your email address) and I'll set you up with reward search access. And I will read your posts, so don't spam FT with crap please. If you have a genuine interest in travel, points, and so on, it really isn't hard to make 25 contributive posts to FlyerTalk and be eligible for access. If you do not meet this threshold, I am not making an exception for you. Not because you live in SFO like me, not because you're really excited, and not because of any personal issues. In fact, if you PM me with 15 posts, and I ignore it, and then you PM me with 30 posts a few weeks later, don't expect a response. Moderator note: the rules for access are very clear. Please don't post in this thread, or anywhere else, asking how you can get access. Those posts will be deleted.

Additionally, any Prince of Travel Platinum or Royal Platinum members may contact me over POT Discord for access.

Alerts
Basic price alerts are currently in available to all registered users. Full search/availability alerts are in...alpha.
Each account is limited to 4 alerts* for now.

A price alert is set on a specific itinerary that includes AC metal (this may be expanded as we begin to see EK dynamic pricing). The general idea is that you making a booking at price X, set an alert, and then if the price drops, you'll get an email, and can rebook the itinerary at a lower price and cancel the old, more expensive, booking. This really only works well if you're SE or booked a fare with no cancellation fee. All results with AC flights will show a "Price alert" link on the right. Clicking this will add one. You can view all your alerts in the alerts section, where you can delete them, or select two one-way alerts to merge into a round-trip alert, which will determine the current round-trip price and reset the alert level (since round-trip pricing is not the sum of the two one-ways).

The following is crossed out pending a potential opening of availability alerts, which would likely have similar restrictions.
If you have at least 2500 FT posts and would like access to the beta, send me a PM including the email you used to sign up for cowtool. There are currently no exceptions on the post count restriction. I am trying to slowly roll this out, and need an easy way to expand access, ideally to people who have contributed to FT a lot. The threshold will be decreased over time.

* Due to the fact that a round-trip alert requires making and then merging two alerts, the technical limit is 5, but I'm advertising it as 4.

Having Trouble? Hold "shift" and click the refresh button.

Feature Requests:
  • Allowing filtering/alerting by brand
  • Option to launch AC.com in new tab should be saved to your account
  • Show more information about stops, such as the time
  • Finish and release alerts
  • "Copy into round-trip alert" instead of "merge into" in case you want both
  • Save filters to profile
  • Historical prices
  • Colored background gradiated by %age of mixed cabin. Solid green if 100%, fading to white as percentage drops...
  • Option to enable a priority reward discount
  • Populate filter checkboxes from deep links
  • Lie-flat filter (maybe with lie-flat % filter as well?) - Unsure if this data is easily accessible
  • +/- 1 or 2 days dropdown if entering a single value for date at top, grayed out if entering more than one date or range
  • filter option to set latest arrival date & time (cow likes this)

Bugs:
  • Reset password doesn't seem to work (though this has definitely gotten much better - if I made an account for you manually right after I started doing that, it may not work because I didn't understand the limitations, so I can help with that on one-off cases... it should work if it's a more recent creation)
Print Wikipost

Unofficial Advanced AC Reward Search Tool with Calendar (aka cowtool)

Old May 22, 21, 2:50 am
  #61  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, UA Gold, Bonvoy Tit LT Sil, Hyatt Glob, HH Diamond, Accor Silver
Posts: 41,063
It's not interesting if my tool is actually returning an error. It means nothing other than no results could be obtained due to an unforeseen issue.
canadiancow is online now  
Old May 22, 21, 10:23 am
  #62  
 
Join Date: Dec 2011
Location: YYZ
Programs: AC*S100K ACMM / HH Diamond
Posts: 2,824
Not critical, but when you get a chance .... you already have a optional "Max price per person in points" ... could you also add a "Min percentage in desired cabin" option? When I'm sorting by price (for example), it's annoying when the "2% in desired cabin" flight combinations float to the top. Giving me the ability to exclude flight combinations below a cabin percentage of my choosing, would be great.
canopus27 is offline  
Old May 22, 21, 10:30 am
  #63  
 
Join Date: Dec 2011
Location: YYZ
Programs: AC*S100K ACMM / HH Diamond
Posts: 2,824
Originally Posted by canadiancow View Post
"error 200" is not something I ever thought I'd hear. "200" literally means "OK". So I'm going to need to look into that when I get on a flight with power (laptop is dead and phone is at 21%).
Just to give you one more sample:

Searching YYZ-LHR on 2021-10-20
--> Error searching (200)
Done searching
canadiancow likes this.
canopus27 is offline  
Old May 22, 21, 10:38 am
  #64  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, UA Gold, Bonvoy Tit LT Sil, Hyatt Glob, HH Diamond, Accor Silver
Posts: 41,063
Originally Posted by canopus27 View Post
Not critical, but when you get a chance .... you already have a optional "Max price per person in points" ... could you also add a "Min percentage in desired cabin" option? When I'm sorting by price (for example), it's annoying when the "2% in desired cabin" flight combinations float to the top. Giving me the ability to exclude flight combinations below a cabin percentage of my choosing, would be great.
Yeah, the goal is client-side filtering for everything except date, origin, and destination.

But I'm not a web dev and I was struggling with the JS. Then my vacation changed from beach resort to something more interesting, so I haven't had time to follow up.
canadiancow is online now  
Old May 22, 21, 4:24 pm
  #65  
 
Join Date: Oct 2013
Location: YOW
Programs: AC SE, FOTSG Platinum
Posts: 4,908
Originally Posted by canadiancow View Post
It's not interesting if my tool is actually returning an error. It means nothing other than no results could be obtained due to an unforeseen issue.
Not what I meant at all. I'm watching a pattern of search-engine results over time, that I'm not ready to document yet. I haven't looked at whether CowTool returns the same results as AC.com yet.
canadiancow likes this.
YOWgary is offline  
Old May 22, 21, 9:30 pm
  #66  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, UA Gold, Bonvoy Tit LT Sil, Hyatt Glob, HH Diamond, Accor Silver
Posts: 41,063
I fixed the 200.

200 means I royally screwed something up.
canadiancow is online now  
Old May 22, 21, 11:59 pm
  #67  
 
Join Date: Apr 2017
Location: CYVR
Programs: AC
Posts: 7
Originally Posted by canadiancow View Post
I fixed the 200.
Thanks for fixing this and building the tool in the first place! It looks incredibly useful.
Rubus Spectabilis is offline  
Old May 23, 21, 11:50 am
  #68  
 
Join Date: Dec 2011
Location: YYZ
Programs: AC*S100K ACMM / HH Diamond
Posts: 2,824
Originally Posted by canadiancow View Post
Yeah, the goal is client-side filtering for everything except date, origin, and destination.

But I'm not a web dev and I was struggling with the JS. Then my vacation changed from beach resort to something more interesting, so I haven't had time to follow up.
I'm not a web dev either, I only play one on FT ... but if you can give me a JSON feed, I'll see what I can knock up.
canopus27 is offline  
Old May 23, 21, 4:35 pm
  #69  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, UA Gold, Bonvoy Tit LT Sil, Hyatt Glob, HH Diamond, Accor Silver
Posts: 41,063
Originally Posted by canopus27 View Post
I'm not a web dev either, I only play one on FT ... but if you can give me a JSON feed, I'll see what I can knock up.
You may have noticed that last night, I also moved the price filtering into JS*

As of right now, there's also mixed cabin filtering in JS.

Cabins and airlines will get moved there shortly (though maybe not today).

Duration, max connections, airlines, aircraft, etc., can easily be added now that I know what I'm doing

* Thanks to doctornature for harassing me on Zoom last night. Otherwise everything would still be broken.
canopus27 and doctornature like this.
canadiancow is online now  
Old Jun 4, 21, 11:28 pm
  #70  
 
Join Date: Jan 2010
Location: YTZ, YYZ, AMS
Programs: Platinum Zirconium in Life, aeroplan, FB, Avios, IHG
Posts: 603
Originally Posted by CanadianMike View Post
This is fun. And effective. Thank you good sir!
Fun and addictive! Love the fact I can see both west and east options going from YYZ to HND for example. I see I can connect in Europe/India or direct/US/CAN to HND from YYZ.
canadiancow likes this.
aeroman380 is offline  
Old Jun 6, 21, 10:50 am
  #71  
 
Join Date: May 2001
Location: YVR
Programs: AC SEMM
Posts: 1,995
Very useful tool for looking at unusual routings - and very fast! Thank you for putting this together and all the improvements.
canadiancow likes this.
Argonaut1000 is offline  
Old Jun 6, 21, 4:24 pm
  #72  
 
Join Date: May 2021
Location: DFW
Programs: UA*Gold; Hertz PC; National EE
Posts: 15
Just noticed the addition of a direct link to AC's search engine, nice touch! Much appreciated
canadiancow likes this.
JackToTheAttack is offline  
Old Jun 6, 21, 11:20 pm
  #73  
 
Join Date: May 2014
Posts: 14
This is a great tool! I've been using KVS and UA to search for availability in the past and this is definitely easier than both.

Here are some suggestions after initial use (some have already been suggested):
  • Saved filters that persist after each search
  • Tooltips on fields: When I first used the date field, I was expecting a date picker, but it didn't appear. So I just put a random date format and the error told me what the format was supposed to be.
  • Max connection filter
Originally Posted by canadiancow View Post
Okay so I've set a hard limit of 52 origin/destination/date queries. Above that it's just not worth the effort because it will almost certainly time out. If anyone gets a timeout any more, I want to hear about it.

This number can potentially be increased if I increase the parallelism of the searching, but again, I don't want to instigate a DDoS.

And now I think I'm putting away IntelliJ for the day.
Getting some errors, not sure if it's related to the timing, Jun 7 12:25 AM ET:
  • Getting timeout on: https://api.ft.canadiancow.com/ac-re...3-31&airlines=
  • java.lang.IndexOutOfBoundsException: Index 28 out of bounds for length 28 on: https://api.ft.canadiancow.com/ac-re...3-31&airlines=
    • Stack trace:
      java.lang.IndexOutOfBoundsException: Index 28 out of bounds for length 28

      java.base/jdk.internal.util.Preconditions.outOfBounds(Unknow n Source)
      java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIn dex(Unknown Source)
      java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
      java.base/java.util.Objects.checkIndex(Unknown Source)
      java.base/java.util.ArrayList.get(Unknown Source)
      com.canadiancow.acrewardsearcher.RewardSearcher.se arch(RewardSearcher.kt:196)
      com.canadiancow.acrewardsearcher.RewardSearcherHan dler.handleRequest(RewardSearcherHandler.kt:38)
      java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo ke0(Native Method)
      java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo ke(Unknown Source)
      java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl. invoke(Unknown Source)
      java.base/java.lang.reflect.Method.invoke(Unknown Source)
      lambdainternal.EventHandlerLoader$PojoMethodReques tHandler.handleRequest(EventHandlerLoader.java:282 )
      lambdainternal.EventHandlerLoader$PojoHandlerAsStr eamHandler.handleRequest(EventHandlerLoader.java:1 99)
      lambdainternal.EventHandlerLoader$2.call(EventHand lerLoader.java:899)
      lambdainternal.AWSLambda.startRuntime(AWSLambda.ja va:257)
      lambdainternal.AWSLambda.startRuntime(AWSLambda.ja va:192)
      lambdainternal.AWSLambda.main(AWSLambda.java:187)
canadiancow likes this.

Last edited by thedoraemon; Jun 6, 21 at 11:28 pm
thedoraemon is offline  
Old Jun 6, 21, 11:43 pm
  #74  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, UA Gold, Bonvoy Tit LT Sil, Hyatt Glob, HH Diamond, Accor Silver
Posts: 41,063
Originally Posted by thedoraemon View Post
  • java.lang.IndexOutOfBoundsException: Index 28 out of bounds for length 28 on: https://api.ft.canadiancow.com/ac-re...3-31&airlines=
    • Stack trace:
      java.lang.IndexOutOfBoundsException: Index 28 out of bounds for length 28

      java.base/jdk.internal.util.Preconditions.outOfBounds(Unknow n Source)
      java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIn dex(Unknown Source)
      java.base/jdk.internal.util.Preconditions.checkIndex(Unknown Source)
      java.base/java.util.Objects.checkIndex(Unknown Source)
      java.base/java.util.ArrayList.get(Unknown Source)
      com.canadiancow.acrewardsearcher.RewardSearcher.se arch(RewardSearcher.kt:196)
      com.canadiancow.acrewardsearcher.RewardSearcherHan dler.handleRequest(RewardSearcherHandler.kt:38)
      java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo ke0(Native Method)
      java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo ke(Unknown Source)
      java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl. invoke(Unknown Source)
      java.base/java.lang.reflect.Method.invoke(Unknown Source)
      lambdainternal.EventHandlerLoader$PojoMethodReques tHandler.handleRequest(EventHandlerLoader.java:282 )
      lambdainternal.EventHandlerLoader$PojoHandlerAsStr eamHandler.handleRequest(EventHandlerLoader.java:1 99)
      lambdainternal.EventHandlerLoader$2.call(EventHand lerLoader.java:899)
      lambdainternal.AWSLambda.startRuntime(AWSLambda.ja va:257)
      lambdainternal.AWSLambda.startRuntime(AWSLambda.ja va:192)
      lambdainternal.AWSLambda.main(AWSLambda.java:187)
The rest is all reasonable and I can look into it some other time. This one... baffles me. I just re-deployed in case any of the screwing around I did on Saturday was still lingering. But I legitimately have no idea how that error could have happened.

And for the timeout, just reduce the date range. Some things I can't control

Last edited by Adam Smith; Jun 7, 21 at 12:06 am Reason: Merge consecutive posts by same user
canadiancow is online now  
Old Jun 8, 21, 5:09 pm
  #75  
 
Join Date: Mar 2007
Posts: 4,734
Thanks Cow, very well done. I've missed coming here or flying

Few ideas
1. An example text besides the textbox is easier than a moving pop-up help or even a calendar dropdown for the date field
2. Can we add a Duration filter also? obviously don't want 40+ hours flight if I can find <17 hr flights


This worked well for me, now that Taiwan people are looking to fly to USA to get vaccines :P
https://api.ft.canadiancow.com/ac-re...7-31&airlines=
jerryhung is offline  

Thread Tools
Search this Thread