The API should be able to list unwatched pages. The best way is probably to implement this as a parameter of list=allpages (apfilterwatched). In SQL, this should probably be done as a LEFT JOIN against the watchlist table, then looking for wl_title IS (NOT) NULL. We also might wanna add an option to disable this for large wikis (Special:Unwatchedpages is cached at enwiki), after discussing with people who know why it's cached.
Version: 1.13.x
Severity: enhancement