WikiWatcher is an API for retrieving data about the history of edits made to an article or by a user on Wikipedia. Endpoints include:
- /articleHistory/title - Requires the title of an article. By default, retrieves the 10 most recent revisions made to the article.
- startyear
- startmonth
- startday
- starthour
- startminute
- startsecond startx parameters specify a date and time which acts as a lower bound on the timestamp of retrieved revisions. Date/time parameters, if specified, must be supported by all units of time greater than themselves -
- endyear
- endmonth
- endday
- endhour
- endminute
- endsecond endx parameters specify a date and time which acts as an upper bound on the timestamp of retrieved revisions. These date/time parameters follow the same specificity rules as those in the endpoints above.
- tags tags should be a comma-separated bracket-enclosed list of strings matching wikipedia's available reviser-applied tags for revisions.
Optional parameters:
i.e. if a month is specified, a year must also be specified. If a day is specified, a month and a year must also be specified, etc.
Times are to be specified in 24-hour format, from hour 0 through 23.
If a time is before the first existing edit or after the present day, the nearest valid date/time will be used.
Single tags still require the enclosing brackets.
view a comprehensive list of available tags <a href=https://en.wikipedia.org/wiki/Special:Tags>here</a>.
<li>user - retrieve only revisions to the specified article which were created by this username.</li>
<li>keyword - retrieve only revisions whose contents contain this keyword.</li>
This filter is very resource intensive and may incur several minutes of waiting time for large requests.
<li>visualize - specify a visualization to be generated and returned as a PNG image.</li>
valid values for this argument:
<ul>
<li>revisions_per_time - plots the number of revisions per unit of time as a histogram.</li>
<li>revisions_per_user - plots the proportion of revisions made to the article per user who has made revisions as a pie chart.</li>
</ul>
</ul>
<br/>
<li>/userHistory/user - Requires the username of a wikipedia editor.</li>
By default, retrieves the 10 most recent revisions made by the user.<br/>
Optional parameters:
<ul>
<li>startyear</li>
<li>startmonth</li>
<li>startday</li>
<li>starthour</li>
<li>startminute</li>
<li>startsecond</li>
See above for an explanation of startx parameters.
These date/time parameters follow the same specificity rules as those in the endpoints above.
<li>endyear</li>
<li>endmonth</li>
<li>endday</li>
<li>endhour</li>
<li>endminute</li>
<li>endsecond</li>
See above for an explanation of endx parameters.
These date/time parameters follow the same specificity rules as those in the endpoints above.
<li>tags</li>
See above for an explanation of the tags parameter.
<li>title - retrieve only revisions created by the specified user made to this article.</li>
<li>keyword - retrieve only revisions whose contents contain this keyword.</li>
This filter is very resource intensive and may incur several minutes of waiting time for large requests.
<li>visualize - specify a visualization to be generated and returned as a PNG image.</li>
valid values for this argument:
<ul>
<li>revisions_per_time - plots the number of revisions per unit of time as a histogram.</li>
<li>revisions_per_article - plots the proportion of revisions made by the user per article that they have made revisions to as a pie chart.</li>
</ul>
</ul>
<br/>
<li>/getRevision/title - Requires the title of an article.</li>
By default, retrieves the state of the article after the most recent revision.
Optional parameters:
<ul>
<li>year</li>
<li>month</li>
<li>day</li>
<li>hour</li>
<li>minute</li>
<li>second</li>
</ul>
These parameters specify that the API should retrieve the state of the article at this date/time.
These date/time parameters follow the same specificity rules as those in the endpoints above.<br/>
<br/>
<li>/compareRevisions/title - Requires the title of an article.</li>
Parameters:
<ul>
At least a startyear and an endyear are required. Remaining parameters are optional.
<li>startyear</li>
<li>startmonth</li>
<li>startday</li>
<li>starthour</li>
<li>startminute</li>
<li>startsecond</li>
Here, startx parameters specify the first revision to compare.
These date/time parameters follow the same specificity rules as those in the endpoints above.
<li>endyear</li>
<li>endmonth</li>
<li>endday</li>
<li>endhour</li>
<li>endminute</li>
<li>endsecond</li>
Here, endx parameters specify the second revision to compare the first to.<br/>
These date/time parameters follow the same specificity rules as those in the endpoints above.
</ul>
The API is intended to facilitate or ease the development of applications which use the data it returns. We hope to include a small toy example of such an application once the API itself is in a client-ready state, or potentially a graphical frontend which will replace this page (while still making the readme accessible through a separate link/url).
The API is implemented using the Flask framework for Python.