---
# System prepended metadata

title: Gamak API

---


# Gamak API
 - [Auth](#Auth)
 - [Password](#Password)
 - [Users](#Users)
 - [Games](#Games)
 - [Tags](#Tags)
 - [Categories](#Categories)
 - [Games+](#Games+)

 ---
 
### Auth
```js
POST /auth/register           |-    | 'register new user'
POST /auth/login              |-    | 'login'
POST /auth/verify             |-    | 'account verification'
POST /auth/verify/resend      |-    | 'resend account verification code'
```

### Password
```js
POST /password/rest           |-    | 'send password rest code'
POST /password/change         |-    | 'change account password'
```

### Users
```js
GET /users                    |-    | 'returns all users'
GET /users/{id}               |-    | 'returns signle user'
GET /users/{id}/games         |-    | 'returns user games'
GET /users/{id}/comments      |-    | 'returns user comments'
```

### Games
```js
GET /games                     |-              | 'returns all games'
GET /games/{id}                |-              | 'returns signle game'
GET /games/{id}/comments       |-              | 'returns game comments'

POST /games                    | @Auth         | 'create a game'
POST /games/{id}/edit          | @Auth, @Owner | 'edit a game'
POST /games/{id}/bookmark      | @Auth         | 'bookmark a game'
POST /games/{id}/like          | @Auth         | 'like a game'
POST /games/{id}/like/undo     | @Auth         | 'undo like'
POST /games/{id}/dislike       | @Auth         | 'dislike a game'
POST /games/{id}/dislike/undo  | @Auth         | 'undo dislike'

DELETE /games/{id}             | @Auth, @Owner | 'delete game'
```

### Tags
```js
GET /tags                     |-                                    | 'returns all tags'
GET /tags/{slug}              |-                                    | 'returns signle tag'
GET /tags/{slug}/games        |-                                    | 'returns tag games'

POST /tags                    | @CanAddTag                          | 'create tag'
POST /tags/{slug}/edit        | @CanEditTag, @TagAdder              | 'edit tag'
POST /tags/{slug}/watch       | @Auth                               | 'watch tag'
POST /tags/{slug}/unwatch     | @Auth                               | 'unwatch tag'

DELETE /tags/{slug}           | @Auth, @CanDeleteTags               | 'delete tag'
```


### Categories
```js
GET /categories                     |-                            | 'returns all categories'
GET /categories/{slug|id}/games     |-                            | 'returns category games'
GET /categories/{slug|id}/comments  |-                            | 'returns category comments'

POST /categories                    | @Auth, @CanAddCategory      | 'create category'
POST /categories/{slug|id}/edit     | @Auth, @CanEditCategories   | 'edit category'

DELETE /categories/{slug|id}        | @Auth, @CanDeleteCategories | 'delete category'
```

### Games+
```js
POST /games/{id}/move               | @Auth, @Owner|@CanMoveGames | 'move game to another category'
```