I thought that the table that Slavina inserted into the Toolhunt backend meeting document to be a useful way of visualizing what we needed to build. The ongoing question is how granular we want to make the endpoints, specifically those pertaining to the "grab bag" data tables on the Dashboard (# of tools, % of tools missing data, # of edits made using Toolhunt, etc.). This task is very closely related to T327101.
| Action | HTTP Verb | URL Path | Description | Comments | Status |
| --- | --- | --- | --- | --- | --- |
| Get task bundle | GET | /api/task/ | Get a bundle of 10 tasks | | Live |
| Get a specific task | GET | /api/task/{task-id} | | | Live |
| Update task | PUT | /api/task/{task-id} | | | Live |
| Get user info | GET | /api/user | Get username of currently logged-in user | Could be expanded to return more profile data | [[ https://github.com/wikimedia/toolhunt/pull/32 | In review ]] |
| Get leaderboard data | GET | /api/contributions/top-scores | Get the top 30 overall contributors & their scores | | Live |
| Get leaderboard data by date | GET | /api/contributions/top-scores?since={X} | Get the top 30 contributors & scores from the past X days | In the future I could add a second parameter to serve as a start date | Live |
| Get contributions | GET | /api/contributions/ | Get all contributions made using Toolhunt (ordered by date), or specify a number with the optional query parameter | ?={limit} | Live |
| Get contributions by user | GET | /api/contributions/{user} | Activity log: user's last 10 contributions | To do: add limit as query parameter | Live |
| Get information about all annotations fields | GET | /api/fields | | | Live |
| Get information about a specific field | GET | /api/fields/{name} | | | Live |
| Get data for additional Dashboard tables | GET | /api/metrics | | How granular do we want to make this? | |