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

[SHUT DOWN] Unofficial Advanced AC Reward Search Tool (cowtool)

Wikipost is Locked  
Old Jul 19, 2021, 9:34 pm
FlyerTalk Forums Expert How-Tos and Guides
Last edit by: Adam Smith
SADLY, AS OF OCTOBER 5, THIS TOOL HAS BEEN SHUT DOWN INDEFINITELY AND LIKELY PERMANENTLY, AS DESCRIBED IN THIS POST.

Other cowtools remain available at cowtool.com

ACCESS RULES ARE CLEARLY DESCRIBED BELOW. READ THEM. DO NOT POST OR PM ADAM SMITH ABOUT ACCESS, OR YOU WILL BE BANNED FROM EVER GETTING ACCESS TO THE TOOL.


[PSA from forum moderator Adam Smith: since it doesn't seem obvious to everyone, please note that the cowtool was created by cowtool. He has invested hundreds of hours in creating this very useful tool and making it available to the FT community. I, Adam Smith, have had nothing to do with creation of the cowtool. I can do nothing to get you access to the cowtool. Please do not ask me to give you access - I can't and won't, and will suggest that you be blocked from the tool for this waste of time, and lack of appreciation for cowtool's efforts, as described in more detail in this post. Also note that, other than this section and a clearly indicated moderator note below, the author of this wiki, writing in first person, is canadiancow, on behalf of [cowtool].


Please do not PM other Flyertalk users to try and gain access to cowtool, for the same reasons Adam's laid out above. - YOWgary

https://acrewardsearcher.cowtool.com/

Due to abuse, you must now first register (see https://www.cowtool.com, and read 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 cowtool.

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.

YOU DO NOT NEED TO INCLUDE ANYTHING IN THE PM OTHER THAN YOUR EMAIL ADDRESS. The PM interface shows me your posts and join date. A lot of people have explicitly included that information. It's unnecessary. I also don't need a paragraph of text, whether it's a please to bend the rules, or immense thanks. My life is immensely easier if the subject is "cowtool access" and the message is "[email protected]". I don't read the messages anyway.

However, 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 without meeting the requirements, you will be blocked from ever getting access. 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, offering to pay for access, or asking for the access rules to be changed. Those posts will be deleted.

I do not process PMs instantly. My goal is at least once per week, so it may take a few days.

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

Alerts
Basic price alerts were currently in available to all registered users. They have been turned off due to high load, until the system can be re-written to accommodate them.
Full search/availability alerts are in early 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).

If you have at least 2500 FT posts and would like access to the price alert 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.

* 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 alerting by brand
  • Finish and release alerts
  • "Copy into round-trip alert" instead of "merge into" in case you want both
  • Option to launch AC.com in new tab should be saved to your account
  • Show more information about stops, such as the time
  • 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
  • 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
  • Cities/Aircraft/Airlines should allow an OR condition in addition to the default/current AND


Bugs:
  • Annoying error dialog pops up far too regularly related to JS/Cognito crap
Print Wikipost

[SHUT DOWN] Unofficial Advanced AC Reward Search Tool (cowtool)

Old May 22, 2021, 1:50 am
  #61  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, BA Gold, SQ Silver, Bonvoy Tit LTG, Hyatt Glob, HH Diamond
Posts: 44,519
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, 2021, 9:23 am
  #62  
 
Join Date: Dec 2011
Location: YYZ
Programs: AC SEMM / HH Diamond
Posts: 3,194
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, 2021, 9:30 am
  #63  
 
Join Date: Dec 2011
Location: YYZ
Programs: AC SEMM / HH Diamond
Posts: 3,194
Originally Posted by canadiancow
"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
canopus27 is offline  
Old May 22, 2021, 9:38 am
  #64  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, BA Gold, SQ Silver, Bonvoy Tit LTG, Hyatt Glob, HH Diamond
Posts: 44,519
Originally Posted by canopus27
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, 2021, 3:24 pm
  #65  
 
Join Date: Oct 2013
Location: YOW
Programs: AC SE, FOTSG Platinum
Posts: 5,811
Originally Posted by canadiancow
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.
YOWgary is offline  
Old May 22, 2021, 8:30 pm
  #66  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, BA Gold, SQ Silver, Bonvoy Tit LTG, Hyatt Glob, HH Diamond
Posts: 44,519
I fixed the 200.

200 means I royally screwed something up.
canadiancow is online now  
Old May 22, 2021, 10:59 pm
  #67  
 
Join Date: Apr 2017
Location: CYVR
Programs: AC
Posts: 8
Originally Posted by canadiancow
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, 2021, 10:50 am
  #68  
 
Join Date: Dec 2011
Location: YYZ
Programs: AC SEMM / HH Diamond
Posts: 3,194
Originally Posted by canadiancow
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, 2021, 3:35 pm
  #69  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, BA Gold, SQ Silver, Bonvoy Tit LTG, Hyatt Glob, HH Diamond
Posts: 44,519
Originally Posted by canopus27
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.
canadiancow is online now  
Old Jun 4, 2021, 10: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
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.
aeroman380 is offline  
Old Jun 6, 2021, 9:50 am
  #71  
 
Join Date: May 2001
Location: YVR
Programs: AC SEMM
Posts: 2,075
Very useful tool for looking at unusual routings - and very fast! Thank you for putting this together and all the improvements.
Argonaut1000 is offline  
Old Jun 6, 2021, 3:24 pm
  #72  
 
Join Date: May 2021
Location: DFW
Programs: JMB Sappire; Hertz PC; National EE
Posts: 22
Just noticed the addition of a direct link to AC's search engine, nice touch! Much appreciated
JackToTheAttack is offline  
Old Jun 6, 2021, 10: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
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)

Last edited by thedoraemon; Jun 6, 2021 at 10:28 pm
thedoraemon is offline  
Old Jun 6, 2021, 10:43 pm
  #74  
A FlyerTalk Posting Legend
Original Poster
 
Join Date: Sep 2012
Location: SFO
Programs: AC SE MM, BA Gold, SQ Silver, Bonvoy Tit LTG, Hyatt Glob, HH Diamond
Posts: 44,519
Originally Posted by thedoraemon
  • 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 6, 2021 at 11:06 pm Reason: Merge consecutive posts by same user
canadiancow is online now  
Old Jun 8, 2021, 4:09 pm
  #75  
 
Join Date: Mar 2007
Posts: 4,785
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

Contact Us - Manage Preferences - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

This site is owned, operated, and maintained by MH Sub I, LLC dba Internet Brands. Copyright © 2024 MH Sub I, LLC dba Internet Brands. All rights reserved. Designated trademarks are the property of their respective owners.