During T178715 we found some inconsistencies to how the Usercontribs API orders things when there are multiple users.
If you look at a query like this:
https://en.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=Davidwbarratt|Kaldari&uclimit=500&ucdir=older
I would expect Kaldari's edits to be almost all of the results, however, this result is in there:
{ "userid": 15989147, "user": "Davidwbarratt", "pageid": 2212828, "revid": 468108124, "parentid": 429907077, "ns": 0, "title": "Palmer Theological Seminary", "timestamp": "2011-12-28T16:46:01Z", "comment": "", "size": 6288 }
Kaldari has many many many more edits that are newer than this.
However, if you reverse the query:
https://en.wikipedia.org/w/api.php?action=query&list=usercontribs&ucuser=Davidwbarratt|Kaldari&uclimit=500&ucdir=newer
you do not get any results from Davidwbarratt which is what I would expect.
What is going on here? I thought at first it was running two different queries and then stacking the results, but then the reverse would not have had the same effect.
I expected the query to be run with multiple users, something like IN ('Davidwbarratt', 'Kaldari'), but that does not seem to be what is happening.
If we can't resolve this, I think it might be better to not support more than one user in a query.
Work Around
Make a tool on Toolforge that queries the database and returns the results in JSON format. In other words: Make Your Own API™