Lists
Collections and rankings, and the games in them.
A list is reachable by its id or its public id. The response carries owned, so a client knows whether it may write before it tries.
/api/ v1/ lists/ {id}/ tiersVisible tierlist with covers. pool=1 includes available games for its owner.
/api/ v1/ lists/ {id}/ collaboratorsWho edits the list's games with its owner, as visible as the list itself.
/api/ v1/ lists/ {id}/ collaboratorsInvites someone to edit the games. Body: username. Owner only; up to 20 people; blocked accounts are not found. Collaborators add, remove, reorder and mark games; name, visibility and deletion stay the owner's.
/api/ v1/ lists/ {id}/ collaboratorsRemoves a collaborator: profile_id in the query. The owner removes anybody; a collaborator removes themselves to leave.
/api/ v1/ search/ listsPublic lists, 24 per page. q, kind: COLLECTION or TIERLIST, sort: recent, oldest or name; page: 1 to 100.
/api/ v1/ listsThe owner's lists.
/api/ v1/ lists/ foldersThe owner's folders, with how many lists are in each, in the order they put them. unfiled counts lists in no folder. A list can be in several. Each carries an id and a public_id: the first is what a list points at, the second is what goes in an address. A folder is only a heading over lists: it has no visibility of its own, so filing a private list does not publish it and filing a public one does not hide it.
/api/ v1/ lists/ foldersMakes a folder. Asking for a name that already exists answers with that folder, and `created` says which happened.
Body
| Field | Type | Notes |
|---|---|---|
namerequired | string | Up to 60 characters. |
position | integer | The owner's own order, 0 to 999. Alphabetical is not what anybody means by their own shelves. |
/api/ v1/ lists/ folders/ {id}Renames a folder or moves it in the order. Takes the id or the public_id. Somebody else's folder is not refused: it simply is not there for the asker.
Body
| Field | Type | Notes |
|---|---|---|
name | string | Up to 60 characters. |
position | integer | 0 to 999. |
/api/ v1/ lists/ folders/ {id}Forgets a folder. The lists in it become unfiled and stay: tidying a shelf is not throwing out what was on it.
/api/ v1/ listsCreate a list. Answers 201.
Body
| Field | Type | Notes |
|---|---|---|
namerequired | string | Up to 100 characters. |
description | string | Up to 500 characters. |
kind | string | COLLECTION or TIERLIST. A TIERLIST is born with five rows: one made without them would have nowhere to put anything. |
visibility | string | PUBLIC, FOLLOWERS or PRIVATE. |
ranked | boolean | A ranking rather than a collection. |
/api/ v1/ lists/ {id}One list with its items. Accepts the id or the public id, and carries `owned` so a client knows whether it may write.
/api/ v1/ lists/ {id}Rename a list or change its description, visibility, ranking or comments_scope, which takes EVERYONE, FOLLOWERS or NOBODY. folder_ids files the list under the folders of yours it names, replacing whatever it was under: a list can be in several, and an empty list takes it out of all of them. Filing changes nothing about who sees what.
Body
| Field | Type | Notes |
|---|---|---|
name | string | Up to 120 characters. |
description | string | Up to 1000 characters. |
visibility | string | PUBLIC, FOLLOWERS or PRIVATE. |
ranked | boolean | Whether the list's order is the point of it. |
folder_ids | array | The ids of your folders, up to 40. It replaces whatever the list was under, so [] takes it out of all of them. Somebody else's folder is refused by the database rather than by a check written twice. |
/api/ v1/ lists/ {id}Remove a list.
/api/ v1/ lists/ {id}/ tiersSaves a tierlist's rows and where every game sits, all at once. Not a PATCH per item: a tierlist is only meaningful whole, and saving a row and its contents separately would leave a moment where a game is in a tier nobody defined.
Body
| Field | Type | Notes |
|---|---|---|
tiersrequired | array | The rows, each with an id, a label, a color and a position. The id is yours rather than the database's: the rows are rewritten whole on every save, and it is the items that need to name them. Up to 26. |
itemsrequired | array | Each game, with a tier_id, an igdb_id, a game_slug and a position. A game that has left the owner's library, or whose tier_id is not among the rows sent, is skipped quietly rather than failing the save. Up to 1000. |
/api/ v1/ lists/ {id}/ itemsAdd a game to a list. Answers 201.
Body
| Field | Type | Notes |
|---|---|---|
igdb_idrequired | integer | The game's catalog id. |
game_slugrequired | string | The game's slug. |
/api/ v1/ lists/ {id}/ items/ {item_id}Note an item, change how it looks in the list, or move it. Position and direction are two ways of saying the same thing, so send one or the other.
Body
| Field | Type | Notes |
|---|---|---|
note | string | Up to 500 characters. |
mark_mode | string | COLOR or DIM, or null to remove the treatment. It is appearance only: what it means is the author's to say, in the list's description. The system never ties a colour to a state. |
mark_color | string | With mark_mode COLOR: RED, ORANGE, YELLOW, GREEN, CYAN, BLUE, PURPLE, PINK or NEUTRAL. |
marked | boolean | Deprecated. It meant "done", which is one meaning out of many. true becomes mark_mode DIM and false removes the treatment. |
position | integer | The exact position, counting from 0. |
direction | string | up, down or top, to move without knowing the position. |
/api/ v1/ lists/ {id}/ items/ {item_id}Take a game out of the list.