The easiest and first thing you should do is make sure your application
sends an unique User-Agent header with its HTTP requests. In case your
application would generate more traffic than Wikimedia are willing to
support, this will let the Operations team contact you, or (in the worst
and unlikely case) easily block your requests without affecting anyone else.
Thank you for caring about this! :)
On Sun, Dec 31, 2017 at 9:28 PM, Tal Barda <412tal412(a)gmail.com> wrote:
I hope this is the correct place to ask this question.
My name is Tal, and I'm developing my own version of the Wiki Game
<https://en.wikipedia.org/wiki/Wikipedia:Wiki_Game> (or Wiki Race, some
may say) for Android devices. There is a great multiplayer version
<https://thewikigame.com/>of it for the iPhone and Web, but I think there
should be a worthy version to the Android.
My version is still in progress, and I put a lot of effort into it,
including the gameplay experience (single-player and multiplayer) and the
I'm writing this email because I'd like to consult with some wiki experts
about one of the main things which on my mind, and it's my usage of the
Mediawiki API. I'd like to launch the game and upload it to the Play Store
in a few months, but I can't keep working on it while knowing that I might
put my efforts in danger if I will do so, because of unfair usage of the
Well, the game is based on generating two random articles: the first
article (the starting point) and the target article (the end point) which
the user should reach to using only the hyperlinks inside the articles.
The thing is, that unlike the currently exist Wiki Game
<https://thewikigame.com/> version which is played by many users together
at the same time (by joining "game rooms"), or using pre-generated
articles, - I'm generating the articles live for each user individually.
Each user can play in single-player mode and generate his own pair of
articles, his own game, a thing which is gonna keep the game infinite for
all of the players.
My generator generates two articles before each game and the user has 15
seconds to decide whether he would like to start the game or not. After the
15 seconds are up the generator is generating a new pair of articles. While
the time is running, the user may refresh the articles manually and ask to
generate a new pair.
So why am I worried about my app's usage of the API?
Well, not all of the target articles are reachable through the hyperlinks
in the mobile version of Wikipedia, because the templates view in the
mobile version is very limited and there are articles without references
from other articles, and I don't want the users to get stuck.
In order to overcome this , and make sure that the target article is
actually reachable, I need to make about 5 requests to the REST API each
articles generation (one request after another, not together). The
algorithm was made after a very long time of research by me, and I think
its efficient for the purpose.
So, I assume that the average player is gonna play about an hour in a day,
so he is gonna refresh his pair about 15 times, which are 75 requests from
the API in a given day for a user. Let's say (hopefully and hypothetically)
the game goes pretty viral - well, there are gonna be a lot of requests to
the API at the same time, and this makes me unsure about my way of action.
I don't mind sending my random articles generator code (as long it is not
copied :P ) for a review, and work together with somebody to make the game
better and fair, and I'm also willing to donate a part of the game incomes
(if there will be any) to the Wikimedia Foundation, but there is one thing
I'm not gonna do, and it's launching the game before I'm making sure I do a
fair use of the API. I know Wikipedia is taking care millions and billions
of requests everyday, and still - I can't move on without knowing
everything is fine.
This information <https://www.mediawiki.org/wiki/API:Etiquette> about the
usage limits is not very explicit, and it doesn't put the line between good
and bad, and maybe I'm using it badly. I will accept every answer
Thanks in advance,
Mediawiki-api mailing list