it's a bit complicated to describe, but i'll try:
running this api call:
```
{ action: "query", list: "watchlist", wlshow: "unread" }
```
should return the watchlist items this user did not visit since they were last changed.
the problem is that occasionally, relatively old changes, which the user *did* visit since they were changed, appear in the list of returned values.
one interesting fact is that for those items, the "timestamp" and "notificationtimestamp" values are not the same, and furthermore, notificationtimestamp is *newer* than timestamp
here is a live example:
api call:
https://he.wikipedia.org/w/api.php?action=query&list=watchlist&wlshow=unread&wlprop=timestamp|notificationtimestamp|title
returned
```
{
"batchcomplete": "",
"query": {
"watchlist": [
{
"type": "edit",
"ns": 3,
"title": "\u05e9\u05d9\u05d7\u05ea \u05de\u05e9\u05ea\u05de\u05e9:\u05e2\u05e8\u05df",
"timestamp": "2016-02-03T22:13:22Z",
"notificationtimestamp": "2016-02-03T22:13:22Z"
},
{
"type": "edit",
"ns": 10,
"title": "\u05ea\u05d1\u05e0\u05d9\u05ea:\u05d0\u05ea\u05e8 \u05de\u05d5\u05e8\u05e9\u05ea \u05e2\u05d5\u05dc\u05de\u05d9\u05ea",
"timestamp": "2016-01-20T03:05:30Z",
"notificationtimestamp": "2016-02-03T21:44:08Z"
}
]
}
}
```
note that for the 2nd record, "timestamp" is 2016-01-20T03:05:30Z, which matches the top entry in the page history, but notificationtimestamp is 2016-02-03T21:44:08Z. there is nothing in the page history or the logs that indicate anything that happened on this time.
opening the watchlist page (not using API), shows the Jan 20 entry not in boldface.
this problem makes the "wlshow=unread" practically useless, which is a pity.
peace.