Ryan.9387:

Would it be allowed to use the TP’s API to place buy orders for certain items in order to reduce the time spent through the TP’s native interface.

My idea would be to have a file of item codes and quantities, which I would run a script on that would place an order for all of the items. This would be automated only in the sense that I would be working outside of the gw2 client, as the script would only run on command, to buy items I specifically choose.

DarkSpirit.7046:

Would it be allowed to use the TP’s API to place buy orders for certain items in order to reduce the time spent through the TP’s native interface.

My idea would be to have a file of item codes and quantities, which I would run a script on that would place an order for all of the items. This would be automated only in the sense that I would be working outside of the gw2 client, as the script would only run on command, to buy items I specifically choose.

Unfortunately, the TP api is still not an official api. You need a game client session key to initiate a buy order. The question is, how would you obtain this session key?

One way to get it is to scan the GW2 process memory but that may or may not be violating the terms of service. Alternatively, you can use fiddler to get this session key and update your script with the key every time you need to run your script. The latter method would be a safer option in terms of violating any terms of service as you are not scanning the process memory of the game client.

multivira.7925:

You can also look into the sqlite file stored in the gw2cache cookies folder. Dunno how you’d rank that, but seems quite harmless.

DarkSpirit.7046:

If you are looking into more complex solutions, than simply looking it up in fiddler, like scanning the process memory or checking the cookies cache, then I would advise you to not choose your method simply so as to “circumvent” any implied wordings in the terms of service.

We have asked ArenaNet many times before on whether they are alright with us obtaining the session key from the game client process memory, but they have not given us a reply. I believe that if they are really against it, they would have expressively said so.

Having said that, the choice of methods is ultimately yours.

Ryan.9387:

I got the session code and charid from fiddler. What my python file does is take the session code and char id from a text file. (I’ll just update the text file whenever I use the python code).

I’ve tested it and have managed to buy two mithril ore, but I don’t want go much further without assurance that this is not a bannable action.

Healix.5819:

Obtaining the session key has basically been ok’d, though not directly. They allowed gw2spidy to do it and even advertised them during one of the AMAs, so they can’t be against it. That is what they want after all, the community to build things. They’d probably like it if someone rebuilt the entire trading post (website) with the functionality people request, since it is possible.

If the extended experience still existed, there’d probably be a trading post app for phones, since it would be such an easy thing to do. It’s actually possible to make such an app currently, but it’s not user friendly due to the setup required. If they added a few more APIs (authentication, inventory listing and pickup), it would be easily possible.

If using their API to place buy orders or using the API in general was not ok, I’m sure they would have mass banned and blocked it by now. It’d be fairly easy to detect, at least for those not using the expected headers. They should give an official response considering it’s their resource, though I doubt they will unless the TP API is made official.

Clark Skinner.4902:

People are already automatically outbidding on the TP. Anet knows and isn’t doing anything about it. So go ahead and cheat.

DarkSpirit.7046:

People are already automatically outbidding on the TP. Anet knows and isn’t doing anything about it. So go ahead and cheat.

I suppose people are using apps like Zicore’s Notifier to get a notification whenever someone outbids them.

I don’t understand why others would think that outbidding someone else should be done stealthily. Even in real world auctions, you know immediately whenever someone outbids you so that you would have a choice to up your bid or not. Knowing that someone has outbid you is not cheating, it should be by design!

You can get a notification whenever someone outbids you without even needing the game session key. In fact, you don’t even need to call any API on the TP, you can just call the gw2spidy api periodically on your app to do that. Or you can even check prices manually if you have lots of time and patience.

Clark Skinner.4902:

Spidy refreshes every 15-30 mins. And it’s the autobidders that are cheating. People are doing it 24/7. A minute or so after they are outbid, their old bid is removed and a new one is replaced. There are one or two bots dominating areas of the market that others can’t come close to competing with. It is automating in-game actions, getting an advantage over other players by doing things that take time with the slow UI, and can be done at the same time as doing other in-game activities. It’s solid cheating and it’s being completely ignored by Anet, unless it’s them doing it.

DarkSpirit.7046:

Spidy refreshes every 15-30 mins. And it’s the autobidders that are cheating. People are doing it 24/7. A minute or so after they are outbid, their old bid is removed and a new one is replaced. There are one or two bots dominating areas of the market that others can’t come close to competing with. It is automating in-game actions, getting an advantage over other players by doing things that take time with the slow UI, and can be done at the same time as doing other in-game activities. It’s solid cheating and it’s being completely ignored by Anet, unless it’s them doing it.

So you are saying that having a high refresh latency makes it ok? Actually item data is only cached on the server side up to 3 minutes.

What makes you so sure that your bidding competitors are botting? It could have been possible that they are merely standing next to the TP NPC and checking for bids manually.

What you said about bots performing transactions much faster than the UI isn’t quite possible right now. With the implementation of flood control on the TP server, even clients that use the TP api can’t perform transactions any much faster than the in-game UI. Apps are now forced to slow down their interactions with the TP, otherwise they would get an error from the TP.

Ryan.9387:

I would imagine it being ok only when the player triggers the buying. It should be fine for a player to buy a list of items off the tp, but not fine for the list to auto update without player intervention.

I merely consider the tp api a time saving tool in that I can post a large number of orders, or check my sell orders without having to spend hours typing into the tp. I would never have a program auto bid for me without making me pull the trigger for every purchase.

If it turns out that this kind of usage of the API is not allowed than I’ll immediately stop. Otherwise, I’ll continue using the API as I described to reduce the time I spend posting buy orders and checking my sell orders.

DarkSpirit.7046:

Having a program to data mine and recommend items is one of the most useful aspect of a good TP app, even more useful than features like auto outbidding (annoying as it is). I have earned hundreds of gold having my apps detect opportunities for me on the TP and I don’t even need an in-game session key to do that. Those kinds of feature, of monitoring and detecting opportunities, are many times more useful to me than any auto outbidding functionality can ever be.

Here is my TP tip: outbidding simply trims your profit. If you are patient and confident, you don’t need to always be the top bidder to maximize profit.

Clark Skinner.4902:

I was saying that spidy’s slow updates prevent a real person from competing with bots.

I know for sure they are botting, but won’t say how I know since it can only give people ideas.

How can you know about bidding flood control unless you’re doing it?

I have witnessed bids being posted insanely fast, with help of others. This is a clear advantage over players who are using in-game means. Just getting from the main TP page to the item’s buy order page takes time. 3rd party programs skip this, and the player can keep playing while it happens. It’s like running 2 accounts at once. Whether the real player is in combat and teh app is trading, or the player is trading while the app handles combat, it is still against the rules. Using apps to automate in-game activities better than real players can. It also blocks others from using the buy orders for those items because they are dominated by bots.

And if every item had auto-outbidding, your program to recommend good deals would be useless because a bot would make sure it ALWAYS had the highest bid. You’d only be able to work with items already for sale.

DarkSpirit.7046:

How can you know about bidding flood control unless you’re doing it?

It is not a bidding flood control, it is a TP access flood control. In other words, any kind of TP access (even querying for an item) is subjected to flood control and can’t be performed too quickly after another.

Personally, I don’t think automated buying/bidding is to be feared because they are unlikely to be profitable in the long run due to the dynamic nature of our TP. Furthermore, if you think that they are bots, you are free to test and attempt to outwit their limited and predictable AI. Every time a bidding bot outbids you, it loses profit. It would be too easy for humans to sabotage it especially if its human owner is not monitoring it. For example, does it recognize a break-even bidding price or would it bid all the way to the losing end? Does this break-even price change with market conditions? Does this break-even price have a buffer? Use it to manipulate the market since it always need to be the highest bidder? There are just too many things to consider to leave all the important decisions of buying/selling to a bot. Having the highest bid just means you are prepared to be the biggest loser in terms of profit.

Ryan.9387:

I was saying that spidy’s slow updates prevent a real person from competing with bots.

I know for sure they are botting, but won’t say how I know since it can only give people ideas.

How can you know about bidding flood control unless you’re doing it?

I can guarantee you that people have created bots that monitor and auto update buy orders in game. I don’t do that myself. I give my program a list of items, and it buys them. All I avoid is having to type the individual names into the TP window.

The TP only lets you conduct an action every 1.5s or so from what I see with my own program. I could try to have multiple URL requests sent simultaneously, but I don’t have the need for that speed.

I could also create a program to monitor the time it takes for me to be over cut to prove that extreme botting exists, but the time spent confirming something I am 99% sure of is better used elsewhere.

While the bots do run on the TP, it is quite possible to combat them. Whenever a bot cancels an order to place a new one, the money isn’t available for investment until it is “picked up.” If you can drain a bot’s cash supply through rapid buy orders and cancels, you can then shut it off until the operator pulls the money from the TP. (assuming the client itself isn’t hacked, in which case anet is much more likely to ban)

While I could easily create a program to auto update my buy/sell orders I don’t consider that fair at all. I DO consider it fair to use a program to speed up actions while I am at the game. I think it is perfectly fine to give my program a list of items from gw2spidy such as

ID Name Count Price
24272 Pile of Glittering Dust x x
24273 Pile of Shimmering Dust
24274 Pile of Radiant Dust
24275 Pile of Luminous Dust
24276 Pile of Incandescent Dust
24277 Pile of Crystalline Dust
24278 Tiny Venom Sac

and to have the program buy them for me while I am logged on in game, and using the TP. I’m quite aware that this is a VERY grey area of the TP and is hovering tight on the border between allowed/disallowed usage of the API. That is the reason I’ve made this thread, because I really would like to know what the usage limits of the API are.

The functions that I’m making use of are the exact same ones that allow gw2spidy to exist. The issue is at what point does the good usage change into bad and bad into ban. If this is allowed then the market will adjust for everyone to make use of it. If not, then it will become clear to people like myself who are confused over where to draw the line.

DarkSpirit.7046:

The issue is at what point does the good usage change into bad and bad into ban. If this is allowed then the market will adjust for everyone to make use of it. If not, then it will become clear to people like myself who are confused over where to draw the line.

Many of us have asked that same question but we have no clear replies from ArenaNet. Personally I am also unhappy with the state of the unofficial TP api and I really wish ArenaNet would release an official supported version soon so that such concerns would be addressed.

Leighwyn McClendon.9346:

While you are probably not going to get an official reply to this question, it still sounded like you were asking for others’ opinions so I’ll offer up my own.

I’ll first start with the assumption that the other grey area of unofficial TP API usage, pulling data [no in-game session ID required], is OK to use. What type of benefit does this use afford? It gives the user information, allowing for better decision making in terms of what to possibly flip, or craft, for profit. It enables this by giving you the information quickly, and in a digital format easily manipulated and worked with.

Without any other tools, if you wanted to act on that information then you would need to go in-game and “go through the motions” of searching for items, doing some clicks, typing in some numbers, and placing the orders. If you wanted more than 250, you would have to repeatedly type in the same numbers and place multiple orders.

That type of “pull info” usage and “more information to make a profit, if you act on it” benefit sounds similar to the official events API. It would be very time consuming to know the state of every event in the game on all servers, but by using the official API you can quickly pull that information and process it usefully and for a financial gain – but only if you go in-game, travel to the area of the event, and participate in its success. See the parallel?

If we now venture into the area of your question, it feels a lot different to me and doesn’t really pass the squint test. You are still automating the information PULL, but you are now also automating the actionable half of the process as well by having a program placing the orders. The advantage grows from a vetted-by-official-example one of having more information at your disposal, to a blacker area of being quicker at in-game actions.

Conclusion and tl/dr: I wouldn’t personally be doing it, because it feels bannable to me if ANet decided one day to act on it.

And full disclosure: I have my own tool similar to DarkSpirit’s, which just collects and operates on the price/qty data to let me know what to focus on. The only thing I have it do to save time is copy item names to clipboard so that i can paste in-game rather than type.

DarkSpirit.7046:

The advantage grows from a vetted-by-official-example one of having more information at your disposal, to a blacker area of being quicker at in-game actions.

Like I have said, I still have doubts it is going to be any much quicker than a guy checking prices manually, due to the strict TP access flood control that they have incorporated. But you can also argue that having a program check the prices for you makes it more convenient as you can be playing the game while it checks.

To that I would say that an app using their API has to be good for something, like providing convenience, otherwise there would be no value to creating the app and by extension, no value to releasing and maintaining the API that the app uses. The fact that ArenaNet is releasing a set of official API, like the events api that you mentioned, already shows that they intend to provide value to third party apps that use their API. That value, in this case, would have to come in the form of providing useful information that are not available from the game client itself.

Sure, there would always be people who would complain about fairness, but this is the grey line that ArenaNet has prepared to draw by releasing an official API. People need to recognize that.

Clark Skinner.4902:

I have outsmarted a bot here and there, but it is a lot of effort and risk for a very short-term reprieve. There are more than one bot out there, so the item will get outbid no matter what. And they do have caps as to how high they will go. But I put myself at risk making these high buy orders to get the bot to top them. And the higher the order, the more likely it is to be filled quickly. So even if I do get the bot up there, the order gets filled and the price drops back down.

Anet would totally give us an answer if they were able to enforce it by now. It is hard for them to notice, and prove that a player is botting. Even then, it’s hard to get them to act. So they could say “No it’s not allowed” but get people complaining that people are breaking rules and anet would have to do work to please them. Or they could say “yes it’s allowed” and have the TP wrecked by a huge influx of players running automated programs, becoming Bot Wars. The option that causes them the least grief is to not reply and hope people don’t do this kind of activity, at least until they find a way to control it better.

DarkSpirit.7046:

Another thing that I would avoid, and that I see where this thread is heading, is to link exposed apis with bots which gives a connotation that exposing any kind of API is bad or “evil”.

1. Bots do not need any kind of exposed API to work. Many bot infested games do not even have a single publicly exposed API. Bots have been around in GW2 long before the release of any official API. Even if ArenaNet expose an API that doesn’t necessarily imply that bot authors would all be flocking to use it either, since they have been doing just as well without it.

2. Complaining against an exposed API would just hurt legit third party apps/website who use said API more than any bots. Since legit app writers are legally bound to not hack the game client, they are compelled to use exposed APIs and thus their apps/website are truly dependent on them. Bots, on the other hand, are not legally bound (i.e. they have chosen to ignore their Terms of Service anyway) to not hack the game client, and therefore, not dependent on any exposed APIs.

That said, the job of ensuring the game to be as bot-free as possible falls under ArenaNet’s responsibility, regardless of whether said bots use the exposed APIs or not. Since ArenaNet has already decided to release official APIs to their game, I still trust that they would be able to keep the game as bot-free as they can, without jeopardizing legit third party apps.